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 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 }; 39 184 40 /* 2.0 hub on port 1 */ !! 185 vddao_1v8: regulator-vddao_1v8 { 41 hub_2_0: hub@1 { !! 186 compatible = "regulator-fixed"; 42 compatible = "usb5e3,6 !! 187 regulator-name = "VDDAO_1V8"; 43 reg = <1>; !! 188 regulator-min-microvolt = <1800000>; 44 peer-hub = <&hub_3_0>; !! 189 regulator-max-microvolt = <1800000>; 45 vdd-supply = <&usb_pwr !! 190 vin-supply = <&vddao_3v3>; 46 }; !! 191 regulator-always-on; 47 !! 192 }; 48 /* 3.0 hub on port 4 */ !! 193 49 hub_3_0: hub@2 { !! 194 vddao_3v3: regulator-vddao_3v3 { 50 compatible = "usb5e3,6 !! 195 compatible = "regulator-fixed"; 51 reg = <2>; !! 196 regulator-name = "VDDAO_3V3"; 52 peer-hub = <&hub_2_0>; !! 197 regulator-min-microvolt = <3300000>; 53 reset-gpios = <&gpio G !! 198 regulator-max-microvolt = <3300000>; 54 vdd-supply = <&vcc_5v> !! 199 vin-supply = <&main_12v>; >> 200 regulator-always-on; >> 201 }; >> 202 >> 203 hdmi-connector { >> 204 compatible = "hdmi-connector"; >> 205 type = "a"; >> 206 >> 207 port { >> 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 /* 221 /* GPIOZ */ !! 450 * WARNING: The USB Hub on the Odroid-N2 needs a reset signal 222 "", "", "", "", "", "", "", "" !! 451 * to be turned high in order to be detected by the USB Controller 223 "", "", "", "", "", "", "", "" !! 452 * This signal should be handled by a USB specific power sequence 224 /* GPIOH */ !! 453 * in order to reset the Hub when USB bus is powered down. 225 "", "", "", "", "", "", "", "" !! 454 */ 226 "", !! 455 usb-hub { 227 /* BOOT */ !! 456 gpio-hog; 228 "", "", "", "", "", "", "", "" !! 457 gpios = <GPIOH_4 GPIO_ACTIVE_HIGH>; 229 "", "", "", "", "", "", "", "" !! 458 output-high; 230 /* GPIOC */ !! 459 line-name = "usb-hub-reset"; 231 "", "", "", "", "", "", "", "" !! 460 }; 232 /* GPIOA */ !! 461 }; 233 "PIN_44", /* GPIOA_0 */ !! 462 234 "PIN_46", /* GPIOA_1 */ !! 463 &hdmi_tx { 235 "PIN_45", /* GPIOA_2 */ !! 464 status = "okay"; 236 "PIN_47", /* GPIOA_3 */ !! 465 pinctrl-0 = <&hdmitx_hpd_pins>, <&hdmitx_ddc_pins>; 237 "PIN_26", /* GPIOA_4 */ !! 466 pinctrl-names = "default"; 238 "", "", "", "", "", "", !! 467 hdmi-supply = <&vcc_5v>; 239 "PIN_42", /* GPIOA_11 */ !! 468 }; 240 "PIN_32", /* GPIOA_12 */ !! 469 241 "PIN_7", /* GPIOA_13 */ !! 470 &hdmi_tx_tmds_port { 242 "PIN_27", /* GPIOA_14 */ !! 471 hdmi_tx_tmds_out: endpoint { 243 "PIN_28", /* GPIOA_15 */ !! 472 remote-endpoint = <&hdmi_connector_in>; 244 /* GPIOX */ !! 473 }; 245 "PIN_16", /* GPIOX_0 */ !! 474 }; 246 "PIN_18", /* GPIOX_1 */ !! 475 247 "PIN_22", /* GPIOX_2 */ !! 476 &ir { 248 "PIN_11", /* GPIOX_3 */ !! 477 status = "okay"; 249 "PIN_13", /* GPIOX_4 */ !! 478 pinctrl-0 = <&remote_input_ao_pins>; 250 "PIN_33", /* GPIOX_5 */ !! 479 pinctrl-names = "default"; 251 "PIN_35", /* GPIOX_6 */ !! 480 linux,rc-map-name = "rc-odroid"; 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 }; 481 }; 266 482 267 &i2c3 { 483 &i2c3 { 268 status = "okay"; 484 status = "okay"; 269 pinctrl-0 = <&i2c3_sda_a_pins>, <&i2c3 485 pinctrl-0 = <&i2c3_sda_a_pins>, <&i2c3_sck_a_pins>; 270 pinctrl-names = "default"; 486 pinctrl-names = "default"; 271 487 272 rtc: rtc@51 { 488 rtc: rtc@51 { 273 compatible = "nxp,pcf8563"; 489 compatible = "nxp,pcf8563"; 274 reg = <0x51>; 490 reg = <0x51>; 275 wakeup-source; 491 wakeup-source; 276 }; 492 }; 277 }; 493 }; 278 494 279 &ir { !! 495 &pwm_ab { >> 496 pinctrl-0 = <&pwm_a_e_pins>; >> 497 pinctrl-names = "default"; >> 498 clocks = <&xtal>; >> 499 clock-names = "clkin0"; 280 status = "okay"; 500 status = "okay"; 281 pinctrl-0 = <&remote_input_ao_pins>; !! 501 }; >> 502 >> 503 &pwm_AO_cd { >> 504 pinctrl-0 = <&pwm_ao_d_e_pins>; 282 pinctrl-names = "default"; 505 pinctrl-names = "default"; 283 linux,rc-map-name = "rc-odroid"; !! 506 clocks = <&xtal>; >> 507 clock-names = "clkin1"; >> 508 status = "okay"; >> 509 }; >> 510 >> 511 /* SD card */ >> 512 &sd_emmc_b { >> 513 status = "okay"; >> 514 pinctrl-0 = <&sdcard_c_pins>; >> 515 pinctrl-1 = <&sdcard_clk_gate_c_pins>; >> 516 pinctrl-names = "default", "clk-gate"; >> 517 >> 518 bus-width = <4>; >> 519 cap-sd-highspeed; >> 520 max-frequency = <50000000>; >> 521 disable-wp; >> 522 >> 523 cd-gpios = <&gpio GPIOC_6 GPIO_ACTIVE_LOW>; >> 524 vmmc-supply = <&tflash_vdd>; >> 525 vqmmc-supply = <&tf_io>; >> 526 >> 527 }; >> 528 >> 529 /* eMMC */ >> 530 &sd_emmc_c { >> 531 status = "okay"; >> 532 pinctrl-0 = <&emmc_ctrl_pins>, <&emmc_data_8b_pins>, <&emmc_ds_pins>; >> 533 pinctrl-1 = <&emmc_clk_gate_pins>; >> 534 pinctrl-names = "default", "clk-gate"; >> 535 >> 536 bus-width = <8>; >> 537 cap-mmc-highspeed; >> 538 mmc-ddr-1_8v; >> 539 mmc-hs200-1_8v; >> 540 max-frequency = <200000000>; >> 541 disable-wp; >> 542 >> 543 mmc-pwrseq = <&emmc_pwrseq>; >> 544 vmmc-supply = <&vcc_3v3>; >> 545 vqmmc-supply = <&flash_1v8>; 284 }; 546 }; 285 547 286 /* 548 /* 287 * EMMC_D4, EMMC_D5, EMMC_D6 and EMMC_D7 pins 549 * EMMC_D4, EMMC_D5, EMMC_D6 and EMMC_D7 pins are shared between SPI NOR pins 288 * and eMMC Data 4 to 7 pins. 550 * and eMMC Data 4 to 7 pins. 289 * Replace emmc_data_8b_pins to emmc_data_4b_p 551 * 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 552 * and change bus-width to 4 then spifc can be enabled. 291 * The SW1 slide should also be set to the cor 553 * The SW1 slide should also be set to the correct position. 292 */ 554 */ 293 &spifc { 555 &spifc { 294 status = "disabled"; 556 status = "disabled"; 295 pinctrl-0 = <&nor_pins>; 557 pinctrl-0 = <&nor_pins>; 296 pinctrl-names = "default"; 558 pinctrl-names = "default"; 297 559 298 mx25u64: flash@0 { !! 560 mx25u64: spi-flash@0 { 299 #address-cells = <1>; 561 #address-cells = <1>; 300 #size-cells = <1>; 562 #size-cells = <1>; 301 compatible = "mxicy,mx25u6435f 563 compatible = "mxicy,mx25u6435f", "jedec,spi-nor"; 302 reg = <0>; 564 reg = <0>; 303 spi-max-frequency = <104000000 565 spi-max-frequency = <104000000>; 304 }; 566 }; 305 }; 567 }; 306 568 >> 569 &tdmif_b { >> 570 status = "okay"; >> 571 }; >> 572 >> 573 &tdmif_c { >> 574 status = "okay"; >> 575 }; >> 576 >> 577 &tdmin_a { >> 578 status = "okay"; >> 579 }; >> 580 >> 581 &tdmin_b { >> 582 status = "okay"; >> 583 }; >> 584 >> 585 &tdmin_c { >> 586 status = "okay"; >> 587 }; >> 588 >> 589 &tdmin_lb { >> 590 status = "okay"; >> 591 }; >> 592 >> 593 &tdmout_b { >> 594 status = "okay"; >> 595 }; >> 596 >> 597 &tdmout_c { >> 598 status = "okay"; >> 599 }; >> 600 307 &toacodec { 601 &toacodec { 308 status = "okay"; 602 status = "okay"; 309 }; 603 }; 310 604 >> 605 &tohdmitx { >> 606 status = "okay"; >> 607 }; >> 608 >> 609 &toddr_a { >> 610 status = "okay"; >> 611 }; >> 612 >> 613 &toddr_b { >> 614 status = "okay"; >> 615 }; >> 616 >> 617 &toddr_c { >> 618 status = "okay"; >> 619 }; >> 620 >> 621 &uart_AO { >> 622 status = "okay"; >> 623 pinctrl-0 = <&uart_ao_a_pins>; >> 624 pinctrl-names = "default"; >> 625 }; >> 626 311 &usb { 627 &usb { >> 628 status = "okay"; 312 vbus-supply = <&usb_pwr_en>; 629 vbus-supply = <&usb_pwr_en>; >> 630 }; >> 631 >> 632 &usb2_phy0 { >> 633 phy-supply = <&vcc_5v>; 313 }; 634 }; 314 635 315 &usb2_phy1 { 636 &usb2_phy1 { 316 /* Enable the hub which is connected t 637 /* Enable the hub which is connected to this port */ 317 phy-supply = <&hub_5v>; 638 phy-supply = <&hub_5v>; 318 }; 639 };
Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.