1 // SPDX-License-Identifier: (GPL-2.0+ OR MIT) 1 // SPDX-License-Identifier: (GPL-2.0+ OR MIT) 2 /* 2 /* 3 * Copyright (c) 2019 BayLibre, SAS 3 * Copyright (c) 2019 BayLibre, SAS 4 * Author: Neil Armstrong <narmstrong@baylibre. 4 * Author: Neil Armstrong <narmstrong@baylibre.com> 5 */ 5 */ 6 6 7 #include "meson-g12b-odroid.dtsi" !! 7 #include <dt-bindings/input/input.h> >> 8 #include <dt-bindings/gpio/meson-g12a-gpio.h> >> 9 #include <dt-bindings/sound/meson-g12a-toacodec.h> >> 10 #include <dt-bindings/sound/meson-g12a-tohdmitx.h> 8 11 9 / { 12 / { 10 aliases { 13 aliases { >> 14 serial0 = &uart_AO; >> 15 ethernet0 = ðmac; 11 rtc0 = &rtc; 16 rtc0 = &rtc; >> 17 rtc1 = &vrtc; 12 }; 18 }; 13 19 14 dio2133: audio-amplifier-0 { !! 20 dioo2133: audio-amplifier-0 { 15 compatible = "simple-audio-amp 21 compatible = "simple-audio-amplifier"; 16 enable-gpios = <&gpio_ao GPIOA 22 enable-gpios = <&gpio_ao GPIOAO_2 GPIO_ACTIVE_HIGH>; 17 VCC-supply = <&vcc_5v>; 23 VCC-supply = <&vcc_5v>; 18 sound-name-prefix = "U19"; 24 sound-name-prefix = "U19"; 19 status = "okay"; 25 status = "okay"; 20 }; 26 }; 21 27 22 hub_5v: regulator-hub-5v { !! 28 chosen { >> 29 stdout-path = "serial0:115200n8"; >> 30 }; >> 31 >> 32 memory@0 { >> 33 device_type = "memory"; >> 34 reg = <0x0 0x0 0x0 0x40000000>; >> 35 }; >> 36 >> 37 emmc_pwrseq: emmc-pwrseq { >> 38 compatible = "mmc-pwrseq-emmc"; >> 39 reset-gpios = <&gpio BOOT_12 GPIO_ACTIVE_LOW>; >> 40 }; >> 41 >> 42 leds { >> 43 compatible = "gpio-leds"; >> 44 >> 45 led-blue { >> 46 label = "n2:blue"; >> 47 gpios = <&gpio_ao GPIOAO_11 GPIO_ACTIVE_HIGH>; >> 48 linux,default-trigger = "heartbeat"; >> 49 }; >> 50 }; >> 51 >> 52 tflash_vdd: regulator-tflash_vdd { >> 53 compatible = "regulator-fixed"; >> 54 >> 55 regulator-name = "TFLASH_VDD"; >> 56 regulator-min-microvolt = <3300000>; >> 57 regulator-max-microvolt = <3300000>; >> 58 >> 59 gpio = <&gpio_ao GPIOAO_8 GPIO_ACTIVE_HIGH>; >> 60 enable-active-high; >> 61 regulator-always-on; >> 62 }; >> 63 >> 64 tf_io: gpio-regulator-tf_io { >> 65 compatible = "regulator-gpio"; >> 66 >> 67 regulator-name = "TF_IO"; >> 68 regulator-min-microvolt = <1800000>; >> 69 regulator-max-microvolt = <3300000>; >> 70 >> 71 gpios = <&gpio_ao GPIOAO_9 GPIO_ACTIVE_HIGH>; >> 72 gpios-states = <0>; >> 73 >> 74 states = <3300000 0>, >> 75 <1800000 1>; >> 76 }; >> 77 >> 78 flash_1v8: regulator-flash_1v8 { >> 79 compatible = "regulator-fixed"; >> 80 regulator-name = "FLASH_1V8"; >> 81 regulator-min-microvolt = <1800000>; >> 82 regulator-max-microvolt = <1800000>; >> 83 vin-supply = <&vcc_3v3>; >> 84 regulator-always-on; >> 85 }; >> 86 >> 87 main_12v: regulator-main_12v { >> 88 compatible = "regulator-fixed"; >> 89 regulator-name = "12V"; >> 90 regulator-min-microvolt = <12000000>; >> 91 regulator-max-microvolt = <12000000>; >> 92 regulator-always-on; >> 93 }; >> 94 >> 95 vcc_5v: regulator-vcc_5v { >> 96 compatible = "regulator-fixed"; >> 97 regulator-name = "5V"; >> 98 regulator-min-microvolt = <5000000>; >> 99 regulator-max-microvolt = <5000000>; >> 100 regulator-always-on; >> 101 vin-supply = <&main_12v>; >> 102 }; >> 103 >> 104 vcc_1v8: regulator-vcc_1v8 { >> 105 compatible = "regulator-fixed"; >> 106 regulator-name = "VCC_1V8"; >> 107 regulator-min-microvolt = <1800000>; >> 108 regulator-max-microvolt = <1800000>; >> 109 vin-supply = <&vcc_3v3>; >> 110 regulator-always-on; >> 111 }; >> 112 >> 113 vcc_3v3: regulator-vcc_3v3 { >> 114 compatible = "regulator-fixed"; >> 115 regulator-name = "VCC_3V3"; >> 116 regulator-min-microvolt = <3300000>; >> 117 regulator-max-microvolt = <3300000>; >> 118 vin-supply = <&vddao_3v3>; >> 119 regulator-always-on; >> 120 /* FIXME: actually controlled by VDDCPU_B_EN */ >> 121 }; >> 122 >> 123 vddcpu_a: regulator-vddcpu-a { >> 124 /* >> 125 * MP8756GD Regulator. >> 126 */ >> 127 compatible = "pwm-regulator"; >> 128 >> 129 regulator-name = "VDDCPU_A"; >> 130 regulator-min-microvolt = <721000>; >> 131 regulator-max-microvolt = <1022000>; >> 132 >> 133 vin-supply = <&main_12v>; >> 134 >> 135 pwms = <&pwm_ab 0 1250 0>; >> 136 pwm-dutycycle-range = <100 0>; >> 137 >> 138 regulator-boot-on; >> 139 regulator-always-on; >> 140 }; >> 141 >> 142 vddcpu_b: regulator-vddcpu-b { >> 143 /* >> 144 * Silergy SY8120B1ABC Regulator. >> 145 */ >> 146 compatible = "pwm-regulator"; >> 147 >> 148 regulator-name = "VDDCPU_B"; >> 149 regulator-min-microvolt = <721000>; >> 150 regulator-max-microvolt = <1022000>; >> 151 >> 152 vin-supply = <&main_12v>; >> 153 >> 154 pwms = <&pwm_AO_cd 1 1250 0>; >> 155 pwm-dutycycle-range = <100 0>; >> 156 >> 157 regulator-boot-on; >> 158 regulator-always-on; >> 159 }; >> 160 >> 161 hub_5v: regulator-hub_5v { 23 compatible = "regulator-fixed" 162 compatible = "regulator-fixed"; 24 regulator-name = "HUB_5V"; 163 regulator-name = "HUB_5V"; 25 regulator-min-microvolt = <500 164 regulator-min-microvolt = <5000000>; 26 regulator-max-microvolt = <500 165 regulator-max-microvolt = <5000000>; 27 vin-supply = <&vcc_5v>; 166 vin-supply = <&vcc_5v>; 28 167 29 /* Connected to the Hub CHIPEN 168 /* Connected to the Hub CHIPENABLE, LOW sets low power state */ 30 gpio = <&gpio GPIOH_5 GPIO_ACT 169 gpio = <&gpio GPIOH_5 GPIO_ACTIVE_HIGH>; 31 enable-active-high; 170 enable-active-high; 32 }; 171 }; 33 172 34 /* USB hub supports both USB 2.0 and U !! 173 usb_pwr_en: regulator-usb_pwr_en { 35 usb-hub { !! 174 compatible = "regulator-fixed"; 36 dr_mode = "host"; !! 175 regulator-name = "USB_PWR_EN"; 37 #address-cells = <1>; !! 176 regulator-min-microvolt = <5000000>; 38 #size-cells = <0>; !! 177 regulator-max-microvolt = <5000000>; >> 178 vin-supply = <&vcc_5v>; >> 179 >> 180 /* Connected to the microUSB port power enable */ >> 181 gpio = <&gpio GPIOH_6 GPIO_ACTIVE_HIGH>; >> 182 enable-active-high; >> 183 }; >> 184 >> 185 vddao_1v8: regulator-vddao_1v8 { >> 186 compatible = "regulator-fixed"; >> 187 regulator-name = "VDDAO_1V8"; >> 188 regulator-min-microvolt = <1800000>; >> 189 regulator-max-microvolt = <1800000>; >> 190 vin-supply = <&vddao_3v3>; >> 191 regulator-always-on; >> 192 }; 39 193 40 /* 2.0 hub on port 1 */ !! 194 vddao_3v3: regulator-vddao_3v3 { 41 hub_2_0: hub@1 { !! 195 compatible = "regulator-fixed"; 42 compatible = "usb5e3,6 !! 196 regulator-name = "VDDAO_3V3"; 43 reg = <1>; !! 197 regulator-min-microvolt = <3300000>; 44 peer-hub = <&hub_3_0>; !! 198 regulator-max-microvolt = <3300000>; 45 vdd-supply = <&usb_pwr !! 199 vin-supply = <&main_12v>; 46 }; !! 200 regulator-always-on; 47 !! 201 }; 48 /* 3.0 hub on port 4 */ !! 202 49 hub_3_0: hub@2 { !! 203 hdmi-connector { 50 compatible = "usb5e3,6 !! 204 compatible = "hdmi-connector"; 51 reg = <2>; !! 205 type = "a"; 52 peer-hub = <&hub_2_0>; !! 206 53 reset-gpios = <&gpio G !! 207 port { 54 vdd-supply = <&vcc_5v> !! 208 hdmi_connector_in: endpoint { >> 209 remote-endpoint = <&hdmi_tx_tmds_out>; >> 210 }; 55 }; 211 }; 56 }; 212 }; 57 213 58 sound { 214 sound { 59 compatible = "amlogic,axg-soun 215 compatible = "amlogic,axg-sound-card"; 60 model = "ODROID-N2"; 216 model = "ODROID-N2"; 61 audio-widgets = "Line", "Lineo 217 audio-widgets = "Line", "Lineout"; 62 audio-aux-devs = <&tdmout_b>, 218 audio-aux-devs = <&tdmout_b>, <&tdmout_c>, <&tdmin_a>, 63 <&tdmin_b>, < 219 <&tdmin_b>, <&tdmin_c>, <&tdmin_lb>, 64 <&dio2133>; !! 220 <&dioo2133>; 65 audio-routing = "TDMOUT_B IN 0 221 audio-routing = "TDMOUT_B IN 0", "FRDDR_A OUT 1", 66 "TDMOUT_B IN 1 222 "TDMOUT_B IN 1", "FRDDR_B OUT 1", 67 "TDMOUT_B IN 2 223 "TDMOUT_B IN 2", "FRDDR_C OUT 1", 68 "TDM_B Playbac 224 "TDM_B Playback", "TDMOUT_B OUT", 69 "TDMOUT_C IN 0 225 "TDMOUT_C IN 0", "FRDDR_A OUT 2", 70 "TDMOUT_C IN 1 226 "TDMOUT_C IN 1", "FRDDR_B OUT 2", 71 "TDMOUT_C IN 2 227 "TDMOUT_C IN 2", "FRDDR_C OUT 2", 72 "TDM_C Playbac 228 "TDM_C Playback", "TDMOUT_C OUT", 73 "TDMIN_A IN 4" 229 "TDMIN_A IN 4", "TDM_B Loopback", 74 "TDMIN_B IN 4" 230 "TDMIN_B IN 4", "TDM_B Loopback", 75 "TDMIN_C IN 4" 231 "TDMIN_C IN 4", "TDM_B Loopback", 76 "TDMIN_LB IN 1 232 "TDMIN_LB IN 1", "TDM_B Loopback", 77 "TDMIN_A IN 5" 233 "TDMIN_A IN 5", "TDM_C Loopback", 78 "TDMIN_B IN 5" 234 "TDMIN_B IN 5", "TDM_C Loopback", 79 "TDMIN_C IN 5" 235 "TDMIN_C IN 5", "TDM_C Loopback", 80 "TDMIN_LB IN 2 236 "TDMIN_LB IN 2", "TDM_C Loopback", 81 "TODDR_A IN 0" 237 "TODDR_A IN 0", "TDMIN_A OUT", 82 "TODDR_B IN 0" 238 "TODDR_B IN 0", "TDMIN_A OUT", 83 "TODDR_C IN 0" 239 "TODDR_C IN 0", "TDMIN_A OUT", 84 "TODDR_A IN 1" 240 "TODDR_A IN 1", "TDMIN_B OUT", 85 "TODDR_B IN 1" 241 "TODDR_B IN 1", "TDMIN_B OUT", 86 "TODDR_C IN 1" 242 "TODDR_C IN 1", "TDMIN_B OUT", 87 "TODDR_A IN 2" 243 "TODDR_A IN 2", "TDMIN_C OUT", 88 "TODDR_B IN 2" 244 "TODDR_B IN 2", "TDMIN_C OUT", 89 "TODDR_C IN 2" 245 "TODDR_C IN 2", "TDMIN_C OUT", 90 "TODDR_A IN 6" 246 "TODDR_A IN 6", "TDMIN_LB OUT", 91 "TODDR_B IN 6" 247 "TODDR_B IN 6", "TDMIN_LB OUT", 92 "TODDR_C IN 6" 248 "TODDR_C IN 6", "TDMIN_LB OUT", 93 "U19 INL", "AC 249 "U19 INL", "ACODEC LOLP", 94 "U19 INR", "AC 250 "U19 INR", "ACODEC LORP", 95 "Lineout", "U1 251 "Lineout", "U19 OUTL", 96 "Lineout", "U1 252 "Lineout", "U19 OUTR"; 97 253 98 clocks = <&clkc CLKID_MPLL2>, << 99 <&clkc CLKID_MPLL0>, << 100 <&clkc CLKID_MPLL1>; << 101 << 102 assigned-clocks = <&clkc CLKID 254 assigned-clocks = <&clkc CLKID_MPLL2>, 103 <&clkc CLKID 255 <&clkc CLKID_MPLL0>, 104 <&clkc CLKID 256 <&clkc CLKID_MPLL1>; 105 assigned-clock-parents = <0>, 257 assigned-clock-parents = <0>, <0>, <0>; 106 assigned-clock-rates = <294912 258 assigned-clock-rates = <294912000>, 107 <270950 259 <270950400>, 108 <393216 260 <393216000>; >> 261 status = "okay"; 109 262 110 dai-link-0 { 263 dai-link-0 { 111 sound-dai = <&frddr_a> 264 sound-dai = <&frddr_a>; 112 }; 265 }; 113 266 114 dai-link-1 { 267 dai-link-1 { 115 sound-dai = <&frddr_b> 268 sound-dai = <&frddr_b>; 116 }; 269 }; 117 270 118 dai-link-2 { 271 dai-link-2 { 119 sound-dai = <&frddr_c> 272 sound-dai = <&frddr_c>; 120 }; 273 }; 121 274 122 dai-link-3 { 275 dai-link-3 { 123 sound-dai = <&toddr_a> 276 sound-dai = <&toddr_a>; 124 }; 277 }; 125 278 126 dai-link-4 { 279 dai-link-4 { 127 sound-dai = <&toddr_b> 280 sound-dai = <&toddr_b>; 128 }; 281 }; 129 282 130 dai-link-5 { 283 dai-link-5 { 131 sound-dai = <&toddr_c> 284 sound-dai = <&toddr_c>; 132 }; 285 }; 133 286 134 /* 8ch hdmi interface */ 287 /* 8ch hdmi interface */ 135 dai-link-6 { 288 dai-link-6 { 136 sound-dai = <&tdmif_b> 289 sound-dai = <&tdmif_b>; 137 dai-format = "i2s"; 290 dai-format = "i2s"; 138 dai-tdm-slot-tx-mask-0 291 dai-tdm-slot-tx-mask-0 = <1 1>; 139 dai-tdm-slot-tx-mask-1 292 dai-tdm-slot-tx-mask-1 = <1 1>; 140 dai-tdm-slot-tx-mask-2 293 dai-tdm-slot-tx-mask-2 = <1 1>; 141 dai-tdm-slot-tx-mask-3 294 dai-tdm-slot-tx-mask-3 = <1 1>; 142 mclk-fs = <256>; 295 mclk-fs = <256>; 143 296 144 codec-0 { 297 codec-0 { 145 sound-dai = <& 298 sound-dai = <&tohdmitx TOHDMITX_I2S_IN_B>; 146 }; 299 }; 147 300 148 codec-1 { 301 codec-1 { 149 sound-dai = <& 302 sound-dai = <&toacodec TOACODEC_IN_B>; 150 }; 303 }; 151 }; 304 }; 152 305 153 /* i2s jack output interface * 306 /* i2s jack output interface */ 154 dai-link-7 { 307 dai-link-7 { 155 sound-dai = <&tdmif_c> 308 sound-dai = <&tdmif_c>; 156 dai-format = "i2s"; 309 dai-format = "i2s"; 157 dai-tdm-slot-tx-mask-0 310 dai-tdm-slot-tx-mask-0 = <1 1>; 158 mclk-fs = <256>; 311 mclk-fs = <256>; 159 312 160 codec-0 { 313 codec-0 { 161 sound-dai = <& 314 sound-dai = <&tohdmitx TOHDMITX_I2S_IN_C>; 162 }; 315 }; 163 316 164 codec-1 { 317 codec-1 { 165 sound-dai = <& 318 sound-dai = <&toacodec TOACODEC_IN_C>; 166 }; 319 }; 167 }; 320 }; 168 321 169 /* hdmi glue */ 322 /* hdmi glue */ 170 dai-link-8 { 323 dai-link-8 { 171 sound-dai = <&tohdmitx 324 sound-dai = <&tohdmitx TOHDMITX_I2S_OUT>; 172 325 173 codec { 326 codec { 174 sound-dai = <& 327 sound-dai = <&hdmi_tx>; 175 }; 328 }; 176 }; 329 }; 177 330 178 /* acodec glue */ 331 /* acodec glue */ 179 dai-link-9 { 332 dai-link-9 { 180 sound-dai = <&toacodec 333 sound-dai = <&toacodec TOACODEC_OUT>; 181 334 182 codec { 335 codec { 183 sound-dai = <& 336 sound-dai = <&acodec>; 184 }; 337 }; 185 }; 338 }; 186 }; 339 }; 187 }; 340 }; 188 341 189 &acodec { 342 &acodec { 190 AVDD-supply = <&vddao_1v8>; 343 AVDD-supply = <&vddao_1v8>; 191 status = "okay"; 344 status = "okay"; 192 }; 345 }; 193 346 194 ðmac { !! 347 &arb { 195 pinctrl-0 = <ð_pins>, <ð_rgmii_p !! 348 status = "okay"; >> 349 }; >> 350 >> 351 &cec_AO { >> 352 pinctrl-0 = <&cec_ao_a_h_pins>; >> 353 pinctrl-names = "default"; >> 354 status = "disabled"; >> 355 hdmi-phandle = <&hdmi_tx>; >> 356 }; >> 357 >> 358 &cecb_AO { >> 359 pinctrl-0 = <&cec_ao_b_h_pins>; 196 pinctrl-names = "default"; 360 pinctrl-names = "default"; 197 status = "okay"; 361 status = "okay"; 198 phy-mode = "rgmii"; !! 362 hdmi-phandle = <&hdmi_tx>; 199 phy-handle = <&external_phy>; !! 363 }; 200 amlogic,tx-delay-ns = <2>; !! 364 >> 365 &clkc_audio { >> 366 status = "okay"; >> 367 }; >> 368 >> 369 &cpu0 { >> 370 cpu-supply = <&vddcpu_b>; >> 371 operating-points-v2 = <&cpu_opp_table_0>; >> 372 clocks = <&clkc CLKID_CPU_CLK>; >> 373 clock-latency = <50000>; >> 374 }; >> 375 >> 376 &cpu1 { >> 377 cpu-supply = <&vddcpu_b>; >> 378 operating-points-v2 = <&cpu_opp_table_0>; >> 379 clocks = <&clkc CLKID_CPU_CLK>; >> 380 clock-latency = <50000>; >> 381 }; >> 382 >> 383 &cpu100 { >> 384 cpu-supply = <&vddcpu_a>; >> 385 operating-points-v2 = <&cpub_opp_table_1>; >> 386 clocks = <&clkc CLKID_CPUB_CLK>; >> 387 clock-latency = <50000>; >> 388 }; >> 389 >> 390 &cpu101 { >> 391 cpu-supply = <&vddcpu_a>; >> 392 operating-points-v2 = <&cpub_opp_table_1>; >> 393 clocks = <&clkc CLKID_CPUB_CLK>; >> 394 clock-latency = <50000>; >> 395 }; >> 396 >> 397 &cpu102 { >> 398 cpu-supply = <&vddcpu_a>; >> 399 operating-points-v2 = <&cpub_opp_table_1>; >> 400 clocks = <&clkc CLKID_CPUB_CLK>; >> 401 clock-latency = <50000>; >> 402 }; >> 403 >> 404 &cpu103 { >> 405 cpu-supply = <&vddcpu_a>; >> 406 operating-points-v2 = <&cpub_opp_table_1>; >> 407 clocks = <&clkc CLKID_CPUB_CLK>; >> 408 clock-latency = <50000>; 201 }; 409 }; 202 410 203 &ext_mdio { 411 &ext_mdio { 204 external_phy: ethernet-phy@0 { 412 external_phy: ethernet-phy@0 { 205 /* Realtek RTL8211F (0x001cc91 413 /* Realtek RTL8211F (0x001cc916) */ 206 reg = <0>; 414 reg = <0>; 207 max-speed = <1000>; 415 max-speed = <1000>; 208 416 209 reset-assert-us = <10000>; 417 reset-assert-us = <10000>; 210 reset-deassert-us = <80000>; 418 reset-deassert-us = <80000>; 211 reset-gpios = <&gpio GPIOZ_15 419 reset-gpios = <&gpio GPIOZ_15 (GPIO_ACTIVE_LOW | GPIO_OPEN_DRAIN)>; 212 420 213 interrupt-parent = <&gpio_intc 421 interrupt-parent = <&gpio_intc>; 214 /* MAC_INTR on GPIOZ_14 */ 422 /* MAC_INTR on GPIOZ_14 */ 215 interrupts = <IRQID_GPIOZ_14 I !! 423 interrupts = <26 IRQ_TYPE_LEVEL_LOW>; 216 }; 424 }; 217 }; 425 }; 218 426 >> 427 ðmac { >> 428 pinctrl-0 = <ð_pins>, <ð_rgmii_pins>; >> 429 pinctrl-names = "default"; >> 430 status = "okay"; >> 431 phy-mode = "rgmii"; >> 432 phy-handle = <&external_phy>; >> 433 amlogic,tx-delay-ns = <2>; >> 434 }; >> 435 >> 436 &frddr_a { >> 437 status = "okay"; >> 438 }; >> 439 >> 440 &frddr_b { >> 441 status = "okay"; >> 442 }; >> 443 >> 444 &frddr_c { >> 445 status = "okay"; >> 446 }; >> 447 219 &gpio { 448 &gpio { 220 gpio-line-names = 449 gpio-line-names = 221 /* GPIOZ */ 450 /* GPIOZ */ 222 "", "", "", "", "", "", "", "" 451 "", "", "", "", "", "", "", "", 223 "", "", "", "", "", "", "", "" 452 "", "", "", "", "", "", "", "", 224 /* GPIOH */ 453 /* GPIOH */ 225 "", "", "", "", "", "", "", "" 454 "", "", "", "", "", "", "", "", 226 "", 455 "", 227 /* BOOT */ 456 /* BOOT */ 228 "", "", "", "", "", "", "", "" 457 "", "", "", "", "", "", "", "", 229 "", "", "", "", "", "", "", "" 458 "", "", "", "", "", "", "", "", 230 /* GPIOC */ 459 /* GPIOC */ 231 "", "", "", "", "", "", "", "" 460 "", "", "", "", "", "", "", "", 232 /* GPIOA */ 461 /* GPIOA */ 233 "PIN_44", /* GPIOA_0 */ 462 "PIN_44", /* GPIOA_0 */ 234 "PIN_46", /* GPIOA_1 */ 463 "PIN_46", /* GPIOA_1 */ 235 "PIN_45", /* GPIOA_2 */ 464 "PIN_45", /* GPIOA_2 */ 236 "PIN_47", /* GPIOA_3 */ 465 "PIN_47", /* GPIOA_3 */ 237 "PIN_26", /* GPIOA_4 */ 466 "PIN_26", /* GPIOA_4 */ 238 "", "", "", "", "", "", 467 "", "", "", "", "", "", 239 "PIN_42", /* GPIOA_11 */ 468 "PIN_42", /* GPIOA_11 */ 240 "PIN_32", /* GPIOA_12 */ 469 "PIN_32", /* GPIOA_12 */ 241 "PIN_7", /* GPIOA_13 */ 470 "PIN_7", /* GPIOA_13 */ 242 "PIN_27", /* GPIOA_14 */ 471 "PIN_27", /* GPIOA_14 */ 243 "PIN_28", /* GPIOA_15 */ 472 "PIN_28", /* GPIOA_15 */ 244 /* GPIOX */ 473 /* GPIOX */ 245 "PIN_16", /* GPIOX_0 */ 474 "PIN_16", /* GPIOX_0 */ 246 "PIN_18", /* GPIOX_1 */ 475 "PIN_18", /* GPIOX_1 */ 247 "PIN_22", /* GPIOX_2 */ 476 "PIN_22", /* GPIOX_2 */ 248 "PIN_11", /* GPIOX_3 */ 477 "PIN_11", /* GPIOX_3 */ 249 "PIN_13", /* GPIOX_4 */ 478 "PIN_13", /* GPIOX_4 */ 250 "PIN_33", /* GPIOX_5 */ 479 "PIN_33", /* GPIOX_5 */ 251 "PIN_35", /* GPIOX_6 */ 480 "PIN_35", /* GPIOX_6 */ 252 "PIN_15", /* GPIOX_7 */ 481 "PIN_15", /* GPIOX_7 */ 253 "PIN_19", /* GPIOX_8 */ 482 "PIN_19", /* GPIOX_8 */ 254 "PIN_21", /* GPIOX_9 */ 483 "PIN_21", /* GPIOX_9 */ 255 "PIN_24", /* GPIOX_10 */ 484 "PIN_24", /* GPIOX_10 */ 256 "PIN_23", /* GPIOX_11 */ 485 "PIN_23", /* GPIOX_11 */ 257 "PIN_8", /* GPIOX_12 */ 486 "PIN_8", /* GPIOX_12 */ 258 "PIN_10", /* GPIOX_13 */ 487 "PIN_10", /* GPIOX_13 */ 259 "PIN_29", /* GPIOX_14 */ 488 "PIN_29", /* GPIOX_14 */ 260 "PIN_31", /* GPIOX_15 */ 489 "PIN_31", /* GPIOX_15 */ 261 "PIN_12", /* GPIOX_16 */ 490 "PIN_12", /* GPIOX_16 */ 262 "PIN_3", /* GPIOX_17 */ 491 "PIN_3", /* GPIOX_17 */ 263 "PIN_5", /* GPIOX_18 */ 492 "PIN_5", /* GPIOX_18 */ 264 "PIN_36"; /* GPIOX_19 */ 493 "PIN_36"; /* GPIOX_19 */ >> 494 /* >> 495 * WARNING: The USB Hub on the Odroid-N2 needs a reset signal >> 496 * to be turned high in order to be detected by the USB Controller >> 497 * This signal should be handled by a USB specific power sequence >> 498 * in order to reset the Hub when USB bus is powered down. >> 499 */ >> 500 hog-0 { >> 501 gpio-hog; >> 502 gpios = <GPIOH_4 GPIO_ACTIVE_HIGH>; >> 503 output-high; >> 504 line-name = "usb-hub-reset"; >> 505 }; >> 506 }; >> 507 >> 508 &hdmi_tx { >> 509 status = "okay"; >> 510 pinctrl-0 = <&hdmitx_hpd_pins>, <&hdmitx_ddc_pins>; >> 511 pinctrl-names = "default"; >> 512 hdmi-supply = <&vcc_5v>; >> 513 }; >> 514 >> 515 &hdmi_tx_tmds_port { >> 516 hdmi_tx_tmds_out: endpoint { >> 517 remote-endpoint = <&hdmi_connector_in>; >> 518 }; >> 519 }; >> 520 >> 521 &ir { >> 522 status = "okay"; >> 523 pinctrl-0 = <&remote_input_ao_pins>; >> 524 pinctrl-names = "default"; >> 525 linux,rc-map-name = "rc-odroid"; 265 }; 526 }; 266 527 267 &i2c3 { 528 &i2c3 { 268 status = "okay"; 529 status = "okay"; 269 pinctrl-0 = <&i2c3_sda_a_pins>, <&i2c3 530 pinctrl-0 = <&i2c3_sda_a_pins>, <&i2c3_sck_a_pins>; 270 pinctrl-names = "default"; 531 pinctrl-names = "default"; 271 532 272 rtc: rtc@51 { 533 rtc: rtc@51 { 273 compatible = "nxp,pcf8563"; 534 compatible = "nxp,pcf8563"; 274 reg = <0x51>; 535 reg = <0x51>; 275 wakeup-source; 536 wakeup-source; 276 }; 537 }; 277 }; 538 }; 278 539 279 &ir { !! 540 &pwm_ab { >> 541 pinctrl-0 = <&pwm_a_e_pins>; >> 542 pinctrl-names = "default"; >> 543 clocks = <&xtal>; >> 544 clock-names = "clkin0"; 280 status = "okay"; 545 status = "okay"; 281 pinctrl-0 = <&remote_input_ao_pins>; !! 546 }; >> 547 >> 548 &pwm_AO_cd { >> 549 pinctrl-0 = <&pwm_ao_d_e_pins>; 282 pinctrl-names = "default"; 550 pinctrl-names = "default"; 283 linux,rc-map-name = "rc-odroid"; !! 551 clocks = <&xtal>; >> 552 clock-names = "clkin1"; >> 553 status = "okay"; >> 554 }; >> 555 >> 556 &saradc { >> 557 status = "okay"; >> 558 vref-supply = <&vddao_1v8>; >> 559 }; >> 560 >> 561 /* SD card */ >> 562 &sd_emmc_b { >> 563 status = "okay"; >> 564 pinctrl-0 = <&sdcard_c_pins>; >> 565 pinctrl-1 = <&sdcard_clk_gate_c_pins>; >> 566 pinctrl-names = "default", "clk-gate"; >> 567 >> 568 bus-width = <4>; >> 569 cap-sd-highspeed; >> 570 max-frequency = <50000000>; >> 571 disable-wp; >> 572 >> 573 cd-gpios = <&gpio GPIOC_6 GPIO_ACTIVE_LOW>; >> 574 vmmc-supply = <&tflash_vdd>; >> 575 vqmmc-supply = <&tf_io>; >> 576 >> 577 }; >> 578 >> 579 /* eMMC */ >> 580 &sd_emmc_c { >> 581 status = "okay"; >> 582 pinctrl-0 = <&emmc_ctrl_pins>, <&emmc_data_8b_pins>, <&emmc_ds_pins>; >> 583 pinctrl-1 = <&emmc_clk_gate_pins>; >> 584 pinctrl-names = "default", "clk-gate"; >> 585 >> 586 bus-width = <8>; >> 587 cap-mmc-highspeed; >> 588 mmc-ddr-1_8v; >> 589 mmc-hs200-1_8v; >> 590 max-frequency = <200000000>; >> 591 disable-wp; >> 592 >> 593 mmc-pwrseq = <&emmc_pwrseq>; >> 594 vmmc-supply = <&vcc_3v3>; >> 595 vqmmc-supply = <&flash_1v8>; 284 }; 596 }; 285 597 286 /* 598 /* 287 * EMMC_D4, EMMC_D5, EMMC_D6 and EMMC_D7 pins 599 * EMMC_D4, EMMC_D5, EMMC_D6 and EMMC_D7 pins are shared between SPI NOR pins 288 * and eMMC Data 4 to 7 pins. 600 * and eMMC Data 4 to 7 pins. 289 * Replace emmc_data_8b_pins to emmc_data_4b_p 601 * Replace emmc_data_8b_pins to emmc_data_4b_pins from sd_emmc_c pinctrl-0, 290 * and change bus-width to 4 then spifc can be 602 * and change bus-width to 4 then spifc can be enabled. 291 * The SW1 slide should also be set to the cor 603 * The SW1 slide should also be set to the correct position. 292 */ 604 */ 293 &spifc { 605 &spifc { 294 status = "disabled"; 606 status = "disabled"; 295 pinctrl-0 = <&nor_pins>; 607 pinctrl-0 = <&nor_pins>; 296 pinctrl-names = "default"; 608 pinctrl-names = "default"; 297 609 298 mx25u64: flash@0 { !! 610 mx25u64: spi-flash@0 { 299 #address-cells = <1>; 611 #address-cells = <1>; 300 #size-cells = <1>; 612 #size-cells = <1>; 301 compatible = "mxicy,mx25u6435f 613 compatible = "mxicy,mx25u6435f", "jedec,spi-nor"; 302 reg = <0>; 614 reg = <0>; 303 spi-max-frequency = <104000000 615 spi-max-frequency = <104000000>; 304 }; 616 }; 305 }; 617 }; 306 618 >> 619 &tdmif_b { >> 620 status = "okay"; >> 621 }; >> 622 >> 623 &tdmif_c { >> 624 status = "okay"; >> 625 }; >> 626 >> 627 &tdmin_a { >> 628 status = "okay"; >> 629 }; >> 630 >> 631 &tdmin_b { >> 632 status = "okay"; >> 633 }; >> 634 >> 635 &tdmin_c { >> 636 status = "okay"; >> 637 }; >> 638 >> 639 &tdmin_lb { >> 640 status = "okay"; >> 641 }; >> 642 >> 643 &tdmout_b { >> 644 status = "okay"; >> 645 }; >> 646 >> 647 &tdmout_c { >> 648 status = "okay"; >> 649 }; >> 650 307 &toacodec { 651 &toacodec { 308 status = "okay"; 652 status = "okay"; 309 }; 653 }; 310 654 >> 655 &tohdmitx { >> 656 status = "okay"; >> 657 }; >> 658 >> 659 &toddr_a { >> 660 status = "okay"; >> 661 }; >> 662 >> 663 &toddr_b { >> 664 status = "okay"; >> 665 }; >> 666 >> 667 &toddr_c { >> 668 status = "okay"; >> 669 }; >> 670 >> 671 &uart_AO { >> 672 status = "okay"; >> 673 pinctrl-0 = <&uart_ao_a_pins>; >> 674 pinctrl-names = "default"; >> 675 }; >> 676 311 &usb { 677 &usb { >> 678 status = "okay"; 312 vbus-supply = <&usb_pwr_en>; 679 vbus-supply = <&usb_pwr_en>; >> 680 }; >> 681 >> 682 &usb2_phy0 { >> 683 phy-supply = <&vcc_5v>; 313 }; 684 }; 314 685 315 &usb2_phy1 { 686 &usb2_phy1 { 316 /* Enable the hub which is connected t 687 /* Enable the hub which is connected to this port */ 317 phy-supply = <&hub_5v>; 688 phy-supply = <&hub_5v>; 318 }; 689 };
Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.