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