1 // SPDX-License-Identifier: (GPL-2.0+ OR MIT) 2 /* 3 * Copyright (c) 2019 BayLibre, SAS 4 * Author: Neil Armstrong <narmstrong@baylibre. 5 * Copyright (c) 2019 Christian Hewitt <christi 6 * Copyright (c) 2022 Radxa Limited 7 * Author: Yuntian Zhang <yt@radxa.com> 8 */ 9 10 /dts-v1/; 11 12 #include "meson-g12b-a311d.dtsi" 13 #include <dt-bindings/input/input.h> 14 #include <dt-bindings/leds/common.h> 15 #include <dt-bindings/gpio/meson-g12a-gpio.h> 16 #include <dt-bindings/sound/meson-g12a-tohdmit 17 18 / { 19 compatible = "radxa,zero2", "amlogic,a 20 model = "Radxa Zero2"; 21 22 aliases { 23 serial0 = &uart_AO; 24 serial2 = &uart_A; 25 }; 26 27 chosen { 28 stdout-path = "serial0:115200n 29 }; 30 31 memory@0 { 32 device_type = "memory"; 33 reg = <0x0 0x0 0x0 0x80000000> 34 }; 35 36 fan0: pwm-fan { 37 compatible = "pwm-fan"; 38 #cooling-cells = <2>; 39 cooling-levels = <0 64 128 192 40 pwms = <&pwm_AO_ab 0 40000 0>; 41 }; 42 43 gpio-keys-polled { 44 compatible = "gpio-keys-polled 45 poll-interval = <100>; 46 power-button { 47 label = "power"; 48 linux,code = <KEY_POWE 49 gpios = <&gpio_ao GPIO 50 }; 51 }; 52 53 leds { 54 compatible = "gpio-leds"; 55 56 led-green { 57 color = <LED_COLOR_ID_ 58 function = LED_FUNCTIO 59 gpios = <&gpio GPIOA_1 60 linux,default-trigger 61 }; 62 }; 63 64 hdmi-connector { 65 compatible = "hdmi-connector"; 66 type = "a"; 67 68 port { 69 hdmi_connector_in: end 70 remote-endpoin 71 }; 72 }; 73 }; 74 75 emmc_pwrseq: emmc-pwrseq { 76 compatible = "mmc-pwrseq-emmc" 77 reset-gpios = <&gpio BOOT_12 G 78 }; 79 80 sdio_pwrseq: sdio-pwrseq { 81 compatible = "mmc-pwrseq-simpl 82 reset-gpios = <&gpio GPIOX_6 G 83 clocks = <&wifi32k>; 84 clock-names = "ext_clock"; 85 }; 86 87 ao_5v: regulator-ao-5v { 88 compatible = "regulator-fixed" 89 regulator-name = "AO_5V"; 90 regulator-min-microvolt = <500 91 regulator-max-microvolt = <500 92 regulator-always-on; 93 }; 94 95 vcc_1v8: regulator-vcc-1v8 { 96 compatible = "regulator-fixed" 97 regulator-name = "VCC_1V8"; 98 regulator-min-microvolt = <180 99 regulator-max-microvolt = <180 100 vin-supply = <&vcc_3v3>; 101 regulator-always-on; 102 }; 103 104 vcc_3v3: regulator-vcc-3v3 { 105 compatible = "regulator-fixed" 106 regulator-name = "VCC_3V3"; 107 regulator-min-microvolt = <330 108 regulator-max-microvolt = <330 109 vin-supply = <&vddao_3v3>; 110 regulator-always-on; 111 /* FIXME: actually controlled 112 }; 113 114 vddao_1v8: regulator-vddao-1v8 { 115 compatible = "regulator-fixed" 116 regulator-name = "VDDIO_AO1V8" 117 regulator-min-microvolt = <180 118 regulator-max-microvolt = <180 119 vin-supply = <&vddao_3v3>; 120 regulator-always-on; 121 }; 122 123 vddao_3v3: regulator-vddao-3v3 { 124 compatible = "regulator-fixed" 125 regulator-name = "VDDAO_3V3"; 126 regulator-min-microvolt = <330 127 regulator-max-microvolt = <330 128 vin-supply = <&ao_5v>; 129 regulator-always-on; 130 }; 131 132 vddcpu_a: regulator-vddcpu-a { 133 /* 134 * MP8756GD Regulator. 135 */ 136 compatible = "pwm-regulator"; 137 138 regulator-name = "VDDCPU_A"; 139 regulator-min-microvolt = <730 140 regulator-max-microvolt = <102 141 142 pwm-supply = <&ao_5v>; 143 144 pwms = <&pwm_ab 0 1250 0>; 145 pwm-dutycycle-range = <100 0>; 146 147 regulator-boot-on; 148 regulator-always-on; 149 }; 150 151 vddcpu_b: regulator-vddcpu-b { 152 /* 153 * Silergy SY8120B1ABC Regulat 154 */ 155 compatible = "pwm-regulator"; 156 157 regulator-name = "VDDCPU_B"; 158 regulator-min-microvolt = <730 159 regulator-max-microvolt = <102 160 161 pwm-supply = <&ao_5v>; 162 163 pwms = <&pwm_AO_cd 1 1250 0>; 164 pwm-dutycycle-range = <100 0>; 165 166 regulator-boot-on; 167 regulator-always-on; 168 }; 169 170 sound { 171 compatible = "amlogic,axg-soun 172 model = "RADXA-ZERO2"; 173 audio-aux-devs = <&tdmout_b>; 174 audio-routing = "TDMOUT_B IN 0 175 "TDMOUT_B IN 1 176 "TDMOUT_B IN 2 177 "TDM_B Playbac 178 179 assigned-clocks = <&clkc CLKID 180 <&clkc CLKID 181 <&clkc CLKID 182 assigned-clock-parents = <0>, 183 assigned-clock-rates = <294912 184 <270950 185 <393216 186 187 dai-link-0 { 188 sound-dai = <&frddr_a> 189 }; 190 191 dai-link-1 { 192 sound-dai = <&frddr_b> 193 }; 194 195 dai-link-2 { 196 sound-dai = <&frddr_c> 197 }; 198 199 /* 8ch hdmi interface */ 200 dai-link-3 { 201 sound-dai = <&tdmif_b> 202 dai-format = "i2s"; 203 dai-tdm-slot-tx-mask-0 204 dai-tdm-slot-tx-mask-1 205 dai-tdm-slot-tx-mask-2 206 dai-tdm-slot-tx-mask-3 207 mclk-fs = <256>; 208 209 codec { 210 sound-dai = <& 211 }; 212 }; 213 214 /* hdmi glue */ 215 dai-link-4 { 216 sound-dai = <&tohdmitx 217 218 codec { 219 sound-dai = <& 220 }; 221 }; 222 }; 223 224 wifi32k: clock-0 { 225 compatible = "pwm-clock"; 226 #clock-cells = <0>; 227 clock-frequency = <32768>; 228 pwms = <&pwm_ef 0 30518 0>; /* 229 }; 230 }; 231 232 &arb { 233 status = "okay"; 234 }; 235 236 &cec_AO { 237 pinctrl-0 = <&cec_ao_a_h_pins>; 238 pinctrl-names = "default"; 239 status = "disabled"; 240 hdmi-phandle = <&hdmi_tx>; 241 }; 242 243 &cecb_AO { 244 pinctrl-0 = <&cec_ao_b_h_pins>; 245 pinctrl-names = "default"; 246 status = "okay"; 247 hdmi-phandle = <&hdmi_tx>; 248 }; 249 250 &clkc_audio { 251 status = "okay"; 252 }; 253 254 &cpu0 { 255 cpu-supply = <&vddcpu_b>; 256 operating-points-v2 = <&cpu_opp_table_ 257 clocks = <&clkc CLKID_CPU_CLK>; 258 clock-latency = <50000>; 259 }; 260 261 &cpu1 { 262 cpu-supply = <&vddcpu_b>; 263 operating-points-v2 = <&cpu_opp_table_ 264 clocks = <&clkc CLKID_CPU_CLK>; 265 clock-latency = <50000>; 266 }; 267 268 &cpu100 { 269 cpu-supply = <&vddcpu_a>; 270 operating-points-v2 = <&cpub_opp_table 271 clocks = <&clkc CLKID_CPUB_CLK>; 272 clock-latency = <50000>; 273 }; 274 275 &cpu101 { 276 cpu-supply = <&vddcpu_a>; 277 operating-points-v2 = <&cpub_opp_table 278 clocks = <&clkc CLKID_CPUB_CLK>; 279 clock-latency = <50000>; 280 }; 281 282 &cpu102 { 283 cpu-supply = <&vddcpu_a>; 284 operating-points-v2 = <&cpub_opp_table 285 clocks = <&clkc CLKID_CPUB_CLK>; 286 clock-latency = <50000>; 287 }; 288 289 &cpu103 { 290 cpu-supply = <&vddcpu_a>; 291 operating-points-v2 = <&cpub_opp_table 292 clocks = <&clkc CLKID_CPUB_CLK>; 293 clock-latency = <50000>; 294 }; 295 296 &cpu_thermal { 297 trips { 298 cpu_active: cpu-active { 299 temperature = <70000>; 300 hysteresis = <2000>; / 301 type = "active"; 302 }; 303 }; 304 305 cooling-maps { 306 map2 { 307 trip = <&cpu_active>; 308 cooling-device = <&fan 309 }; 310 }; 311 }; 312 313 &frddr_a { 314 status = "okay"; 315 }; 316 317 &frddr_b { 318 status = "okay"; 319 }; 320 321 &frddr_c { 322 status = "okay"; 323 }; 324 325 &gpio { 326 gpio-line-names = 327 /* GPIOZ */ 328 "PIN_27", "PIN_28", "PIN_7", " 329 "", "", "", "", "", "", "", "" 330 /* GPIOH */ 331 "", "", "", "", "PIN_19", "PIN 332 "", 333 /* BOOT */ 334 "", "", "", "", "", "", "", "" 335 "", "", "", "", "EMMC_PWRSEQ", 336 /* GPIOC */ 337 "", "", "", "", "", "", "SD_CD 338 /* GPIOA */ 339 "PIN_32", "PIN_12", "PIN_35", 340 "", "", "", "", "LED_GREEN", " 341 /* GPIOX */ 342 "", "", "", "", "", "", "SDIO_ 343 "", "", "", "", "", "", "", "" 344 "", "BT_SHUTDOWN", "", ""; 345 }; 346 347 &gpio_ao { 348 gpio-line-names = 349 /* GPIOAO */ 350 "PIN_8", "PIN_10", "", "BTN_PO 351 "PIN_33", "PIN_37", "FAN", "", 352 /* GPIOE */ 353 "", "", ""; 354 }; 355 356 &hdmi_tx { 357 status = "okay"; 358 pinctrl-0 = <&hdmitx_hpd_pins>, <&hdmi 359 pinctrl-names = "default"; 360 hdmi-supply = <&ao_5v>; 361 }; 362 363 &hdmi_tx_tmds_port { 364 hdmi_tx_tmds_out: endpoint { 365 remote-endpoint = <&hdmi_conne 366 }; 367 }; 368 369 &ir { 370 status = "disabled"; 371 pinctrl-0 = <&remote_input_ao_pins>; 372 pinctrl-names = "default"; 373 }; 374 375 &pwm_ab { 376 pinctrl-0 = <&pwm_a_e_pins>; 377 pinctrl-names = "default"; 378 clocks = <&xtal>; 379 clock-names = "clkin0"; 380 status = "okay"; 381 }; 382 383 &pwm_ef { 384 pinctrl-0 = <&pwm_e_pins>; 385 pinctrl-names = "default"; 386 clocks = <&xtal>; 387 clock-names = "clkin0"; 388 status = "okay"; 389 }; 390 391 &pwm_AO_ab { 392 pinctrl-0 = <&pwm_ao_a_pins>; 393 pinctrl-names = "default"; 394 clocks = <&xtal>; 395 clock-names = "clkin0"; 396 status = "okay"; 397 }; 398 399 &pwm_AO_cd { 400 pinctrl-0 = <&pwm_ao_d_e_pins>; 401 pinctrl-names = "default"; 402 clocks = <&xtal>; 403 clock-names = "clkin1"; 404 status = "okay"; 405 }; 406 407 &saradc { 408 status = "okay"; 409 vref-supply = <&vddao_1v8>; 410 }; 411 412 /* SDIO */ 413 &sd_emmc_a { 414 status = "okay"; 415 pinctrl-0 = <&sdio_pins>; 416 pinctrl-1 = <&sdio_clk_gate_pins>; 417 pinctrl-names = "default", "clk-gate"; 418 #address-cells = <1>; 419 #size-cells = <0>; 420 421 bus-width = <4>; 422 cap-sd-highspeed; 423 max-frequency = <100000000>; 424 425 non-removable; 426 disable-wp; 427 428 /* WiFi firmware requires power to be 429 keep-power-in-suspend; 430 431 mmc-pwrseq = <&sdio_pwrseq>; 432 433 vmmc-supply = <&vddao_3v3>; 434 vqmmc-supply = <&vddao_1v8>; 435 436 brcmf: wifi@1 { 437 reg = <1>; 438 compatible = "brcm,bcm4329-fma 439 }; 440 }; 441 442 /* SD card */ 443 &sd_emmc_b { 444 status = "okay"; 445 pinctrl-0 = <&sdcard_c_pins>; 446 pinctrl-1 = <&sdcard_clk_gate_c_pins>; 447 pinctrl-names = "default", "clk-gate"; 448 449 bus-width = <4>; 450 cap-sd-highspeed; 451 max-frequency = <50000000>; 452 disable-wp; 453 454 cd-gpios = <&gpio GPIOC_6 GPIO_ACTIVE_ 455 vmmc-supply = <&vddao_3v3>; 456 vqmmc-supply = <&vddao_3v3>; 457 }; 458 459 /* eMMC */ 460 &sd_emmc_c { 461 status = "okay"; 462 pinctrl-0 = <&emmc_ctrl_pins>, <&emmc_ 463 pinctrl-1 = <&emmc_clk_gate_pins>; 464 pinctrl-names = "default", "clk-gate"; 465 466 bus-width = <8>; 467 cap-mmc-highspeed; 468 mmc-ddr-1_8v; 469 mmc-hs200-1_8v; 470 max-frequency = <200000000>; 471 disable-wp; 472 473 mmc-pwrseq = <&emmc_pwrseq>; 474 vmmc-supply = <&vcc_3v3>; 475 vqmmc-supply = <&vcc_1v8>; 476 }; 477 478 &tdmif_b { 479 status = "okay"; 480 }; 481 482 &tdmout_b { 483 status = "okay"; 484 }; 485 486 &tohdmitx { 487 status = "okay"; 488 }; 489 490 &uart_A { 491 status = "okay"; 492 pinctrl-0 = <&uart_a_pins>, <&uart_a_c 493 pinctrl-names = "default"; 494 uart-has-rtscts; 495 496 bluetooth { 497 compatible = "brcm,bcm43438-bt 498 shutdown-gpios = <&gpio GPIOX_ 499 max-speed = <2000000>; 500 clocks = <&wifi32k>; 501 clock-names = "lpo"; 502 }; 503 }; 504 505 &uart_AO { 506 status = "okay"; 507 pinctrl-0 = <&uart_ao_a_pins>; 508 pinctrl-names = "default"; 509 }; 510 511 &usb { 512 status = "okay"; 513 };
Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.