1// SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 2/* 3 * Device Tree Source for the R9A08G045S33 SMARC Carrier-II's SoM board. 4 * 5 * Copyright (C) 2023 Renesas Electronics Corp. 6 */ 7 8#include <dt-bindings/gpio/gpio.h> 9#include <dt-bindings/pinctrl/rzg2l-pinctrl.h> 10 11/* 12 * On-board switches' states: 13 * @SW_OFF: switch's state is OFF 14 * @SW_ON: switch's state is ON 15 */ 16#define SW_OFF 0 17#define SW_ON 1 18 19/* 20 * SW_CONFIG[x] switches' states: 21 * @SW_CONFIG2: 22 * SW_OFF - SD0 is connected to eMMC 23 * SW_ON - SD0 is connected to uSD0 card 24 * @SW_CONFIG3: 25 * SW_OFF - SD2 is connected to SoC 26 * SW_ON - SCIF1, SSI0, IRQ0, IRQ1 connected to SoC 27 */ 28#define SW_CONFIG2 SW_ON 29#define SW_CONFIG3 SW_ON 30 31/ { 32 compatible = "renesas,rzg3s-smarcm", "renesas,r9a08g045s33", "renesas,r9a08g045"; 33 34 aliases { 35 mmc0 = &sdhi0; 36#if SW_CONFIG3 == SW_OFF 37 mmc2 = &sdhi2; 38#else 39 eth0 = ð0; 40 eth1 = ð1; 41#endif 42 }; 43 44 chosen { 45 bootargs = "ignore_loglevel"; 46 stdout-path = "serial0:115200n8"; 47 }; 48 49 memory@48000000 { 50 device_type = "memory"; 51 /* First 128MB is reserved for secure area. */ 52 reg = <0x0 0x48000000 0x0 0x38000000>; 53 }; 54 55 vcc_sdhi0: regulator0 { 56 compatible = "regulator-fixed"; 57 regulator-name = "SDHI0 Vcc"; 58 regulator-min-microvolt = <3300000>; 59 regulator-max-microvolt = <3300000>; 60 gpios = <&pinctrl RZG2L_GPIO(2, 1) GPIO_ACTIVE_HIGH>; 61 enable-active-high; 62 }; 63 64#if SW_CONFIG2 == SW_ON 65 vccq_sdhi0: regulator1 { 66 compatible = "regulator-gpio"; 67 regulator-name = "SDHI0 VccQ"; 68 regulator-min-microvolt = <1800000>; 69 regulator-max-microvolt = <3300000>; 70 gpios = <&pinctrl RZG2L_GPIO(2, 2) GPIO_ACTIVE_HIGH>; 71 gpios-states = <1>; 72 states = <3300000 1>, <1800000 0>; 73 }; 74#else 75 reg_1p8v: regulator1 { 76 compatible = "regulator-fixed"; 77 regulator-name = "fixed-1.8V"; 78 regulator-min-microvolt = <1800000>; 79 regulator-max-microvolt = <1800000>; 80 regulator-boot-on; 81 regulator-always-on; 82 }; 83#endif 84 85 vcc_sdhi2: regulator2 { 86 compatible = "regulator-fixed"; 87 regulator-name = "SDHI2 Vcc"; 88 regulator-min-microvolt = <3300000>; 89 regulator-max-microvolt = <3300000>; 90 gpios = <&pinctrl RZG2L_GPIO(8, 1) GPIO_ACTIVE_HIGH>; 91 enable-active-high; 92 }; 93}; 94 95#if SW_CONFIG3 == SW_ON 96ð0 { 97 pinctrl-0 = <ð0_pins>; 98 pinctrl-names = "default"; 99 phy-handle = <&phy0>; 100 phy-mode = "rgmii-id"; 101 status = "okay"; 102 103 phy0: ethernet-phy@7 { 104 reg = <7>; 105 interrupt-parent = <&pinctrl>; 106 interrupts = <RZG2L_GPIO(12, 0) IRQ_TYPE_EDGE_FALLING>; 107 rxc-skew-psec = <0>; 108 txc-skew-psec = <0>; 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ð1 { 123 pinctrl-0 = <ð1_pins>; 124 pinctrl-names = "default"; 125 phy-handle = <&phy1>; 126 phy-mode = "rgmii-id"; 127 status = "okay"; 128 129 phy1: ethernet-phy@7 { 130 reg = <7>; 131 interrupt-parent = <&pinctrl>; 132 interrupts = <RZG2L_GPIO(12, 1) IRQ_TYPE_EDGE_FALLING>; 133 rxc-skew-psec = <0>; 134 txc-skew-psec = <0>; 135 rxdv-skew-psec = <0>; 136 txen-skew-psec = <0>; 137 rxd0-skew-psec = <0>; 138 rxd1-skew-psec = <0>; 139 rxd2-skew-psec = <0>; 140 rxd3-skew-psec = <0>; 141 txd0-skew-psec = <0>; 142 txd1-skew-psec = <0>; 143 txd2-skew-psec = <0>; 144 txd3-skew-psec = <0>; 145 }; 146}; 147#endif 148 149&extal_clk { 150 clock-frequency = <24000000>; 151}; 152 153#if SW_CONFIG2 == SW_ON 154/* SD0 slot */ 155&sdhi0 { 156 pinctrl-0 = <&sdhi0_pins>; 157 pinctrl-1 = <&sdhi0_uhs_pins>; 158 pinctrl-names = "default", "state_uhs"; 159 vmmc-supply = <&vcc_sdhi0>; 160 vqmmc-supply = <&vccq_sdhi0>; 161 bus-width = <4>; 162 sd-uhs-sdr50; 163 sd-uhs-sdr104; 164 max-frequency = <125000000>; 165 status = "okay"; 166}; 167#else 168/* eMMC */ 169&sdhi0 { 170 pinctrl-0 = <&sdhi0_emmc_pins>; 171 pinctrl-1 = <&sdhi0_emmc_pins>; 172 pinctrl-names = "default", "state_uhs"; 173 vmmc-supply = <&vcc_sdhi0>; 174 vqmmc-supply = <®_1p8v>; 175 bus-width = <8>; 176 mmc-hs200-1_8v; 177 non-removable; 178 fixed-emmc-driver-type = <1>; 179 max-frequency = <125000000>; 180 status = "okay"; 181}; 182#endif 183 184#if SW_CONFIG3 == SW_OFF 185&sdhi2 { 186 pinctrl-0 = <&sdhi2_pins>; 187 pinctrl-names = "default"; 188 vmmc-supply = <&vcc_sdhi2>; 189 bus-width = <4>; 190 max-frequency = <50000000>; 191 status = "okay"; 192}; 193#endif 194 195&pinctrl { 196 eth0-phy-irq-hog { 197 gpio-hog; 198 gpios = <RZG2L_GPIO(12, 0) GPIO_ACTIVE_LOW>; 199 input; 200 line-name = "eth0-phy-irq"; 201 }; 202 203 eth0_pins: eth0 { 204 txc { 205 pinmux = <RZG2L_PORT_PINMUX(1, 0, 1)>; /* ET0_TXC */ 206 power-source = <1800>; 207 output-enable; 208 input-enable; 209 drive-strength-microamp = <5200>; 210 }; 211 212 tx_ctl { 213 pinmux = <RZG2L_PORT_PINMUX(1, 1, 1)>; /* ET0_TX_CTL */ 214 power-source = <1800>; 215 output-enable; 216 drive-strength-microamp = <5200>; 217 }; 218 219 mux { 220 pinmux = <RZG2L_PORT_PINMUX(1, 2, 1)>, /* ET0_TXD0 */ 221 <RZG2L_PORT_PINMUX(1, 3, 1)>, /* ET0_TXD1 */ 222 <RZG2L_PORT_PINMUX(1, 4, 1)>, /* ET0_TXD2 */ 223 <RZG2L_PORT_PINMUX(2, 0, 1)>, /* ET0_TXD3 */ 224 <RZG2L_PORT_PINMUX(3, 0, 1)>, /* ET0_RXC */ 225 <RZG2L_PORT_PINMUX(3, 1, 1)>, /* ET0_RX_CTL */ 226 <RZG2L_PORT_PINMUX(3, 2, 1)>, /* ET0_RXD0 */ 227 <RZG2L_PORT_PINMUX(3, 3, 1)>, /* ET0_RXD1 */ 228 <RZG2L_PORT_PINMUX(4, 0, 1)>, /* ET0_RXD2 */ 229 <RZG2L_PORT_PINMUX(4, 1, 1)>, /* ET0_RXD3 */ 230 <RZG2L_PORT_PINMUX(4, 3, 1)>, /* ET0_MDC */ 231 <RZG2L_PORT_PINMUX(4, 4, 1)>, /* ET0_MDIO */ 232 <RZG2L_PORT_PINMUX(4, 5, 1)>; /* ET0_LINKSTA */ 233 power-source = <1800>; 234 }; 235 }; 236 237 eth1-phy-irq-hog { 238 gpio-hog; 239 gpios = <RZG2L_GPIO(12, 1) GPIO_ACTIVE_LOW>; 240 input; 241 line-name = "eth1-phy-irq"; 242 }; 243 244 eth1_pins: eth1 { 245 txc { 246 pinmux = <RZG2L_PORT_PINMUX(7, 0, 1)>; /* ET1_TXC */ 247 power-source = <1800>; 248 output-enable; 249 input-enable; 250 drive-strength-microamp = <5200>; 251 }; 252 253 tx_ctl { 254 pinmux = <RZG2L_PORT_PINMUX(7, 1, 1)>; /* ET1_TX_CTL */ 255 power-source = <1800>; 256 output-enable; 257 drive-strength-microamp = <5200>; 258 }; 259 260 mux { 261 pinmux = <RZG2L_PORT_PINMUX(7, 2, 1)>, /* ET1_TXD0 */ 262 <RZG2L_PORT_PINMUX(7, 3, 1)>, /* ET1_TXD1 */ 263 <RZG2L_PORT_PINMUX(7, 4, 1)>, /* ET1_TXD2 */ 264 <RZG2L_PORT_PINMUX(8, 0, 1)>, /* ET1_TXD3 */ 265 <RZG2L_PORT_PINMUX(8, 4, 1)>, /* ET1_RXC */ 266 <RZG2L_PORT_PINMUX(9, 0, 1)>, /* ET1_RX_CTL */ 267 <RZG2L_PORT_PINMUX(9, 1, 1)>, /* ET1_RXD0 */ 268 <RZG2L_PORT_PINMUX(9, 2, 1)>, /* ET1_RXD1 */ 269 <RZG2L_PORT_PINMUX(9, 3, 1)>, /* ET1_RXD2 */ 270 <RZG2L_PORT_PINMUX(10, 0, 1)>, /* ET1_RXD3 */ 271 <RZG2L_PORT_PINMUX(10, 2, 1)>, /* ET1_MDC */ 272 <RZG2L_PORT_PINMUX(10, 3, 1)>, /* ET1_MDIO */ 273 <RZG2L_PORT_PINMUX(10, 4, 1)>; /* ET1_LINKSTA */ 274 power-source = <1800>; 275 }; 276 }; 277 278 sdhi0_pins: sd0 { 279 data { 280 pins = "SD0_DATA0", "SD0_DATA1", "SD0_DATA2", "SD0_DATA3"; 281 power-source = <3300>; 282 }; 283 284 ctrl { 285 pins = "SD0_CLK", "SD0_CMD"; 286 power-source = <3300>; 287 }; 288 289 cd { 290 pinmux = <RZG2L_PORT_PINMUX(0, 0, 1)>; /* SD0_CD */ 291 }; 292 }; 293 294 sdhi0_uhs_pins: sd0-uhs { 295 data { 296 pins = "SD0_DATA0", "SD0_DATA1", "SD0_DATA2", "SD0_DATA3"; 297 power-source = <1800>; 298 }; 299 300 ctrl { 301 pins = "SD0_CLK", "SD0_CMD"; 302 power-source = <1800>; 303 }; 304 305 cd { 306 pinmux = <RZG2L_PORT_PINMUX(0, 0, 1)>; /* SD0_CD */ 307 }; 308 }; 309 310 sdhi0_emmc_pins: sd0-emmc { 311 pins = "SD0_DATA0", "SD0_DATA1", "SD0_DATA2", "SD0_DATA3", 312 "SD0_DATA4", "SD0_DATA5", "SD0_DATA6", "SD0_DATA7", 313 "SD0_CLK", "SD0_CMD", "SD0_RST#"; 314 power-source = <1800>; 315 }; 316 317 sdhi2_pins: sd2 { 318 data { 319 pins = "P11_2", "P11_3", "P12_0", "P12_1"; 320 input-enable; 321 }; 322 323 ctrl { 324 pins = "P11_1"; 325 input-enable; 326 }; 327 328 mux { 329 pinmux = <RZG2L_PORT_PINMUX(11, 0, 8)>, /* SD2_CLK */ 330 <RZG2L_PORT_PINMUX(11, 1, 8)>, /* SD2_CMD */ 331 <RZG2L_PORT_PINMUX(11, 2, 8)>, /* SD2_DATA0 */ 332 <RZG2L_PORT_PINMUX(11, 3, 8)>, /* SD2_DATA1 */ 333 <RZG2L_PORT_PINMUX(12, 0, 8)>, /* SD2_DATA2 */ 334 <RZG2L_PORT_PINMUX(12, 1, 8)>, /* SD2_DATA3 */ 335 <RZG2L_PORT_PINMUX(14, 1, 7)>; /* SD2_CD# */ 336 }; 337 }; 338}; 339