hc
2023-12-02 57e32c52610e6a560beda60bf33c48f9f42306d5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
// SPDX-License-Identifier: GPL-2.0
/dts-v1/;
#include "bcm2837.dtsi"
#include "bcm2835-rpi.dtsi"
#include "bcm283x-rpi-lan7515.dtsi"
#include "bcm283x-rpi-usb-host.dtsi"
 
/ {
   compatible = "raspberrypi,3-model-b-plus", "brcm,bcm2837";
   model = "Raspberry Pi 3 Model B+";
 
   chosen {
       /* 8250 auxiliary UART instead of pl011 */
       stdout-path = "serial1:115200n8";
   };
 
   memory {
       reg = <0 0x40000000>;
   };
 
   leds {
       act {
           gpios = <&gpio 29 GPIO_ACTIVE_HIGH>;
       };
 
       pwr {
           label = "PWR";
           gpios = <&expgpio 2 GPIO_ACTIVE_LOW>;
       };
   };
 
   wifi_pwrseq: wifi-pwrseq {
       compatible = "mmc-pwrseq-simple";
       reset-gpios = <&expgpio 1 GPIO_ACTIVE_LOW>;
   };
};
 
&firmware {
   expgpio: gpio {
       compatible = "raspberrypi,firmware-gpio";
       gpio-controller;
       #gpio-cells = <2>;
       gpio-line-names = "BT_ON",
                 "WL_ON",
                 "STATUS_LED",
                 "LAN_RUN",
                 "",
                 "CAM_GPIO0",
                 "CAM_GPIO1",
                 "";
       status = "okay";
   };
};
 
&hdmi {
   hpd-gpios = <&gpio 28 GPIO_ACTIVE_LOW>;
};
 
&pwm {
   pinctrl-names = "default";
   pinctrl-0 = <&pwm0_gpio40 &pwm1_gpio41>;
   status = "okay";
};
 
/* SDHCI is used to control the SDIO for wireless */
&sdhci {
   #address-cells = <1>;
   #size-cells = <0>;
   pinctrl-names = "default";
   pinctrl-0 = <&emmc_gpio34>;
   status = "okay";
   bus-width = <4>;
   non-removable;
   mmc-pwrseq = <&wifi_pwrseq>;
 
   brcmf: wifi@1 {
       reg = <1>;
       compatible = "brcm,bcm4329-fmac";
   };
};
 
/* SDHOST is used to drive the SD card */
&sdhost {
   pinctrl-names = "default";
   pinctrl-0 = <&sdhost_gpio48>;
   status = "okay";
   bus-width = <4>;
};
 
/* uart0 communicates with the BT module */
&uart0 {
   pinctrl-names = "default";
   pinctrl-0 = <&uart0_ctsrts_gpio30 &uart0_gpio32 &gpclk2_gpio43>;
   status = "okay";
 
   bluetooth {
       compatible = "brcm,bcm43438-bt";
       max-speed = <2000000>;
       shutdown-gpios = <&expgpio 0 GPIO_ACTIVE_HIGH>;
   };
};
 
/* uart1 is mapped to the pin header */
&uart1 {
   pinctrl-names = "default";
   pinctrl-0 = <&uart1_gpio14>;
   status = "okay";
};