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