~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

TOMOYO Linux Cross Reference
Linux/arch/arm64/boot/dts/renesas/rzg2l-smarc-som.dtsi

Version: ~ [ linux-6.11.5 ] ~ [ linux-6.10.14 ] ~ [ linux-6.9.12 ] ~ [ linux-6.8.12 ] ~ [ linux-6.7.12 ] ~ [ linux-6.6.58 ] ~ [ linux-6.5.13 ] ~ [ linux-6.4.16 ] ~ [ linux-6.3.13 ] ~ [ linux-6.2.16 ] ~ [ linux-6.1.114 ] ~ [ linux-6.0.19 ] ~ [ linux-5.19.17 ] ~ [ linux-5.18.19 ] ~ [ linux-5.17.15 ] ~ [ linux-5.16.20 ] ~ [ linux-5.15.169 ] ~ [ linux-5.14.21 ] ~ [ linux-5.13.19 ] ~ [ linux-5.12.19 ] ~ [ linux-5.11.22 ] ~ [ linux-5.10.228 ] ~ [ linux-5.9.16 ] ~ [ linux-5.8.18 ] ~ [ linux-5.7.19 ] ~ [ linux-5.6.19 ] ~ [ linux-5.5.19 ] ~ [ linux-5.4.284 ] ~ [ linux-5.3.18 ] ~ [ linux-5.2.21 ] ~ [ linux-5.1.21 ] ~ [ linux-5.0.21 ] ~ [ linux-4.20.17 ] ~ [ linux-4.19.322 ] ~ [ linux-4.18.20 ] ~ [ linux-4.17.19 ] ~ [ linux-4.16.18 ] ~ [ linux-4.15.18 ] ~ [ linux-4.14.336 ] ~ [ linux-4.13.16 ] ~ [ linux-4.12.14 ] ~ [ linux-4.11.12 ] ~ [ linux-4.10.17 ] ~ [ linux-4.9.337 ] ~ [ linux-4.4.302 ] ~ [ linux-3.10.108 ] ~ [ linux-2.6.32.71 ] ~ [ linux-2.6.0 ] ~ [ linux-2.4.37.11 ] ~ [ unix-v6-master ] ~ [ ccs-tools-1.8.9 ] ~ [ policy-sample ] ~
Architecture: ~ [ i386 ] ~ [ alpha ] ~ [ m68k ] ~ [ mips ] ~ [ ppc ] ~ [ sparc ] ~ [ sparc64 ] ~

  1 // SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
  2 /*
  3  * Device Tree Source for the RZ/{G2L,V2L} SMARC SOM common parts
  4  *
  5  * Copyright (C) 2021 Renesas Electronics Corp.
  6  */
  7 
  8 #include <dt-bindings/gpio/gpio.h>
  9 #include <dt-bindings/interrupt-controller/irqc-rzg2l.h>
 10 #include <dt-bindings/pinctrl/rzg2l-pinctrl.h>
 11 
 12 /* SW1[2] should be at position 2/OFF to enable 64 GB eMMC */
 13 #define EMMC    1
 14 
 15 /*
 16  * To enable uSD card on CN3,
 17  * SW1[2] should be at position 3/ON.
 18  * Disable eMMC by setting "#define EMMC        0" above.
 19  */
 20 #define SDHI    (!EMMC)
 21 
 22 / {
 23         aliases {
 24                 ethernet0 = &eth0;
 25                 ethernet1 = &eth1;
 26         };
 27 
 28         chosen {
 29                 bootargs = "ignore_loglevel rw root=/dev/nfs ip=on";
 30         };
 31 
 32         memory@48000000 {
 33                 device_type = "memory";
 34                 /* first 128MB is reserved for secure area. */
 35                 reg = <0x0 0x48000000 0x0 0x78000000>;
 36         };
 37 
 38         reg_1p8v: regulator-1p8v {
 39                 compatible = "regulator-fixed";
 40                 regulator-name = "fixed-1.8V";
 41                 regulator-min-microvolt = <1800000>;
 42                 regulator-max-microvolt = <1800000>;
 43                 regulator-boot-on;
 44                 regulator-always-on;
 45         };
 46 
 47         reg_3p3v: regulator-3p3v {
 48                 compatible = "regulator-fixed";
 49                 regulator-name = "fixed-3.3V";
 50                 regulator-min-microvolt = <3300000>;
 51                 regulator-max-microvolt = <3300000>;
 52                 regulator-boot-on;
 53                 regulator-always-on;
 54         };
 55 
 56         reg_1p1v: regulator-vdd-core {
 57                 compatible = "regulator-fixed";
 58                 regulator-name = "fixed-1.1V";
 59                 regulator-min-microvolt = <1100000>;
 60                 regulator-max-microvolt = <1100000>;
 61                 regulator-boot-on;
 62                 regulator-always-on;
 63         };
 64 
 65         vccq_sdhi0: regulator-vccq-sdhi0 {
 66                 compatible = "regulator-gpio";
 67 
 68                 regulator-name = "SDHI0 VccQ";
 69                 regulator-min-microvolt = <1800000>;
 70                 regulator-max-microvolt = <3300000>;
 71                 states = <3300000 1>, <1800000 0>;
 72                 regulator-boot-on;
 73                 gpios = <&pinctrl RZG2L_GPIO(39, 0) GPIO_ACTIVE_HIGH>;
 74                 regulator-always-on;
 75         };
 76 
 77         /* 32.768kHz crystal */
 78         x2: x2-clock {
 79                 compatible = "fixed-clock";
 80                 #clock-cells = <0>;
 81                 clock-frequency = <32768>;
 82         };
 83 };
 84 
 85 &adc {
 86         pinctrl-0 = <&adc_pins>;
 87         pinctrl-names = "default";
 88         status = "okay";
 89 
 90         /delete-node/ channel@6;
 91         /delete-node/ channel@7;
 92 };
 93 
 94 &eth0 {
 95         pinctrl-0 = <&eth0_pins>;
 96         pinctrl-names = "default";
 97         phy-handle = <&phy0>;
 98         phy-mode = "rgmii-id";
 99         status = "okay";
100 
101         phy0: ethernet-phy@7 {
102                 compatible = "ethernet-phy-id0022.1640",
103                              "ethernet-phy-ieee802.3-c22";
104                 reg = <7>;
105                 interrupt-parent = <&irqc>;
106                 interrupts = <RZG2L_IRQ2 IRQ_TYPE_LEVEL_LOW>;
107                 rxc-skew-psec = <2400>;
108                 txc-skew-psec = <2400>;
109                 rxdv-skew-psec = <0>;
110                 txen-skew-psec = <0>;
111                 rxd0-skew-psec = <0>;
112                 rxd1-skew-psec = <0>;
113                 rxd2-skew-psec = <0>;
114                 rxd3-skew-psec = <0>;
115                 txd0-skew-psec = <0>;
116                 txd1-skew-psec = <0>;
117                 txd2-skew-psec = <0>;
118                 txd3-skew-psec = <0>;
119         };
120 };
121 
122 &eth1 {
123         pinctrl-0 = <&eth1_pins>;
124         pinctrl-names = "default";
125         phy-handle = <&phy1>;
126         phy-mode = "rgmii-id";
127         status = "okay";
128 
129         phy1: ethernet-phy@7 {
130                 compatible = "ethernet-phy-id0022.1640",
131                              "ethernet-phy-ieee802.3-c22";
132                 reg = <7>;
133                 interrupt-parent = <&irqc>;
134                 interrupts = <RZG2L_IRQ3 IRQ_TYPE_LEVEL_LOW>;
135                 rxc-skew-psec = <2400>;
136                 txc-skew-psec = <2400>;
137                 rxdv-skew-psec = <0>;
138                 txen-skew-psec = <0>;
139                 rxd0-skew-psec = <0>;
140                 rxd1-skew-psec = <0>;
141                 rxd2-skew-psec = <0>;
142                 rxd3-skew-psec = <0>;
143                 txd0-skew-psec = <0>;
144                 txd1-skew-psec = <0>;
145                 txd2-skew-psec = <0>;
146                 txd3-skew-psec = <0>;
147         };
148 };
149 
150 &extal_clk {
151         clock-frequency = <24000000>;
152 };
153 
154 &gpu {
155         mali-supply = <&reg_1p1v>;
156 };
157 
158 &i2c3 {
159         raa215300: pmic@12 {
160                 compatible = "renesas,raa215300";
161                 reg = <0x12>, <0x6f>;
162                 reg-names = "main", "rtc";
163 
164                 clocks = <&x2>;
165                 clock-names = "xin";
166         };
167 };
168 
169 &ostm1 {
170         status = "okay";
171 };
172 
173 &ostm2 {
174         status = "okay";
175 };
176 
177 &pinctrl {
178         adc_pins: adc {
179                 pinmux = <RZG2L_PORT_PINMUX(9, 0, 2)>; /* ADC_TRG */
180         };
181 
182         eth0_pins: eth0 {
183                 pinmux = <RZG2L_PORT_PINMUX(28, 1, 1)>, /* ET0_LINKSTA */
184                          <RZG2L_PORT_PINMUX(27, 1, 1)>, /* ET0_MDC */
185                          <RZG2L_PORT_PINMUX(28, 0, 1)>, /* ET0_MDIO */
186                          <RZG2L_PORT_PINMUX(20, 0, 1)>, /* ET0_TXC */
187                          <RZG2L_PORT_PINMUX(20, 1, 1)>, /* ET0_TX_CTL */
188                          <RZG2L_PORT_PINMUX(20, 2, 1)>, /* ET0_TXD0 */
189                          <RZG2L_PORT_PINMUX(21, 0, 1)>, /* ET0_TXD1 */
190                          <RZG2L_PORT_PINMUX(21, 1, 1)>, /* ET0_TXD2 */
191                          <RZG2L_PORT_PINMUX(22, 0, 1)>, /* ET0_TXD3 */
192                          <RZG2L_PORT_PINMUX(24, 0, 1)>, /* ET0_RXC */
193                          <RZG2L_PORT_PINMUX(24, 1, 1)>, /* ET0_RX_CTL */
194                          <RZG2L_PORT_PINMUX(25, 0, 1)>, /* ET0_RXD0 */
195                          <RZG2L_PORT_PINMUX(25, 1, 1)>, /* ET0_RXD1 */
196                          <RZG2L_PORT_PINMUX(26, 0, 1)>, /* ET0_RXD2 */
197                          <RZG2L_PORT_PINMUX(26, 1, 1)>, /* ET0_RXD3 */
198                          <RZG2L_PORT_PINMUX(1, 0, 1)>;  /* IRQ2 */
199         };
200 
201         eth1_pins: eth1 {
202                 pinmux = <RZG2L_PORT_PINMUX(37, 2, 1)>, /* ET1_LINKSTA */
203                          <RZG2L_PORT_PINMUX(37, 0, 1)>, /* ET1_MDC */
204                          <RZG2L_PORT_PINMUX(37, 1, 1)>, /* ET1_MDIO */
205                          <RZG2L_PORT_PINMUX(29, 0, 1)>, /* ET1_TXC */
206                          <RZG2L_PORT_PINMUX(29, 1, 1)>, /* ET1_TX_CTL */
207                          <RZG2L_PORT_PINMUX(30, 0, 1)>, /* ET1_TXD0 */
208                          <RZG2L_PORT_PINMUX(30, 1, 1)>, /* ET1_TXD1 */
209                          <RZG2L_PORT_PINMUX(31, 0, 1)>, /* ET1_TXD2 */
210                          <RZG2L_PORT_PINMUX(31, 1, 1)>, /* ET1_TXD3 */
211                          <RZG2L_PORT_PINMUX(33, 1, 1)>, /* ET1_RXC */
212                          <RZG2L_PORT_PINMUX(34, 0, 1)>, /* ET1_RX_CTL */
213                          <RZG2L_PORT_PINMUX(34, 1, 1)>, /* ET1_RXD0 */
214                          <RZG2L_PORT_PINMUX(35, 0, 1)>, /* ET1_RXD1 */
215                          <RZG2L_PORT_PINMUX(35, 1, 1)>, /* ET1_RXD2 */
216                          <RZG2L_PORT_PINMUX(36, 0, 1)>, /* ET1_RXD3 */
217                          <RZG2L_PORT_PINMUX(1, 1, 1)>;  /* IRQ3 */
218         };
219 
220         gpio-sd0-pwr-en-hog {
221                 gpio-hog;
222                 gpios = <RZG2L_GPIO(4, 1) GPIO_ACTIVE_HIGH>;
223                 output-high;
224                 line-name = "gpio_sd0_pwr_en";
225         };
226 
227         qspi0_pins: qspi0 {
228                 qspi0-data {
229                         pins = "QSPI0_IO0", "QSPI0_IO1", "QSPI0_IO2", "QSPI0_IO3";
230                         power-source = <1800>;
231                 };
232 
233                 qspi0-ctrl {
234                         pins = "QSPI0_SPCLK", "QSPI0_SSL", "QSPI_RESET#";
235                         power-source = <1800>;
236                 };
237         };
238 
239         /*
240          * SD0 device selection is XOR between GPIO_SD0_DEV_SEL and SW1[2]
241          * The below switch logic can be used to select the device between
242          * eMMC and microSD, after setting GPIO_SD0_DEV_SEL to high in DT.
243          * SW1[2] should be at position 2/OFF to enable 64 GB eMMC
244          * SW1[2] should be at position 3/ON to enable uSD card CN3
245          */
246         sd0-dev-sel-hog {
247                 gpio-hog;
248                 gpios = <RZG2L_GPIO(41, 1) GPIO_ACTIVE_HIGH>;
249                 output-high;
250                 line-name = "sd0_dev_sel";
251         };
252 
253         sdhi0_emmc_pins: sd0emmc {
254                 sd0_emmc_data {
255                         pins = "SD0_DATA0", "SD0_DATA1", "SD0_DATA2", "SD0_DATA3",
256                                "SD0_DATA4", "SD0_DATA5", "SD0_DATA6", "SD0_DATA7";
257                         power-source = <1800>;
258                 };
259 
260                 sd0_emmc_ctrl {
261                         pins = "SD0_CLK", "SD0_CMD";
262                         power-source = <1800>;
263                 };
264 
265                 sd0_emmc_rst {
266                         pins = "SD0_RST#";
267                         power-source = <1800>;
268                 };
269         };
270 
271         sdhi0_pins: sd0 {
272                 sd0_data {
273                         pins = "SD0_DATA0", "SD0_DATA1", "SD0_DATA2", "SD0_DATA3";
274                         power-source = <3300>;
275                 };
276 
277                 sd0_ctrl {
278                         pins = "SD0_CLK", "SD0_CMD";
279                         power-source = <3300>;
280                 };
281 
282                 sd0_mux {
283                         pinmux = <RZG2L_PORT_PINMUX(47, 0, 2)>; /* SD0_CD */
284                 };
285         };
286 
287         sdhi0_pins_uhs: sd0_uhs {
288                 sd0_data_uhs {
289                         pins = "SD0_DATA0", "SD0_DATA1", "SD0_DATA2", "SD0_DATA3";
290                         power-source = <1800>;
291                 };
292 
293                 sd0_ctrl_uhs {
294                         pins = "SD0_CLK", "SD0_CMD";
295                         power-source = <1800>;
296                 };
297 
298                 sd0_mux_uhs {
299                         pinmux = <RZG2L_PORT_PINMUX(47, 0, 2)>; /* SD0_CD */
300                 };
301         };
302 };
303 
304 &sbc {
305         pinctrl-0 = <&qspi0_pins>;
306         pinctrl-names = "default";
307         status = "okay";
308 
309         flash@0 {
310                 compatible = "micron,mt25qu512a", "jedec,spi-nor";
311                 reg = <0>;
312                 m25p,fast-read;
313                 spi-max-frequency = <50000000>;
314                 spi-rx-bus-width = <4>;
315                 spi-tx-bus-width = <4>;
316 
317                 partitions {
318                         compatible = "fixed-partitions";
319                         #address-cells = <1>;
320                         #size-cells = <1>;
321 
322                         boot@0 {
323                                 reg = <0x00000000 0x2000000>;
324                                 read-only;
325                         };
326                         user@2000000 {
327                                 reg = <0x2000000 0x2000000>;
328                         };
329                 };
330         };
331 };
332 
333 #if SDHI
334 &sdhi0 {
335         pinctrl-0 = <&sdhi0_pins>;
336         pinctrl-1 = <&sdhi0_pins_uhs>;
337         pinctrl-names = "default", "state_uhs";
338 
339         vmmc-supply = <&reg_3p3v>;
340         vqmmc-supply = <&vccq_sdhi0>;
341         bus-width = <4>;
342         sd-uhs-sdr50;
343         sd-uhs-sdr104;
344         status = "okay";
345 };
346 #endif
347 
348 #if EMMC
349 &sdhi0 {
350         pinctrl-0 = <&sdhi0_emmc_pins>;
351         pinctrl-1 = <&sdhi0_emmc_pins>;
352         pinctrl-names = "default", "state_uhs";
353 
354         vmmc-supply = <&reg_3p3v>;
355         vqmmc-supply = <&reg_1p8v>;
356         bus-width = <8>;
357         mmc-hs200-1_8v;
358         non-removable;
359         fixed-emmc-driver-type = <1>;
360         status = "okay";
361 };
362 #endif
363 
364 &wdt0 {
365         status = "okay";
366         timeout-sec = <60>;
367 };
368 
369 &wdt1 {
370         status = "okay";
371         timeout-sec = <60>;
372 };

~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

kernel.org | git.kernel.org | LWN.net | Project Home | SVN repository | Mail admin

Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.

sflogo.php