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