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. All rights 3 * Copyright (c) 2019 BayLibre SAS. All rights reserved. 4 */ 4 */ 5 5 6 /dts-v1/; 6 /dts-v1/; 7 7 8 #include "meson-g12a.dtsi" 8 #include "meson-g12a.dtsi" 9 #include <dt-bindings/gpio/gpio.h> 9 #include <dt-bindings/gpio/gpio.h> 10 #include <dt-bindings/input/input.h> 10 #include <dt-bindings/input/input.h> 11 #include <dt-bindings/gpio/meson-g12a-gpio.h> 11 #include <dt-bindings/gpio/meson-g12a-gpio.h> 12 #include <dt-bindings/sound/meson-g12a-tohdmit << 13 12 14 / { 13 / { 15 compatible = "seirobotics,sei510", "am 14 compatible = "seirobotics,sei510", "amlogic,g12a"; 16 model = "SEI Robotics SEI510"; 15 model = "SEI Robotics SEI510"; 17 16 18 keys { !! 17 aliases { >> 18 serial0 = &uart_AO; >> 19 }; >> 20 >> 21 adc_keys { 19 compatible = "adc-keys"; 22 compatible = "adc-keys"; 20 io-channels = <&saradc 0>; 23 io-channels = <&saradc 0>; 21 io-channel-names = "buttons"; 24 io-channel-names = "buttons"; 22 keyup-threshold-microvolt = <1 25 keyup-threshold-microvolt = <1800000>; 23 26 24 button-onoff { 27 button-onoff { 25 label = "On/Off"; 28 label = "On/Off"; 26 linux,code = <KEY_POWE 29 linux,code = <KEY_POWER>; 27 press-threshold-microv 30 press-threshold-microvolt = <1700000>; 28 }; 31 }; 29 }; 32 }; 30 33 31 aliases { !! 34 ao_5v: regulator-ao_5v { 32 serial0 = &uart_AO; !! 35 compatible = "regulator-fixed"; 33 ethernet0 = ðmac; !! 36 regulator-name = "AO_5V"; 34 }; !! 37 regulator-min-microvolt = <5000000>; 35 !! 38 regulator-max-microvolt = <5000000>; 36 mono_dac: audio-codec-0 { !! 39 vin-supply = <&dc_in>; 37 compatible = "maxim,max98357a" !! 40 regulator-always-on; 38 #sound-dai-cells = <0>; << 39 sound-name-prefix = "U16"; << 40 sdmode-gpios = <&gpio GPIOX_8 << 41 }; << 42 << 43 dmics: audio-codec-1 { << 44 #sound-dai-cells = <0>; << 45 compatible = "dmic-codec"; << 46 num-channels = <2>; << 47 wakeup-delay-ms = <50>; << 48 sound-name-prefix = "MIC"; << 49 }; 41 }; 50 42 51 chosen { 43 chosen { 52 stdout-path = "serial0:115200n 44 stdout-path = "serial0:115200n8"; 53 }; 45 }; 54 46 55 cvbs-connector { 47 cvbs-connector { 56 compatible = "composite-video- 48 compatible = "composite-video-connector"; 57 49 58 port { 50 port { 59 cvbs_connector_in: end 51 cvbs_connector_in: endpoint { 60 remote-endpoin 52 remote-endpoint = <&cvbs_vdac_out>; 61 }; 53 }; 62 }; 54 }; 63 }; 55 }; 64 56 65 emmc_pwrseq: emmc-pwrseq { !! 57 dc_in: regulator-dc_in { 66 compatible = "mmc-pwrseq-emmc" !! 58 compatible = "regulator-fixed"; 67 reset-gpios = <&gpio BOOT_12 G !! 59 regulator-name = "DC_IN"; >> 60 regulator-min-microvolt = <5000000>; >> 61 regulator-max-microvolt = <5000000>; >> 62 regulator-always-on; >> 63 }; >> 64 >> 65 emmc_1v8: regulator-emmc_1v8 { >> 66 compatible = "regulator-fixed"; >> 67 regulator-name = "EMMC_1V8"; >> 68 regulator-min-microvolt = <1800000>; >> 69 regulator-max-microvolt = <1800000>; >> 70 vin-supply = <&vddao_3v3>; >> 71 regulator-always-on; 68 }; 72 }; 69 73 70 hdmi-connector { 74 hdmi-connector { 71 compatible = "hdmi-connector"; 75 compatible = "hdmi-connector"; 72 type = "a"; 76 type = "a"; 73 77 74 port { 78 port { 75 hdmi_connector_in: end 79 hdmi_connector_in: endpoint { 76 remote-endpoin 80 remote-endpoint = <&hdmi_tx_tmds_out>; 77 }; 81 }; 78 }; 82 }; 79 }; 83 }; 80 84 81 memory@0 { 85 memory@0 { 82 device_type = "memory"; 86 device_type = "memory"; 83 reg = <0x0 0x0 0x0 0x40000000> 87 reg = <0x0 0x0 0x0 0x40000000>; 84 }; 88 }; 85 89 86 ao_5v: regulator-ao-5v { !! 90 reserved-memory { 87 compatible = "regulator-fixed" !! 91 /* TEE Reserved Memory */ 88 regulator-name = "AO_5V"; !! 92 bl32_reserved: bl32@5000000 { 89 regulator-min-microvolt = <500 !! 93 reg = <0x0 0x05300000 0x0 0x2000000>; 90 regulator-max-microvolt = <500 !! 94 no-map; 91 vin-supply = <&dc_in>; !! 95 }; 92 regulator-always-on; << 93 }; << 94 << 95 dc_in: regulator-dc-in { << 96 compatible = "regulator-fixed" << 97 regulator-name = "DC_IN"; << 98 regulator-min-microvolt = <500 << 99 regulator-max-microvolt = <500 << 100 regulator-always-on; << 101 }; << 102 << 103 emmc_1v8: regulator-emmc-1v8 { << 104 compatible = "regulator-fixed" << 105 regulator-name = "EMMC_1V8"; << 106 regulator-min-microvolt = <180 << 107 regulator-max-microvolt = <180 << 108 vin-supply = <&vddao_3v3>; << 109 regulator-always-on; << 110 }; 96 }; 111 97 112 vddao_3v3: regulator-vddao-3v3 { !! 98 vddao_3v3: regulator-vddao_3v3 { 113 compatible = "regulator-fixed" 99 compatible = "regulator-fixed"; 114 regulator-name = "VDDAO_3V3"; 100 regulator-name = "VDDAO_3V3"; 115 regulator-min-microvolt = <330 101 regulator-min-microvolt = <3300000>; 116 regulator-max-microvolt = <330 102 regulator-max-microvolt = <3300000>; 117 vin-supply = <&dc_in>; 103 vin-supply = <&dc_in>; 118 regulator-always-on; 104 regulator-always-on; 119 }; 105 }; 120 106 121 vddao_3v3_t: regulator-vddao-3v3-t { !! 107 vddao_3v3_t: regultor-vddao_3v3_t { 122 compatible = "regulator-fixed" 108 compatible = "regulator-fixed"; 123 regulator-name = "VDDAO_3V3_T" 109 regulator-name = "VDDAO_3V3_T"; 124 regulator-min-microvolt = <330 110 regulator-min-microvolt = <3300000>; 125 regulator-max-microvolt = <330 111 regulator-max-microvolt = <3300000>; 126 vin-supply = <&vddao_3v3>; 112 vin-supply = <&vddao_3v3>; 127 gpio = <&gpio GPIOH_8 GPIO_OPE 113 gpio = <&gpio GPIOH_8 GPIO_OPEN_DRAIN>; 128 enable-active-high; 114 enable-active-high; 129 }; 115 }; 130 116 131 vddcpu: regulator-vddcpu { !! 117 vddio_ao1v8: regulator-vddio_ao1v8 { 132 /* << 133 * SY8120B1ABC DC/DC Regulator << 134 */ << 135 compatible = "pwm-regulator"; << 136 << 137 regulator-name = "VDDCPU"; << 138 regulator-min-microvolt = <721 << 139 regulator-max-microvolt = <102 << 140 << 141 pwm-supply = <&dc_in>; << 142 << 143 pwms = <&pwm_AO_cd 1 1250 0>; << 144 pwm-dutycycle-range = <100 0>; << 145 << 146 regulator-boot-on; << 147 regulator-always-on; << 148 }; << 149 << 150 vddio_ao1v8: regulator-vddio-ao1v8 { << 151 compatible = "regulator-fixed" 118 compatible = "regulator-fixed"; 152 regulator-name = "VDDIO_AO1V8" 119 regulator-name = "VDDIO_AO1V8"; 153 regulator-min-microvolt = <180 120 regulator-min-microvolt = <1800000>; 154 regulator-max-microvolt = <180 121 regulator-max-microvolt = <1800000>; 155 vin-supply = <&vddao_3v3>; 122 vin-supply = <&vddao_3v3>; 156 regulator-always-on; 123 regulator-always-on; 157 }; 124 }; 158 << 159 sdio_pwrseq: sdio-pwrseq { << 160 compatible = "mmc-pwrseq-simpl << 161 reset-gpios = <&gpio GPIOX_6 G << 162 clocks = <&wifi32k>; << 163 clock-names = "ext_clock"; << 164 }; << 165 << 166 wifi32k: wifi32k { << 167 compatible = "pwm-clock"; << 168 #clock-cells = <0>; << 169 clock-frequency = <32768>; << 170 pwms = <&pwm_ef 0 30518 0>; /* << 171 }; << 172 << 173 sound { << 174 compatible = "amlogic,axg-soun << 175 model = "SEI510"; << 176 audio-aux-devs = <&tdmout_a>, << 177 <&tdmin_a>, < << 178 audio-routing = "TDMOUT_A IN 0 << 179 "TDMOUT_A IN 1 << 180 "TDMOUT_A IN 2 << 181 "TDM_A Playbac << 182 "TDMOUT_B IN 0 << 183 "TDMOUT_B IN 1 << 184 "TDMOUT_B IN 2 << 185 "TDM_B Playbac << 186 "TODDR_A IN 4" << 187 "TODDR_B IN 4" << 188 "TODDR_C IN 4" << 189 "TDMIN_A IN 0" << 190 "TDMIN_A IN 3" << 191 "TDMIN_B IN 0" << 192 "TDMIN_B IN 3" << 193 "TDMIN_A IN 1" << 194 "TDMIN_A IN 4" << 195 "TDMIN_B IN 1" << 196 "TDMIN_B IN 4" << 197 "TODDR_A IN 0" << 198 "TODDR_B IN 0" << 199 "TODDR_C IN 0" << 200 "TODDR_A IN 1" << 201 "TODDR_B IN 1" << 202 "TODDR_C IN 1" << 203 << 204 clocks = <&clkc CLKID_MPLL2>, << 205 <&clkc CLKID_MPLL0>, << 206 <&clkc CLKID_MPLL1>; << 207 << 208 assigned-clocks = <&clkc CLKID << 209 <&clkc CLKID << 210 <&clkc CLKID << 211 assigned-clock-parents = <0>, << 212 assigned-clock-rates = <294912 << 213 <270950 << 214 <393216 << 215 << 216 dai-link-0 { << 217 sound-dai = <&frddr_a> << 218 }; << 219 << 220 dai-link-1 { << 221 sound-dai = <&frddr_b> << 222 }; << 223 << 224 dai-link-2 { << 225 sound-dai = <&frddr_c> << 226 }; << 227 << 228 dai-link-3 { << 229 sound-dai = <&toddr_a> << 230 }; << 231 << 232 dai-link-4 { << 233 sound-dai = <&toddr_b> << 234 }; << 235 << 236 dai-link-5 { << 237 sound-dai = <&toddr_c> << 238 }; << 239 << 240 /* internal speaker interface << 241 dai-link-6 { << 242 sound-dai = <&tdmif_a> << 243 dai-format = "i2s"; << 244 dai-tdm-slot-tx-mask-0 << 245 mclk-fs = <256>; << 246 << 247 codec-0 { << 248 sound-dai = <& << 249 }; << 250 << 251 codec-1 { << 252 sound-dai = <& << 253 }; << 254 }; << 255 << 256 /* 8ch hdmi interface */ << 257 dai-link-7 { << 258 sound-dai = <&tdmif_b> << 259 dai-format = "i2s"; << 260 dai-tdm-slot-tx-mask-0 << 261 dai-tdm-slot-tx-mask-1 << 262 dai-tdm-slot-tx-mask-2 << 263 dai-tdm-slot-tx-mask-3 << 264 mclk-fs = <256>; << 265 << 266 codec { << 267 sound-dai = <& << 268 }; << 269 }; << 270 << 271 /* internal digital mics */ << 272 dai-link-8 { << 273 sound-dai = <&pdm>; << 274 << 275 codec { << 276 sound-dai = <& << 277 }; << 278 }; << 279 << 280 /* hdmi glue */ << 281 dai-link-9 { << 282 sound-dai = <&tohdmitx << 283 << 284 codec { << 285 sound-dai = <& << 286 }; << 287 }; << 288 }; << 289 }; << 290 << 291 &arb { << 292 status = "okay"; << 293 }; 125 }; 294 126 295 &cec_AO { 127 &cec_AO { 296 pinctrl-0 = <&cec_ao_a_h_pins>; 128 pinctrl-0 = <&cec_ao_a_h_pins>; 297 pinctrl-names = "default"; 129 pinctrl-names = "default"; 298 status = "disabled"; 130 status = "disabled"; 299 hdmi-phandle = <&hdmi_tx>; 131 hdmi-phandle = <&hdmi_tx>; 300 }; 132 }; 301 133 302 &cecb_AO { 134 &cecb_AO { 303 pinctrl-0 = <&cec_ao_b_h_pins>; 135 pinctrl-0 = <&cec_ao_b_h_pins>; 304 pinctrl-names = "default"; 136 pinctrl-names = "default"; 305 status = "okay"; 137 status = "okay"; 306 hdmi-phandle = <&hdmi_tx>; 138 hdmi-phandle = <&hdmi_tx>; 307 }; 139 }; 308 140 309 &clkc_audio { << 310 status = "okay"; << 311 }; << 312 << 313 &cpu0 { << 314 cpu-supply = <&vddcpu>; << 315 operating-points-v2 = <&cpu_opp_table> << 316 clocks = <&clkc CLKID_CPU_CLK>; << 317 clock-latency = <50000>; << 318 }; << 319 << 320 &cpu1 { << 321 cpu-supply = <&vddcpu>; << 322 operating-points-v2 = <&cpu_opp_table> << 323 clocks = <&clkc CLKID_CPU_CLK>; << 324 clock-latency = <50000>; << 325 }; << 326 << 327 &cpu2 { << 328 cpu-supply = <&vddcpu>; << 329 operating-points-v2 = <&cpu_opp_table> << 330 clocks = <&clkc CLKID_CPU_CLK>; << 331 clock-latency = <50000>; << 332 }; << 333 << 334 &cpu3 { << 335 cpu-supply = <&vddcpu>; << 336 operating-points-v2 = <&cpu_opp_table> << 337 clocks = <&clkc CLKID_CPU_CLK>; << 338 clock-latency = <50000>; << 339 }; << 340 << 341 &cvbs_vdac_port { 141 &cvbs_vdac_port { 342 cvbs_vdac_out: endpoint { 142 cvbs_vdac_out: endpoint { 343 remote-endpoint = <&cvbs_conne 143 remote-endpoint = <&cvbs_connector_in>; 344 }; 144 }; 345 }; 145 }; 346 146 347 ðmac { !! 147 &saradc { 348 status = "okay"; << 349 phy-handle = <&internal_ephy>; << 350 phy-mode = "rmii"; << 351 }; << 352 << 353 &frddr_a { << 354 status = "okay"; 148 status = "okay"; >> 149 vref-supply = <&vddio_ao1v8>; 355 }; 150 }; 356 151 357 &frddr_b { !! 152 &uart_A { 358 status = "okay"; 153 status = "okay"; 359 }; !! 154 pinctrl-0 = <&uart_a_pins>, <&uart_a_cts_rts_pins>; >> 155 pinctrl-names = "default"; >> 156 uart-has-rtscts; 360 157 361 &frddr_c { !! 158 bluetooth { 362 status = "okay"; !! 159 compatible = "brcm,bcm43438-bt"; >> 160 shutdown-gpios = <&gpio GPIOX_17 GPIO_ACTIVE_HIGH>; >> 161 }; 363 }; 162 }; 364 163 365 &hdmi_tx { 164 &hdmi_tx { 366 status = "okay"; 165 status = "okay"; 367 pinctrl-0 = <&hdmitx_hpd_pins>, <&hdmi 166 pinctrl-0 = <&hdmitx_hpd_pins>, <&hdmitx_ddc_pins>; 368 pinctrl-names = "default"; 167 pinctrl-names = "default"; 369 }; 168 }; 370 169 371 &hdmi_tx_tmds_port { 170 &hdmi_tx_tmds_port { 372 hdmi_tx_tmds_out: endpoint { 171 hdmi_tx_tmds_out: endpoint { 373 remote-endpoint = <&hdmi_conne 172 remote-endpoint = <&hdmi_connector_in>; 374 }; << 375 }; << 376 << 377 &i2c3 { << 378 status = "okay"; << 379 pinctrl-0 = <&i2c3_sda_a_pins>, <&i2c3 << 380 pinctrl-names = "default"; << 381 }; << 382 << 383 &ir { << 384 status = "okay"; << 385 pinctrl-0 = <&remote_input_ao_pins>; << 386 pinctrl-names = "default"; << 387 }; << 388 << 389 &pwm_AO_cd { << 390 pinctrl-0 = <&pwm_ao_d_e_pins>; << 391 pinctrl-names = "default"; << 392 clocks = <&xtal>; << 393 clock-names = "clkin1"; << 394 status = "okay"; << 395 }; << 396 << 397 &pwm_ef { << 398 status = "okay"; << 399 pinctrl-0 = <&pwm_e_pins>; << 400 pinctrl-names = "default"; << 401 clocks = <&xtal>; << 402 clock-names = "clkin0"; << 403 }; << 404 << 405 &pdm { << 406 pinctrl-0 = <&pdm_din0_z_pins>, <&pdm_ << 407 <&pdm_din2_z_pins>, <&pdm_ << 408 <&pdm_dclk_z_pins>; << 409 pinctrl-names = "default"; << 410 status = "okay"; << 411 }; << 412 << 413 &saradc { << 414 status = "okay"; << 415 vref-supply = <&vddio_ao1v8>; << 416 }; << 417 << 418 /* SDIO */ << 419 &sd_emmc_a { << 420 status = "okay"; << 421 pinctrl-0 = <&sdio_pins>; << 422 pinctrl-1 = <&sdio_clk_gate_pins>; << 423 pinctrl-names = "default", "clk-gate"; << 424 #address-cells = <1>; << 425 #size-cells = <0>; << 426 << 427 bus-width = <4>; << 428 cap-sd-highspeed; << 429 sd-uhs-sdr50; << 430 max-frequency = <100000000>; << 431 << 432 non-removable; << 433 disable-wp; << 434 << 435 /* WiFi firmware requires power to be << 436 keep-power-in-suspend; << 437 << 438 mmc-pwrseq = <&sdio_pwrseq>; << 439 << 440 vmmc-supply = <&vddao_3v3>; << 441 vqmmc-supply = <&vddio_ao1v8>; << 442 << 443 brcmf: wifi@1 { << 444 reg = <1>; << 445 compatible = "brcm,bcm4329-fma << 446 }; << 447 }; << 448 << 449 /* SD card */ << 450 &sd_emmc_b { << 451 status = "okay"; << 452 pinctrl-0 = <&sdcard_c_pins>; << 453 pinctrl-1 = <&sdcard_clk_gate_c_pins>; << 454 pinctrl-names = "default", "clk-gate"; << 455 << 456 bus-width = <4>; << 457 cap-sd-highspeed; << 458 max-frequency = <50000000>; << 459 disable-wp; << 460 << 461 cd-gpios = <&gpio GPIOC_6 GPIO_ACTIVE_ << 462 vmmc-supply = <&vddao_3v3>; << 463 vqmmc-supply = <&vddao_3v3>; << 464 }; << 465 << 466 /* eMMC */ << 467 &sd_emmc_c { << 468 status = "okay"; << 469 pinctrl-0 = <&emmc_ctrl_pins>, <&emmc_ << 470 pinctrl-1 = <&emmc_clk_gate_pins>; << 471 pinctrl-names = "default", "clk-gate"; << 472 << 473 bus-width = <8>; << 474 cap-mmc-highspeed; << 475 mmc-ddr-1_8v; << 476 mmc-hs200-1_8v; << 477 max-frequency = <200000000>; << 478 non-removable; << 479 disable-wp; << 480 << 481 mmc-pwrseq = <&emmc_pwrseq>; << 482 vmmc-supply = <&vddao_3v3>; << 483 vqmmc-supply = <&emmc_1v8>; << 484 }; << 485 << 486 &tdmif_a { << 487 pinctrl-0 = <&tdm_a_dout0_pins>, <&tdm << 488 pinctrl-names = "default"; << 489 status = "okay"; << 490 << 491 assigned-clocks = <&clkc_audio AUD_CLK << 492 <&clkc_audio AUD_CLK << 493 assigned-clock-parents = <&clkc_audio << 494 <&clkc_audio << 495 assigned-clock-rates = <0>, <0>; << 496 }; << 497 << 498 &tdmif_b { << 499 status = "okay"; << 500 }; << 501 << 502 &tdmin_a { << 503 status = "okay"; << 504 }; << 505 << 506 &tdmin_b { << 507 status = "okay"; << 508 }; << 509 << 510 &tdmout_a { << 511 status = "okay"; << 512 }; << 513 << 514 &tdmout_b { << 515 status = "okay"; << 516 }; << 517 << 518 &toddr_a { << 519 status = "okay"; << 520 }; << 521 << 522 &toddr_b { << 523 status = "okay"; << 524 }; << 525 << 526 &toddr_c { << 527 status = "okay"; << 528 }; << 529 << 530 &tohdmitx { << 531 status = "okay"; << 532 }; << 533 << 534 &uart_A { << 535 status = "okay"; << 536 pinctrl-0 = <&uart_a_pins>, <&uart_a_c << 537 pinctrl-names = "default"; << 538 uart-has-rtscts; << 539 << 540 bluetooth { << 541 compatible = "brcm,bcm43438-bt << 542 shutdown-gpios = <&gpio GPIOX_ << 543 max-speed = <2000000>; << 544 clocks = <&wifi32k>; << 545 clock-names = "lpo"; << 546 vbat-supply = <&vddao_3v3>; << 547 vddio-supply = <&vddio_ao1v8>; << 548 }; 173 }; 549 }; 174 }; 550 175 551 &uart_AO { 176 &uart_AO { 552 status = "okay"; 177 status = "okay"; 553 pinctrl-0 = <&uart_ao_a_pins>; 178 pinctrl-0 = <&uart_ao_a_pins>; 554 pinctrl-names = "default"; 179 pinctrl-names = "default"; 555 }; 180 }; 556 181 557 &usb { 182 &usb { 558 status = "okay"; 183 status = "okay"; 559 dr_mode = "host"; 184 dr_mode = "host"; 560 }; 185 };
Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.