Home | History | Annotate | Line # | Download | only in amlogic
      1 // SPDX-License-Identifier: (GPL-2.0+ OR MIT)
      2 /*
      3  * Copyright (c) 2018 Amlogic, Inc. All rights reserved.
      4  */
      5 
      6 #include <dt-bindings/phy/phy.h>
      7 #include <dt-bindings/gpio/gpio.h>
      8 #include <dt-bindings/clock/g12a-clkc.h>
      9 #include <dt-bindings/clock/g12a-aoclkc.h>
     10 #include <dt-bindings/interrupt-controller/irq.h>
     11 #include <dt-bindings/interrupt-controller/arm-gic.h>
     12 #include <dt-bindings/reset/amlogic,meson-g12a-reset.h>
     13 #include <dt-bindings/thermal/thermal.h>
     14 
     15 / {
     16 	interrupt-parent = <&gic>;
     17 	#address-cells = <2>;
     18 	#size-cells = <2>;
     19 
     20 	aliases {
     21 		mmc0 = &sd_emmc_b; /* SD card */
     22 		mmc1 = &sd_emmc_c; /* eMMC */
     23 		mmc2 = &sd_emmc_a; /* SDIO */
     24 	};
     25 
     26 	chosen {
     27 		#address-cells = <2>;
     28 		#size-cells = <2>;
     29 		ranges;
     30 
     31 		simplefb_cvbs: framebuffer-cvbs {
     32 			compatible = "amlogic,simple-framebuffer",
     33 				     "simple-framebuffer";
     34 			amlogic,pipeline = "vpu-cvbs";
     35 			clocks = <&clkc CLKID_HDMI>,
     36 				 <&clkc CLKID_HTX_PCLK>,
     37 				 <&clkc CLKID_VPU_INTR>;
     38 			status = "disabled";
     39 		};
     40 
     41 		simplefb_hdmi: framebuffer-hdmi {
     42 			compatible = "amlogic,simple-framebuffer",
     43 				    "simple-framebuffer";
     44 			amlogic,pipeline = "vpu-hdmi";
     45 			clocks = <&clkc CLKID_HDMI>,
     46 				 <&clkc CLKID_HTX_PCLK>,
     47 				 <&clkc CLKID_VPU_INTR>;
     48 			status = "disabled";
     49 		};
     50 	};
     51 
     52 	efuse: efuse {
     53 		compatible = "amlogic,meson-gxbb-efuse";
     54 		clocks = <&clkc CLKID_EFUSE>;
     55 		#address-cells = <1>;
     56 		#size-cells = <1>;
     57 		read-only;
     58 		secure-monitor = <&sm>;
     59 	};
     60 
     61 	gpu_opp_table: gpu-opp-table {
     62 		compatible = "operating-points-v2";
     63 
     64 		opp-124999998 {
     65 			opp-hz = /bits/ 64 <124999998>;
     66 			opp-microvolt = <800000>;
     67 		};
     68 		opp-249999996 {
     69 			opp-hz = /bits/ 64 <249999996>;
     70 			opp-microvolt = <800000>;
     71 		};
     72 		opp-285714281 {
     73 			opp-hz = /bits/ 64 <285714281>;
     74 			opp-microvolt = <800000>;
     75 		};
     76 		opp-399999994 {
     77 			opp-hz = /bits/ 64 <399999994>;
     78 			opp-microvolt = <800000>;
     79 		};
     80 		opp-499999992 {
     81 			opp-hz = /bits/ 64 <499999992>;
     82 			opp-microvolt = <800000>;
     83 		};
     84 		opp-666666656 {
     85 			opp-hz = /bits/ 64 <666666656>;
     86 			opp-microvolt = <800000>;
     87 		};
     88 		opp-799999987 {
     89 			opp-hz = /bits/ 64 <799999987>;
     90 			opp-microvolt = <800000>;
     91 		};
     92 	};
     93 
     94 	psci {
     95 		compatible = "arm,psci-1.0";
     96 		method = "smc";
     97 	};
     98 
     99 	reserved-memory {
    100 		#address-cells = <2>;
    101 		#size-cells = <2>;
    102 		ranges;
    103 
    104 		/* 3 MiB reserved for ARM Trusted Firmware (BL31) */
    105 		secmon_reserved: secmon@5000000 {
    106 			reg = <0x0 0x05000000 0x0 0x300000>;
    107 			no-map;
    108 		};
    109 
    110 		linux,cma {
    111 			compatible = "shared-dma-pool";
    112 			reusable;
    113 			size = <0x0 0x10000000>;
    114 			alignment = <0x0 0x400000>;
    115 			linux,cma-default;
    116 		};
    117 	};
    118 
    119 	sm: secure-monitor {
    120 		compatible = "amlogic,meson-gxbb-sm";
    121 	};
    122 
    123 	soc {
    124 		compatible = "simple-bus";
    125 		#address-cells = <2>;
    126 		#size-cells = <2>;
    127 		ranges;
    128 
    129 		pcie: pcie@fc000000 {
    130 			compatible = "amlogic,g12a-pcie", "snps,dw-pcie";
    131 			reg = <0x0 0xfc000000 0x0 0x400000>,
    132 			      <0x0 0xff648000 0x0 0x2000>,
    133 			      <0x0 0xfc400000 0x0 0x200000>;
    134 			reg-names = "elbi", "cfg", "config";
    135 			interrupts = <GIC_SPI 221 IRQ_TYPE_LEVEL_HIGH>;
    136 			#interrupt-cells = <1>;
    137 			interrupt-map-mask = <0 0 0 0>;
    138 			interrupt-map = <0 0 0 0 &gic GIC_SPI 223 IRQ_TYPE_LEVEL_HIGH>;
    139 			bus-range = <0x0 0xff>;
    140 			#address-cells = <3>;
    141 			#size-cells = <2>;
    142 			device_type = "pci";
    143 			ranges = <0x81000000 0 0 0x0 0xfc600000 0 0x00100000>,
    144 				 <0x82000000 0 0xfc700000 0x0 0xfc700000 0 0x1900000>;
    145 
    146 			clocks = <&clkc CLKID_PCIE_PHY
    147 				  &clkc CLKID_PCIE_COMB
    148 				  &clkc CLKID_PCIE_PLL>;
    149 			clock-names = "general",
    150 				      "pclk",
    151 				      "port";
    152 			resets = <&reset RESET_PCIE_CTRL_A>,
    153 				 <&reset RESET_PCIE_APB>;
    154 			reset-names = "port",
    155 				      "apb";
    156 			num-lanes = <1>;
    157 			phys = <&usb3_pcie_phy PHY_TYPE_PCIE>;
    158 			phy-names = "pcie";
    159 			status = "disabled";
    160 		};
    161 
    162 		thermal-zones {
    163 			cpu_thermal: cpu-thermal {
    164 				polling-delay = <1000>;
    165 				polling-delay-passive = <100>;
    166 				thermal-sensors = <&cpu_temp>;
    167 
    168 				trips {
    169 					cpu_passive: cpu-passive {
    170 						temperature = <85000>; /* millicelsius */
    171 						hysteresis = <2000>; /* millicelsius */
    172 						type = "passive";
    173 					};
    174 
    175 					cpu_hot: cpu-hot {
    176 						temperature = <95000>; /* millicelsius */
    177 						hysteresis = <2000>; /* millicelsius */
    178 						type = "hot";
    179 					};
    180 
    181 					cpu_critical: cpu-critical {
    182 						temperature = <110000>; /* millicelsius */
    183 						hysteresis = <2000>; /* millicelsius */
    184 						type = "critical";
    185 					};
    186 				};
    187 			};
    188 
    189 			ddr_thermal: ddr-thermal {
    190 				polling-delay = <1000>;
    191 				polling-delay-passive = <100>;
    192 				thermal-sensors = <&ddr_temp>;
    193 
    194 				trips {
    195 					ddr_passive: ddr-passive {
    196 						temperature = <85000>; /* millicelsius */
    197 						hysteresis = <2000>; /* millicelsius */
    198 						type = "passive";
    199 					};
    200 
    201 					ddr_critical: ddr-critical {
    202 						temperature = <110000>; /* millicelsius */
    203 						hysteresis = <2000>; /* millicelsius */
    204 						type = "critical";
    205 					};
    206 				};
    207 
    208 				cooling-maps {
    209 					map {
    210 						trip = <&ddr_passive>;
    211 						cooling-device = <&mali THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
    212 					};
    213 				};
    214 			};
    215 		};
    216 
    217 		ethmac: ethernet@ff3f0000 {
    218 			compatible = "amlogic,meson-g12a-dwmac",
    219 				     "snps,dwmac-3.70a",
    220 				     "snps,dwmac";
    221 			reg = <0x0 0xff3f0000 0x0 0x10000>,
    222 			      <0x0 0xff634540 0x0 0x8>;
    223 			interrupts = <GIC_SPI 8 IRQ_TYPE_LEVEL_HIGH>;
    224 			interrupt-names = "macirq";
    225 			clocks = <&clkc CLKID_ETH>,
    226 				 <&clkc CLKID_FCLK_DIV2>,
    227 				 <&clkc CLKID_MPLL2>,
    228 				 <&clkc CLKID_FCLK_DIV2>;
    229 			clock-names = "stmmaceth", "clkin0", "clkin1",
    230 				      "timing-adjustment";
    231 			rx-fifo-depth = <4096>;
    232 			tx-fifo-depth = <2048>;
    233 			status = "disabled";
    234 
    235 			mdio0: mdio {
    236 				#address-cells = <1>;
    237 				#size-cells = <0>;
    238 				compatible = "snps,dwmac-mdio";
    239 			};
    240 		};
    241 
    242 		apb: bus@ff600000 {
    243 			compatible = "simple-bus";
    244 			reg = <0x0 0xff600000 0x0 0x200000>;
    245 			#address-cells = <2>;
    246 			#size-cells = <2>;
    247 			ranges = <0x0 0x0 0x0 0xff600000 0x0 0x200000>;
    248 
    249 			hdmi_tx: hdmi-tx@0 {
    250 				compatible = "amlogic,meson-g12a-dw-hdmi";
    251 				reg = <0x0 0x0 0x0 0x10000>;
    252 				interrupts = <GIC_SPI 57 IRQ_TYPE_EDGE_RISING>;
    253 				resets = <&reset RESET_HDMITX_CAPB3>,
    254 					 <&reset RESET_HDMITX_PHY>,
    255 					 <&reset RESET_HDMITX>;
    256 				reset-names = "hdmitx_apb", "hdmitx", "hdmitx_phy";
    257 				clocks = <&clkc CLKID_HDMI>,
    258 					 <&clkc CLKID_HTX_PCLK>,
    259 					 <&clkc CLKID_VPU_INTR>;
    260 				clock-names = "isfr", "iahb", "venci";
    261 				#address-cells = <1>;
    262 				#size-cells = <0>;
    263 				#sound-dai-cells = <0>;
    264 				status = "disabled";
    265 
    266 				/* VPU VENC Input */
    267 				hdmi_tx_venc_port: port@0 {
    268 					reg = <0>;
    269 
    270 					hdmi_tx_in: endpoint {
    271 						remote-endpoint = <&hdmi_tx_out>;
    272 					};
    273 				};
    274 
    275 				/* TMDS Output */
    276 				hdmi_tx_tmds_port: port@1 {
    277 					reg = <1>;
    278 				};
    279 			};
    280 
    281 			apb_efuse: bus@30000 {
    282 				compatible = "simple-bus";
    283 				reg = <0x0 0x30000 0x0 0x2000>;
    284 				#address-cells = <2>;
    285 				#size-cells = <2>;
    286 				ranges = <0x0 0x0 0x0 0x30000 0x0 0x2000>;
    287 
    288 				hwrng: rng@218 {
    289 					compatible = "amlogic,meson-rng";
    290 					reg = <0x0 0x218 0x0 0x4>;
    291 					clocks = <&clkc CLKID_RNG0>;
    292 					clock-names = "core";
    293 				};
    294 			};
    295 
    296 			acodec: audio-controller@32000 {
    297 				compatible = "amlogic,t9015";
    298 				reg = <0x0 0x32000 0x0 0x14>;
    299 				#sound-dai-cells = <0>;
    300 				sound-name-prefix = "ACODEC";
    301 				clocks = <&clkc CLKID_AUDIO_CODEC>;
    302 				clock-names = "pclk";
    303 				resets = <&reset RESET_AUDIO_CODEC>;
    304 				status = "disabled";
    305 			};
    306 
    307 			periphs: bus@34400 {
    308 				compatible = "simple-bus";
    309 				reg = <0x0 0x34400 0x0 0x400>;
    310 				#address-cells = <2>;
    311 				#size-cells = <2>;
    312 				ranges = <0x0 0x0 0x0 0x34400 0x0 0x400>;
    313 
    314 				periphs_pinctrl: pinctrl@40 {
    315 					compatible = "amlogic,meson-g12a-periphs-pinctrl";
    316 					#address-cells = <2>;
    317 					#size-cells = <2>;
    318 					ranges;
    319 
    320 					gpio: bank@40 {
    321 						reg = <0x0 0x40  0x0 0x4c>,
    322 						      <0x0 0xe8  0x0 0x18>,
    323 						      <0x0 0x120 0x0 0x18>,
    324 						      <0x0 0x2c0 0x0 0x40>,
    325 						      <0x0 0x340 0x0 0x1c>;
    326 						reg-names = "gpio",
    327 							    "pull",
    328 							    "pull-enable",
    329 							    "mux",
    330 							    "ds";
    331 						gpio-controller;
    332 						#gpio-cells = <2>;
    333 						gpio-ranges = <&periphs_pinctrl 0 0 86>;
    334 					};
    335 
    336 					cec_ao_a_h_pins: cec_ao_a_h {
    337 						mux {
    338 							groups = "cec_ao_a_h";
    339 							function = "cec_ao_a_h";
    340 							bias-disable;
    341 						};
    342 					};
    343 
    344 					cec_ao_b_h_pins: cec_ao_b_h {
    345 						mux {
    346 							groups = "cec_ao_b_h";
    347 							function = "cec_ao_b_h";
    348 							bias-disable;
    349 						};
    350 					};
    351 
    352 					emmc_ctrl_pins: emmc-ctrl {
    353 						mux-0 {
    354 							groups = "emmc_cmd";
    355 							function = "emmc";
    356 							bias-pull-up;
    357 							drive-strength-microamp = <4000>;
    358 						};
    359 
    360 						mux-1 {
    361 							groups = "emmc_clk";
    362 							function = "emmc";
    363 							bias-disable;
    364 							drive-strength-microamp = <4000>;
    365 						};
    366 					};
    367 
    368 					emmc_data_4b_pins: emmc-data-4b {
    369 						mux-0 {
    370 							groups = "emmc_nand_d0",
    371 								 "emmc_nand_d1",
    372 								 "emmc_nand_d2",
    373 								 "emmc_nand_d3";
    374 							function = "emmc";
    375 							bias-pull-up;
    376 							drive-strength-microamp = <4000>;
    377 						};
    378 					};
    379 
    380 					emmc_data_8b_pins: emmc-data-8b {
    381 						mux-0 {
    382 							groups = "emmc_nand_d0",
    383 								 "emmc_nand_d1",
    384 								 "emmc_nand_d2",
    385 								 "emmc_nand_d3",
    386 								 "emmc_nand_d4",
    387 								 "emmc_nand_d5",
    388 								 "emmc_nand_d6",
    389 								 "emmc_nand_d7";
    390 							function = "emmc";
    391 							bias-pull-up;
    392 							drive-strength-microamp = <4000>;
    393 						};
    394 					};
    395 
    396 					emmc_ds_pins: emmc-ds {
    397 						mux {
    398 							groups = "emmc_nand_ds";
    399 							function = "emmc";
    400 							bias-pull-down;
    401 							drive-strength-microamp = <4000>;
    402 						};
    403 					};
    404 
    405 					emmc_clk_gate_pins: emmc_clk_gate {
    406 						mux {
    407 							groups = "BOOT_8";
    408 							function = "gpio_periphs";
    409 							bias-pull-down;
    410 							drive-strength-microamp = <4000>;
    411 						};
    412 					};
    413 
    414 					hdmitx_ddc_pins: hdmitx_ddc {
    415 						mux {
    416 							groups = "hdmitx_sda",
    417 								 "hdmitx_sck";
    418 							function = "hdmitx";
    419 							bias-disable;
    420 							drive-strength-microamp = <4000>;
    421 						};
    422 					};
    423 
    424 					hdmitx_hpd_pins: hdmitx_hpd {
    425 						mux {
    426 							groups = "hdmitx_hpd_in";
    427 							function = "hdmitx";
    428 							bias-disable;
    429 						};
    430 					};
    431 
    432 
    433 					i2c0_sda_c_pins: i2c0-sda-c {
    434 						mux {
    435 							groups = "i2c0_sda_c";
    436 							function = "i2c0";
    437 							bias-disable;
    438 							drive-strength-microamp = <3000>;
    439 
    440 						};
    441 					};
    442 
    443 					i2c0_sck_c_pins: i2c0-sck-c {
    444 						mux {
    445 							groups = "i2c0_sck_c";
    446 							function = "i2c0";
    447 							bias-disable;
    448 							drive-strength-microamp = <3000>;
    449 						};
    450 					};
    451 
    452 					i2c0_sda_z0_pins: i2c0-sda-z0 {
    453 						mux {
    454 							groups = "i2c0_sda_z0";
    455 							function = "i2c0";
    456 							bias-disable;
    457 							drive-strength-microamp = <3000>;
    458 						};
    459 					};
    460 
    461 					i2c0_sck_z1_pins: i2c0-sck-z1 {
    462 						mux {
    463 							groups = "i2c0_sck_z1";
    464 							function = "i2c0";
    465 							bias-disable;
    466 							drive-strength-microamp = <3000>;
    467 						};
    468 					};
    469 
    470 					i2c0_sda_z7_pins: i2c0-sda-z7 {
    471 						mux {
    472 							groups = "i2c0_sda_z7";
    473 							function = "i2c0";
    474 							bias-disable;
    475 							drive-strength-microamp = <3000>;
    476 						};
    477 					};
    478 
    479 					i2c0_sda_z8_pins: i2c0-sda-z8 {
    480 						mux {
    481 							groups = "i2c0_sda_z8";
    482 							function = "i2c0";
    483 							bias-disable;
    484 							drive-strength-microamp = <3000>;
    485 						};
    486 					};
    487 
    488 					i2c1_sda_x_pins: i2c1-sda-x {
    489 						mux {
    490 							groups = "i2c1_sda_x";
    491 							function = "i2c1";
    492 							bias-disable;
    493 							drive-strength-microamp = <3000>;
    494 						};
    495 					};
    496 
    497 					i2c1_sck_x_pins: i2c1-sck-x {
    498 						mux {
    499 							groups = "i2c1_sck_x";
    500 							function = "i2c1";
    501 							bias-disable;
    502 							drive-strength-microamp = <3000>;
    503 						};
    504 					};
    505 
    506 					i2c1_sda_h2_pins: i2c1-sda-h2 {
    507 						mux {
    508 							groups = "i2c1_sda_h2";
    509 							function = "i2c1";
    510 							bias-disable;
    511 							drive-strength-microamp = <3000>;
    512 						};
    513 					};
    514 
    515 					i2c1_sck_h3_pins: i2c1-sck-h3 {
    516 						mux {
    517 							groups = "i2c1_sck_h3";
    518 							function = "i2c1";
    519 							bias-disable;
    520 							drive-strength-microamp = <3000>;
    521 						};
    522 					};
    523 
    524 					i2c1_sda_h6_pins: i2c1-sda-h6 {
    525 						mux {
    526 							groups = "i2c1_sda_h6";
    527 							function = "i2c1";
    528 							bias-disable;
    529 							drive-strength-microamp = <3000>;
    530 						};
    531 					};
    532 
    533 					i2c1_sck_h7_pins: i2c1-sck-h7 {
    534 						mux {
    535 							groups = "i2c1_sck_h7";
    536 							function = "i2c1";
    537 							bias-disable;
    538 							drive-strength-microamp = <3000>;
    539 						};
    540 					};
    541 
    542 					i2c2_sda_x_pins: i2c2-sda-x {
    543 						mux {
    544 							groups = "i2c2_sda_x";
    545 							function = "i2c2";
    546 							bias-disable;
    547 							drive-strength-microamp = <3000>;
    548 						};
    549 					};
    550 
    551 					i2c2_sck_x_pins: i2c2-sck-x {
    552 						mux {
    553 							groups = "i2c2_sck_x";
    554 							function = "i2c2";
    555 							bias-disable;
    556 							drive-strength-microamp = <3000>;
    557 						};
    558 					};
    559 
    560 					i2c2_sda_z_pins: i2c2-sda-z {
    561 						mux {
    562 							groups = "i2c2_sda_z";
    563 							function = "i2c2";
    564 							bias-disable;
    565 							drive-strength-microamp = <3000>;
    566 						};
    567 					};
    568 
    569 					i2c2_sck_z_pins: i2c2-sck-z {
    570 						mux {
    571 							groups = "i2c2_sck_z";
    572 							function = "i2c2";
    573 							bias-disable;
    574 							drive-strength-microamp = <3000>;
    575 						};
    576 					};
    577 
    578 					i2c3_sda_h_pins: i2c3-sda-h {
    579 						mux {
    580 							groups = "i2c3_sda_h";
    581 							function = "i2c3";
    582 							bias-disable;
    583 							drive-strength-microamp = <3000>;
    584 						};
    585 					};
    586 
    587 					i2c3_sck_h_pins: i2c3-sck-h {
    588 						mux {
    589 							groups = "i2c3_sck_h";
    590 							function = "i2c3";
    591 							bias-disable;
    592 							drive-strength-microamp = <3000>;
    593 						};
    594 					};
    595 
    596 					i2c3_sda_a_pins: i2c3-sda-a {
    597 						mux {
    598 							groups = "i2c3_sda_a";
    599 							function = "i2c3";
    600 							bias-disable;
    601 							drive-strength-microamp = <3000>;
    602 						};
    603 					};
    604 
    605 					i2c3_sck_a_pins: i2c3-sck-a {
    606 						mux {
    607 							groups = "i2c3_sck_a";
    608 							function = "i2c3";
    609 							bias-disable;
    610 							drive-strength-microamp = <3000>;
    611 						};
    612 					};
    613 
    614 					mclk0_a_pins: mclk0-a {
    615 						mux {
    616 							groups = "mclk0_a";
    617 							function = "mclk0";
    618 							bias-disable;
    619 							drive-strength-microamp = <3000>;
    620 						};
    621 					};
    622 
    623 					mclk1_a_pins: mclk1-a {
    624 						mux {
    625 							groups = "mclk1_a";
    626 							function = "mclk1";
    627 							bias-disable;
    628 							drive-strength-microamp = <3000>;
    629 						};
    630 					};
    631 
    632 					mclk1_x_pins: mclk1-x {
    633 						mux {
    634 							groups = "mclk1_x";
    635 							function = "mclk1";
    636 							bias-disable;
    637 							drive-strength-microamp = <3000>;
    638 						};
    639 					};
    640 
    641 					mclk1_z_pins: mclk1-z {
    642 						mux {
    643 							groups = "mclk1_z";
    644 							function = "mclk1";
    645 							bias-disable;
    646 							drive-strength-microamp = <3000>;
    647 						};
    648 					};
    649 
    650 					nor_pins: nor {
    651 						mux {
    652 							groups = "nor_d",
    653 							       "nor_q",
    654 							       "nor_c",
    655 							       "nor_cs";
    656 							function = "nor";
    657 							bias-disable;
    658 						};
    659 					};
    660 
    661 					pdm_din0_a_pins: pdm-din0-a {
    662 						mux {
    663 							groups = "pdm_din0_a";
    664 							function = "pdm";
    665 							bias-disable;
    666 						};
    667 					};
    668 
    669 					pdm_din0_c_pins: pdm-din0-c {
    670 						mux {
    671 							groups = "pdm_din0_c";
    672 							function = "pdm";
    673 							bias-disable;
    674 						};
    675 					};
    676 
    677 					pdm_din0_x_pins: pdm-din0-x {
    678 						mux {
    679 							groups = "pdm_din0_x";
    680 							function = "pdm";
    681 							bias-disable;
    682 						};
    683 					};
    684 
    685 					pdm_din0_z_pins: pdm-din0-z {
    686 						mux {
    687 							groups = "pdm_din0_z";
    688 							function = "pdm";
    689 							bias-disable;
    690 						};
    691 					};
    692 
    693 					pdm_din1_a_pins: pdm-din1-a {
    694 						mux {
    695 							groups = "pdm_din1_a";
    696 							function = "pdm";
    697 							bias-disable;
    698 						};
    699 					};
    700 
    701 					pdm_din1_c_pins: pdm-din1-c {
    702 						mux {
    703 							groups = "pdm_din1_c";
    704 							function = "pdm";
    705 							bias-disable;
    706 						};
    707 					};
    708 
    709 					pdm_din1_x_pins: pdm-din1-x {
    710 						mux {
    711 							groups = "pdm_din1_x";
    712 							function = "pdm";
    713 							bias-disable;
    714 						};
    715 					};
    716 
    717 					pdm_din1_z_pins: pdm-din1-z {
    718 						mux {
    719 							groups = "pdm_din1_z";
    720 							function = "pdm";
    721 							bias-disable;
    722 						};
    723 					};
    724 
    725 					pdm_din2_a_pins: pdm-din2-a {
    726 						mux {
    727 							groups = "pdm_din2_a";
    728 							function = "pdm";
    729 							bias-disable;
    730 						};
    731 					};
    732 
    733 					pdm_din2_c_pins: pdm-din2-c {
    734 						mux {
    735 							groups = "pdm_din2_c";
    736 							function = "pdm";
    737 							bias-disable;
    738 						};
    739 					};
    740 
    741 					pdm_din2_x_pins: pdm-din2-x {
    742 						mux {
    743 							groups = "pdm_din2_x";
    744 							function = "pdm";
    745 							bias-disable;
    746 						};
    747 					};
    748 
    749 					pdm_din2_z_pins: pdm-din2-z {
    750 						mux {
    751 							groups = "pdm_din2_z";
    752 							function = "pdm";
    753 							bias-disable;
    754 						};
    755 					};
    756 
    757 					pdm_din3_a_pins: pdm-din3-a {
    758 						mux {
    759 							groups = "pdm_din3_a";
    760 							function = "pdm";
    761 							bias-disable;
    762 						};
    763 					};
    764 
    765 					pdm_din3_c_pins: pdm-din3-c {
    766 						mux {
    767 							groups = "pdm_din3_c";
    768 							function = "pdm";
    769 							bias-disable;
    770 						};
    771 					};
    772 
    773 					pdm_din3_x_pins: pdm-din3-x {
    774 						mux {
    775 							groups = "pdm_din3_x";
    776 							function = "pdm";
    777 							bias-disable;
    778 						};
    779 					};
    780 
    781 					pdm_din3_z_pins: pdm-din3-z {
    782 						mux {
    783 							groups = "pdm_din3_z";
    784 							function = "pdm";
    785 							bias-disable;
    786 						};
    787 					};
    788 
    789 					pdm_dclk_a_pins: pdm-dclk-a {
    790 						mux {
    791 							groups = "pdm_dclk_a";
    792 							function = "pdm";
    793 							bias-disable;
    794 							drive-strength-microamp = <500>;
    795 						};
    796 					};
    797 
    798 					pdm_dclk_c_pins: pdm-dclk-c {
    799 						mux {
    800 							groups = "pdm_dclk_c";
    801 							function = "pdm";
    802 							bias-disable;
    803 							drive-strength-microamp = <500>;
    804 						};
    805 					};
    806 
    807 					pdm_dclk_x_pins: pdm-dclk-x {
    808 						mux {
    809 							groups = "pdm_dclk_x";
    810 							function = "pdm";
    811 							bias-disable;
    812 							drive-strength-microamp = <500>;
    813 						};
    814 					};
    815 
    816 					pdm_dclk_z_pins: pdm-dclk-z {
    817 						mux {
    818 							groups = "pdm_dclk_z";
    819 							function = "pdm";
    820 							bias-disable;
    821 							drive-strength-microamp = <500>;
    822 						};
    823 					};
    824 
    825 					pwm_a_pins: pwm-a {
    826 						mux {
    827 							groups = "pwm_a";
    828 							function = "pwm_a";
    829 							bias-disable;
    830 						};
    831 					};
    832 
    833 					pwm_b_x7_pins: pwm-b-x7 {
    834 						mux {
    835 							groups = "pwm_b_x7";
    836 							function = "pwm_b";
    837 							bias-disable;
    838 						};
    839 					};
    840 
    841 					pwm_b_x19_pins: pwm-b-x19 {
    842 						mux {
    843 							groups = "pwm_b_x19";
    844 							function = "pwm_b";
    845 							bias-disable;
    846 						};
    847 					};
    848 
    849 					pwm_c_c_pins: pwm-c-c {
    850 						mux {
    851 							groups = "pwm_c_c";
    852 							function = "pwm_c";
    853 							bias-disable;
    854 						};
    855 					};
    856 
    857 					pwm_c_x5_pins: pwm-c-x5 {
    858 						mux {
    859 							groups = "pwm_c_x5";
    860 							function = "pwm_c";
    861 							bias-disable;
    862 						};
    863 					};
    864 
    865 					pwm_c_x8_pins: pwm-c-x8 {
    866 						mux {
    867 							groups = "pwm_c_x8";
    868 							function = "pwm_c";
    869 							bias-disable;
    870 						};
    871 					};
    872 
    873 					pwm_d_x3_pins: pwm-d-x3 {
    874 						mux {
    875 							groups = "pwm_d_x3";
    876 							function = "pwm_d";
    877 							bias-disable;
    878 						};
    879 					};
    880 
    881 					pwm_d_x6_pins: pwm-d-x6 {
    882 						mux {
    883 							groups = "pwm_d_x6";
    884 							function = "pwm_d";
    885 							bias-disable;
    886 						};
    887 					};
    888 
    889 					pwm_e_pins: pwm-e {
    890 						mux {
    891 							groups = "pwm_e";
    892 							function = "pwm_e";
    893 							bias-disable;
    894 						};
    895 					};
    896 
    897 					pwm_f_x_pins: pwm-f-x {
    898 						mux {
    899 							groups = "pwm_f_x";
    900 							function = "pwm_f";
    901 							bias-disable;
    902 						};
    903 					};
    904 
    905 					pwm_f_h_pins: pwm-f-h {
    906 						mux {
    907 							groups = "pwm_f_h";
    908 							function = "pwm_f";
    909 							bias-disable;
    910 						};
    911 					};
    912 
    913 					sdcard_c_pins: sdcard_c {
    914 						mux-0 {
    915 							groups = "sdcard_d0_c",
    916 								 "sdcard_d1_c",
    917 								 "sdcard_d2_c",
    918 								 "sdcard_d3_c",
    919 								 "sdcard_cmd_c";
    920 							function = "sdcard";
    921 							bias-pull-up;
    922 							drive-strength-microamp = <4000>;
    923 						};
    924 
    925 						mux-1 {
    926 							groups = "sdcard_clk_c";
    927 							function = "sdcard";
    928 							bias-disable;
    929 							drive-strength-microamp = <4000>;
    930 						};
    931 					};
    932 
    933 					sdcard_clk_gate_c_pins: sdcard_clk_gate_c {
    934 						mux {
    935 							groups = "GPIOC_4";
    936 							function = "gpio_periphs";
    937 							bias-pull-down;
    938 							drive-strength-microamp = <4000>;
    939 						};
    940 					};
    941 
    942 					sdcard_z_pins: sdcard_z {
    943 						mux-0 {
    944 							groups = "sdcard_d0_z",
    945 								 "sdcard_d1_z",
    946 								 "sdcard_d2_z",
    947 								 "sdcard_d3_z",
    948 								 "sdcard_cmd_z";
    949 							function = "sdcard";
    950 							bias-pull-up;
    951 							drive-strength-microamp = <4000>;
    952 						};
    953 
    954 						mux-1 {
    955 							groups = "sdcard_clk_z";
    956 							function = "sdcard";
    957 							bias-disable;
    958 							drive-strength-microamp = <4000>;
    959 						};
    960 					};
    961 
    962 					sdcard_clk_gate_z_pins: sdcard_clk_gate_z {
    963 						mux {
    964 							groups = "GPIOZ_6";
    965 							function = "gpio_periphs";
    966 							bias-pull-down;
    967 							drive-strength-microamp = <4000>;
    968 						};
    969 					};
    970 
    971 					sdio_pins: sdio {
    972 						mux {
    973 							groups = "sdio_d0",
    974 								 "sdio_d1",
    975 								 "sdio_d2",
    976 								 "sdio_d3",
    977 								 "sdio_clk",
    978 								 "sdio_cmd";
    979 							function = "sdio";
    980 							bias-disable;
    981 							drive-strength-microamp = <4000>;
    982 						};
    983 					};
    984 
    985 					sdio_clk_gate_pins: sdio_clk_gate {
    986 						mux {
    987 							groups = "GPIOX_4";
    988 							function = "gpio_periphs";
    989 							bias-pull-down;
    990 							drive-strength-microamp = <4000>;
    991 						};
    992 					};
    993 
    994 					spdif_in_a10_pins: spdif-in-a10 {
    995 						mux {
    996 							groups = "spdif_in_a10";
    997 							function = "spdif_in";
    998 							bias-disable;
    999 						};
   1000 					};
   1001 
   1002 					spdif_in_a12_pins: spdif-in-a12 {
   1003 						mux {
   1004 							groups = "spdif_in_a12";
   1005 							function = "spdif_in";
   1006 							bias-disable;
   1007 						};
   1008 					};
   1009 
   1010 					spdif_in_h_pins: spdif-in-h {
   1011 						mux {
   1012 							groups = "spdif_in_h";
   1013 							function = "spdif_in";
   1014 							bias-disable;
   1015 						};
   1016 					};
   1017 
   1018 					spdif_out_h_pins: spdif-out-h {
   1019 						mux {
   1020 							groups = "spdif_out_h";
   1021 							function = "spdif_out";
   1022 							drive-strength-microamp = <500>;
   1023 							bias-disable;
   1024 						};
   1025 					};
   1026 
   1027 					spdif_out_a11_pins: spdif-out-a11 {
   1028 						mux {
   1029 							groups = "spdif_out_a11";
   1030 							function = "spdif_out";
   1031 							drive-strength-microamp = <500>;
   1032 							bias-disable;
   1033 						};
   1034 					};
   1035 
   1036 					spdif_out_a13_pins: spdif-out-a13 {
   1037 						mux {
   1038 							groups = "spdif_out_a13";
   1039 							function = "spdif_out";
   1040 							drive-strength-microamp = <500>;
   1041 							bias-disable;
   1042 						};
   1043 					};
   1044 
   1045 					spicc0_x_pins: spicc0-x {
   1046 						mux {
   1047 							groups = "spi0_mosi_x",
   1048 							       "spi0_miso_x",
   1049 							       "spi0_clk_x";
   1050 							function = "spi0";
   1051 							drive-strength-microamp = <4000>;
   1052 							bias-disable;
   1053 						};
   1054 					};
   1055 
   1056 					spicc0_ss0_x_pins: spicc0-ss0-x {
   1057 						mux {
   1058 							groups = "spi0_ss0_x";
   1059 							function = "spi0";
   1060 							drive-strength-microamp = <4000>;
   1061 							bias-disable;
   1062 						};
   1063 					};
   1064 
   1065 					spicc0_c_pins: spicc0-c {
   1066 						mux {
   1067 							groups = "spi0_mosi_c",
   1068 							       "spi0_miso_c",
   1069 							       "spi0_ss0_c",
   1070 							       "spi0_clk_c";
   1071 							function = "spi0";
   1072 							drive-strength-microamp = <4000>;
   1073 							bias-disable;
   1074 						};
   1075 					};
   1076 
   1077 					spicc1_pins: spicc1 {
   1078 						mux {
   1079 							groups = "spi1_mosi",
   1080 							       "spi1_miso",
   1081 							       "spi1_clk";
   1082 							function = "spi1";
   1083 							drive-strength-microamp = <4000>;
   1084 						};
   1085 					};
   1086 
   1087 					spicc1_ss0_pins: spicc1-ss0 {
   1088 						mux {
   1089 							groups = "spi1_ss0";
   1090 							function = "spi1";
   1091 							drive-strength-microamp = <4000>;
   1092 							bias-disable;
   1093 						};
   1094 					};
   1095 
   1096 					tdm_a_din0_pins: tdm-a-din0 {
   1097 						mux {
   1098 							groups = "tdm_a_din0";
   1099 							function = "tdm_a";
   1100 							bias-disable;
   1101 						};
   1102 					};
   1103 
   1104 
   1105 					tdm_a_din1_pins: tdm-a-din1 {
   1106 						mux {
   1107 							groups = "tdm_a_din1";
   1108 							function = "tdm_a";
   1109 							bias-disable;
   1110 						};
   1111 					};
   1112 
   1113 					tdm_a_dout0_pins: tdm-a-dout0 {
   1114 						mux {
   1115 							groups = "tdm_a_dout0";
   1116 							function = "tdm_a";
   1117 							bias-disable;
   1118 							drive-strength-microamp = <3000>;
   1119 						};
   1120 					};
   1121 
   1122 					tdm_a_dout1_pins: tdm-a-dout1 {
   1123 						mux {
   1124 							groups = "tdm_a_dout1";
   1125 							function = "tdm_a";
   1126 							bias-disable;
   1127 							drive-strength-microamp = <3000>;
   1128 						};
   1129 					};
   1130 
   1131 					tdm_a_fs_pins: tdm-a-fs {
   1132 						mux {
   1133 							groups = "tdm_a_fs";
   1134 							function = "tdm_a";
   1135 							bias-disable;
   1136 							drive-strength-microamp = <3000>;
   1137 						};
   1138 					};
   1139 
   1140 					tdm_a_sclk_pins: tdm-a-sclk {
   1141 						mux {
   1142 							groups = "tdm_a_sclk";
   1143 							function = "tdm_a";
   1144 							bias-disable;
   1145 							drive-strength-microamp = <3000>;
   1146 						};
   1147 					};
   1148 
   1149 					tdm_a_slv_fs_pins: tdm-a-slv-fs {
   1150 						mux {
   1151 							groups = "tdm_a_slv_fs";
   1152 							function = "tdm_a";
   1153 							bias-disable;
   1154 						};
   1155 					};
   1156 
   1157 
   1158 					tdm_a_slv_sclk_pins: tdm-a-slv-sclk {
   1159 						mux {
   1160 							groups = "tdm_a_slv_sclk";
   1161 							function = "tdm_a";
   1162 							bias-disable;
   1163 						};
   1164 					};
   1165 
   1166 					tdm_b_din0_pins: tdm-b-din0 {
   1167 						mux {
   1168 							groups = "tdm_b_din0";
   1169 							function = "tdm_b";
   1170 							bias-disable;
   1171 						};
   1172 					};
   1173 
   1174 					tdm_b_din1_pins: tdm-b-din1 {
   1175 						mux {
   1176 							groups = "tdm_b_din1";
   1177 							function = "tdm_b";
   1178 							bias-disable;
   1179 						};
   1180 					};
   1181 
   1182 					tdm_b_din2_pins: tdm-b-din2 {
   1183 						mux {
   1184 							groups = "tdm_b_din2";
   1185 							function = "tdm_b";
   1186 							bias-disable;
   1187 						};
   1188 					};
   1189 
   1190 					tdm_b_din3_a_pins: tdm-b-din3-a {
   1191 						mux {
   1192 							groups = "tdm_b_din3_a";
   1193 							function = "tdm_b";
   1194 							bias-disable;
   1195 						};
   1196 					};
   1197 
   1198 					tdm_b_din3_h_pins: tdm-b-din3-h {
   1199 						mux {
   1200 							groups = "tdm_b_din3_h";
   1201 							function = "tdm_b";
   1202 							bias-disable;
   1203 						};
   1204 					};
   1205 
   1206 					tdm_b_dout0_pins: tdm-b-dout0 {
   1207 						mux {
   1208 							groups = "tdm_b_dout0";
   1209 							function = "tdm_b";
   1210 							bias-disable;
   1211 							drive-strength-microamp = <3000>;
   1212 						};
   1213 					};
   1214 
   1215 					tdm_b_dout1_pins: tdm-b-dout1 {
   1216 						mux {
   1217 							groups = "tdm_b_dout1";
   1218 							function = "tdm_b";
   1219 							bias-disable;
   1220 							drive-strength-microamp = <3000>;
   1221 						};
   1222 					};
   1223 
   1224 					tdm_b_dout2_pins: tdm-b-dout2 {
   1225 						mux {
   1226 							groups = "tdm_b_dout2";
   1227 							function = "tdm_b";
   1228 							bias-disable;
   1229 							drive-strength-microamp = <3000>;
   1230 						};
   1231 					};
   1232 
   1233 					tdm_b_dout3_a_pins: tdm-b-dout3-a {
   1234 						mux {
   1235 							groups = "tdm_b_dout3_a";
   1236 							function = "tdm_b";
   1237 							bias-disable;
   1238 							drive-strength-microamp = <3000>;
   1239 						};
   1240 					};
   1241 
   1242 					tdm_b_dout3_h_pins: tdm-b-dout3-h {
   1243 						mux {
   1244 							groups = "tdm_b_dout3_h";
   1245 							function = "tdm_b";
   1246 							bias-disable;
   1247 							drive-strength-microamp = <3000>;
   1248 						};
   1249 					};
   1250 
   1251 					tdm_b_fs_pins: tdm-b-fs {
   1252 						mux {
   1253 							groups = "tdm_b_fs";
   1254 							function = "tdm_b";
   1255 							bias-disable;
   1256 							drive-strength-microamp = <3000>;
   1257 						};
   1258 					};
   1259 
   1260 					tdm_b_sclk_pins: tdm-b-sclk {
   1261 						mux {
   1262 							groups = "tdm_b_sclk";
   1263 							function = "tdm_b";
   1264 							bias-disable;
   1265 							drive-strength-microamp = <3000>;
   1266 						};
   1267 					};
   1268 
   1269 					tdm_b_slv_fs_pins: tdm-b-slv-fs {
   1270 						mux {
   1271 							groups = "tdm_b_slv_fs";
   1272 							function = "tdm_b";
   1273 							bias-disable;
   1274 						};
   1275 					};
   1276 
   1277 					tdm_b_slv_sclk_pins: tdm-b-slv-sclk {
   1278 						mux {
   1279 							groups = "tdm_b_slv_sclk";
   1280 							function = "tdm_b";
   1281 							bias-disable;
   1282 						};
   1283 					};
   1284 
   1285 					tdm_c_din0_a_pins: tdm-c-din0-a {
   1286 						mux {
   1287 							groups = "tdm_c_din0_a";
   1288 							function = "tdm_c";
   1289 							bias-disable;
   1290 						};
   1291 					};
   1292 
   1293 					tdm_c_din0_z_pins: tdm-c-din0-z {
   1294 						mux {
   1295 							groups = "tdm_c_din0_z";
   1296 							function = "tdm_c";
   1297 							bias-disable;
   1298 						};
   1299 					};
   1300 
   1301 					tdm_c_din1_a_pins: tdm-c-din1-a {
   1302 						mux {
   1303 							groups = "tdm_c_din1_a";
   1304 							function = "tdm_c";
   1305 							bias-disable;
   1306 						};
   1307 					};
   1308 
   1309 					tdm_c_din1_z_pins: tdm-c-din1-z {
   1310 						mux {
   1311 							groups = "tdm_c_din1_z";
   1312 							function = "tdm_c";
   1313 							bias-disable;
   1314 						};
   1315 					};
   1316 
   1317 					tdm_c_din2_a_pins: tdm-c-din2-a {
   1318 						mux {
   1319 							groups = "tdm_c_din2_a";
   1320 							function = "tdm_c";
   1321 							bias-disable;
   1322 						};
   1323 					};
   1324 
   1325 					eth_leds_pins: eth-leds {
   1326 						mux {
   1327 							groups = "eth_link_led",
   1328 								 "eth_act_led";
   1329 							function = "eth";
   1330 							bias-disable;
   1331 						};
   1332 					};
   1333 
   1334 					eth_pins: eth {
   1335 						mux {
   1336 							groups = "eth_mdio",
   1337 								 "eth_mdc",
   1338 								 "eth_rgmii_rx_clk",
   1339 								 "eth_rx_dv",
   1340 								 "eth_rxd0",
   1341 								 "eth_rxd1",
   1342 								 "eth_txen",
   1343 								 "eth_txd0",
   1344 								 "eth_txd1";
   1345 							function = "eth";
   1346 							drive-strength-microamp = <4000>;
   1347 							bias-disable;
   1348 						};
   1349 					};
   1350 
   1351 					eth_rgmii_pins: eth-rgmii {
   1352 						mux {
   1353 							groups = "eth_rxd2_rgmii",
   1354 								 "eth_rxd3_rgmii",
   1355 								 "eth_rgmii_tx_clk",
   1356 								 "eth_txd2_rgmii",
   1357 								 "eth_txd3_rgmii";
   1358 							function = "eth";
   1359 							drive-strength-microamp = <4000>;
   1360 							bias-disable;
   1361 						};
   1362 					};
   1363 
   1364 					tdm_c_din2_z_pins: tdm-c-din2-z {
   1365 						mux {
   1366 							groups = "tdm_c_din2_z";
   1367 							function = "tdm_c";
   1368 							bias-disable;
   1369 						};
   1370 					};
   1371 
   1372 					tdm_c_din3_a_pins: tdm-c-din3-a {
   1373 						mux {
   1374 							groups = "tdm_c_din3_a";
   1375 							function = "tdm_c";
   1376 							bias-disable;
   1377 						};
   1378 					};
   1379 
   1380 					tdm_c_din3_z_pins: tdm-c-din3-z {
   1381 						mux {
   1382 							groups = "tdm_c_din3_z";
   1383 							function = "tdm_c";
   1384 							bias-disable;
   1385 						};
   1386 					};
   1387 
   1388 					tdm_c_dout0_a_pins: tdm-c-dout0-a {
   1389 						mux {
   1390 							groups = "tdm_c_dout0_a";
   1391 							function = "tdm_c";
   1392 							bias-disable;
   1393 							drive-strength-microamp = <3000>;
   1394 						};
   1395 					};
   1396 
   1397 					tdm_c_dout0_z_pins: tdm-c-dout0-z {
   1398 						mux {
   1399 							groups = "tdm_c_dout0_z";
   1400 							function = "tdm_c";
   1401 							bias-disable;
   1402 							drive-strength-microamp = <3000>;
   1403 						};
   1404 					};
   1405 
   1406 					tdm_c_dout1_a_pins: tdm-c-dout1-a {
   1407 						mux {
   1408 							groups = "tdm_c_dout1_a";
   1409 							function = "tdm_c";
   1410 							bias-disable;
   1411 							drive-strength-microamp = <3000>;
   1412 						};
   1413 					};
   1414 
   1415 					tdm_c_dout1_z_pins: tdm-c-dout1-z {
   1416 						mux {
   1417 							groups = "tdm_c_dout1_z";
   1418 							function = "tdm_c";
   1419 							bias-disable;
   1420 							drive-strength-microamp = <3000>;
   1421 						};
   1422 					};
   1423 
   1424 					tdm_c_dout2_a_pins: tdm-c-dout2-a {
   1425 						mux {
   1426 							groups = "tdm_c_dout2_a";
   1427 							function = "tdm_c";
   1428 							bias-disable;
   1429 							drive-strength-microamp = <3000>;
   1430 						};
   1431 					};
   1432 
   1433 					tdm_c_dout2_z_pins: tdm-c-dout2-z {
   1434 						mux {
   1435 							groups = "tdm_c_dout2_z";
   1436 							function = "tdm_c";
   1437 							bias-disable;
   1438 							drive-strength-microamp = <3000>;
   1439 						};
   1440 					};
   1441 
   1442 					tdm_c_dout3_a_pins: tdm-c-dout3-a {
   1443 						mux {
   1444 							groups = "tdm_c_dout3_a";
   1445 							function = "tdm_c";
   1446 							bias-disable;
   1447 							drive-strength-microamp = <3000>;
   1448 						};
   1449 					};
   1450 
   1451 					tdm_c_dout3_z_pins: tdm-c-dout3-z {
   1452 						mux {
   1453 							groups = "tdm_c_dout3_z";
   1454 							function = "tdm_c";
   1455 							bias-disable;
   1456 							drive-strength-microamp = <3000>;
   1457 						};
   1458 					};
   1459 
   1460 					tdm_c_fs_a_pins: tdm-c-fs-a {
   1461 						mux {
   1462 							groups = "tdm_c_fs_a";
   1463 							function = "tdm_c";
   1464 							bias-disable;
   1465 							drive-strength-microamp = <3000>;
   1466 						};
   1467 					};
   1468 
   1469 					tdm_c_fs_z_pins: tdm-c-fs-z {
   1470 						mux {
   1471 							groups = "tdm_c_fs_z";
   1472 							function = "tdm_c";
   1473 							bias-disable;
   1474 							drive-strength-microamp = <3000>;
   1475 						};
   1476 					};
   1477 
   1478 					tdm_c_sclk_a_pins: tdm-c-sclk-a {
   1479 						mux {
   1480 							groups = "tdm_c_sclk_a";
   1481 							function = "tdm_c";
   1482 							bias-disable;
   1483 							drive-strength-microamp = <3000>;
   1484 						};
   1485 					};
   1486 
   1487 					tdm_c_sclk_z_pins: tdm-c-sclk-z {
   1488 						mux {
   1489 							groups = "tdm_c_sclk_z";
   1490 							function = "tdm_c";
   1491 							bias-disable;
   1492 							drive-strength-microamp = <3000>;
   1493 						};
   1494 					};
   1495 
   1496 					tdm_c_slv_fs_a_pins: tdm-c-slv-fs-a {
   1497 						mux {
   1498 							groups = "tdm_c_slv_fs_a";
   1499 							function = "tdm_c";
   1500 							bias-disable;
   1501 						};
   1502 					};
   1503 
   1504 					tdm_c_slv_fs_z_pins: tdm-c-slv-fs-z {
   1505 						mux {
   1506 							groups = "tdm_c_slv_fs_z";
   1507 							function = "tdm_c";
   1508 							bias-disable;
   1509 						};
   1510 					};
   1511 
   1512 					tdm_c_slv_sclk_a_pins: tdm-c-slv-sclk-a {
   1513 						mux {
   1514 							groups = "tdm_c_slv_sclk_a";
   1515 							function = "tdm_c";
   1516 							bias-disable;
   1517 						};
   1518 					};
   1519 
   1520 					tdm_c_slv_sclk_z_pins: tdm-c-slv-sclk-z {
   1521 						mux {
   1522 							groups = "tdm_c_slv_sclk_z";
   1523 							function = "tdm_c";
   1524 							bias-disable;
   1525 						};
   1526 					};
   1527 
   1528 					uart_a_pins: uart-a {
   1529 						mux {
   1530 							groups = "uart_a_tx",
   1531 								 "uart_a_rx";
   1532 							function = "uart_a";
   1533 							bias-disable;
   1534 						};
   1535 					};
   1536 
   1537 					uart_a_cts_rts_pins: uart-a-cts-rts {
   1538 						mux {
   1539 							groups = "uart_a_cts",
   1540 								 "uart_a_rts";
   1541 							function = "uart_a";
   1542 							bias-disable;
   1543 						};
   1544 					};
   1545 
   1546 					uart_b_pins: uart-b {
   1547 						mux {
   1548 							groups = "uart_b_tx",
   1549 								 "uart_b_rx";
   1550 							function = "uart_b";
   1551 							bias-disable;
   1552 						};
   1553 					};
   1554 
   1555 					uart_c_pins: uart-c {
   1556 						mux {
   1557 							groups = "uart_c_tx",
   1558 								 "uart_c_rx";
   1559 							function = "uart_c";
   1560 							bias-disable;
   1561 						};
   1562 					};
   1563 
   1564 					uart_c_cts_rts_pins: uart-c-cts-rts {
   1565 						mux {
   1566 							groups = "uart_c_cts",
   1567 								 "uart_c_rts";
   1568 							function = "uart_c";
   1569 							bias-disable;
   1570 						};
   1571 					};
   1572 				};
   1573 			};
   1574 
   1575 			cpu_temp: temperature-sensor@34800 {
   1576 				compatible = "amlogic,g12a-cpu-thermal",
   1577 					     "amlogic,g12a-thermal";
   1578 				reg = <0x0 0x34800 0x0 0x50>;
   1579 				interrupts = <GIC_SPI 35 IRQ_TYPE_EDGE_RISING>;
   1580 				clocks = <&clkc CLKID_TS>;
   1581 				#thermal-sensor-cells = <0>;
   1582 				amlogic,ao-secure = <&sec_AO>;
   1583 			};
   1584 
   1585 			ddr_temp: temperature-sensor@34c00 {
   1586 				compatible = "amlogic,g12a-ddr-thermal",
   1587 					     "amlogic,g12a-thermal";
   1588 				reg = <0x0 0x34c00 0x0 0x50>;
   1589 				interrupts = <GIC_SPI 36 IRQ_TYPE_EDGE_RISING>;
   1590 				clocks = <&clkc CLKID_TS>;
   1591 				#thermal-sensor-cells = <0>;
   1592 				amlogic,ao-secure = <&sec_AO>;
   1593 			};
   1594 
   1595 			usb2_phy0: phy@36000 {
   1596 				compatible = "amlogic,g12a-usb2-phy";
   1597 				reg = <0x0 0x36000 0x0 0x2000>;
   1598 				clocks = <&xtal>;
   1599 				clock-names = "xtal";
   1600 				resets = <&reset RESET_USB_PHY20>;
   1601 				reset-names = "phy";
   1602 				#phy-cells = <0>;
   1603 			};
   1604 
   1605 			dmc: bus@38000 {
   1606 				compatible = "simple-bus";
   1607 				reg = <0x0 0x38000 0x0 0x400>;
   1608 				#address-cells = <2>;
   1609 				#size-cells = <2>;
   1610 				ranges = <0x0 0x0 0x0 0x38000 0x0 0x400>;
   1611 
   1612 				canvas: video-lut@48 {
   1613 					compatible = "amlogic,canvas";
   1614 					reg = <0x0 0x48 0x0 0x14>;
   1615 				};
   1616 			};
   1617 
   1618 			usb2_phy1: phy@3a000 {
   1619 				compatible = "amlogic,g12a-usb2-phy";
   1620 				reg = <0x0 0x3a000 0x0 0x2000>;
   1621 				clocks = <&xtal>;
   1622 				clock-names = "xtal";
   1623 				resets = <&reset RESET_USB_PHY21>;
   1624 				reset-names = "phy";
   1625 				#phy-cells = <0>;
   1626 			};
   1627 
   1628 			hiu: bus@3c000 {
   1629 				compatible = "simple-bus";
   1630 				reg = <0x0 0x3c000 0x0 0x1400>;
   1631 				#address-cells = <2>;
   1632 				#size-cells = <2>;
   1633 				ranges = <0x0 0x0 0x0 0x3c000 0x0 0x1400>;
   1634 
   1635 				hhi: system-controller@0 {
   1636 					compatible = "amlogic,meson-gx-hhi-sysctrl",
   1637 						     "simple-mfd", "syscon";
   1638 					reg = <0 0 0 0x400>;
   1639 
   1640 					clkc: clock-controller {
   1641 						compatible = "amlogic,g12a-clkc";
   1642 						#clock-cells = <1>;
   1643 						clocks = <&xtal>;
   1644 						clock-names = "xtal";
   1645 					};
   1646 
   1647 					pwrc: power-controller {
   1648 						compatible = "amlogic,meson-g12a-pwrc";
   1649 						#power-domain-cells = <1>;
   1650 						amlogic,ao-sysctrl = <&rti>;
   1651 						resets = <&reset RESET_VIU>,
   1652 							 <&reset RESET_VENC>,
   1653 							 <&reset RESET_VCBUS>,
   1654 							 <&reset RESET_BT656>,
   1655 							 <&reset RESET_RDMA>,
   1656 							 <&reset RESET_VENCI>,
   1657 							 <&reset RESET_VENCP>,
   1658 							 <&reset RESET_VDAC>,
   1659 							 <&reset RESET_VDI6>,
   1660 							 <&reset RESET_VENCL>,
   1661 							 <&reset RESET_VID_LOCK>;
   1662 						reset-names = "viu", "venc", "vcbus", "bt656",
   1663 							      "rdma", "venci", "vencp", "vdac",
   1664 							      "vdi6", "vencl", "vid_lock";
   1665 						clocks = <&clkc CLKID_VPU>,
   1666 							 <&clkc CLKID_VAPB>;
   1667 						clock-names = "vpu", "vapb";
   1668 						/*
   1669 						 * VPU clocking is provided by two identical clock paths
   1670 						 * VPU_0 and VPU_1 muxed to a single clock by a glitch
   1671 						 * free mux to safely change frequency while running.
   1672 						 * Same for VAPB but with a final gate after the glitch free mux.
   1673 						 */
   1674 						assigned-clocks = <&clkc CLKID_VPU_0_SEL>,
   1675 								  <&clkc CLKID_VPU_0>,
   1676 								  <&clkc CLKID_VPU>, /* Glitch free mux */
   1677 								  <&clkc CLKID_VAPB_0_SEL>,
   1678 								  <&clkc CLKID_VAPB_0>,
   1679 								  <&clkc CLKID_VAPB_SEL>; /* Glitch free mux */
   1680 						assigned-clock-parents = <&clkc CLKID_FCLK_DIV3>,
   1681 									 <0>, /* Do Nothing */
   1682 									 <&clkc CLKID_VPU_0>,
   1683 									 <&clkc CLKID_FCLK_DIV4>,
   1684 									 <0>, /* Do Nothing */
   1685 									 <&clkc CLKID_VAPB_0>;
   1686 						assigned-clock-rates = <0>, /* Do Nothing */
   1687 								       <666666666>,
   1688 								       <0>, /* Do Nothing */
   1689 								       <0>, /* Do Nothing */
   1690 								       <250000000>,
   1691 								       <0>; /* Do Nothing */
   1692 					};
   1693 				};
   1694 			};
   1695 
   1696 			usb3_pcie_phy: phy@46000 {
   1697 				compatible = "amlogic,g12a-usb3-pcie-phy";
   1698 				reg = <0x0 0x46000 0x0 0x2000>;
   1699 				clocks = <&clkc CLKID_PCIE_PLL>;
   1700 				clock-names = "ref_clk";
   1701 				resets = <&reset RESET_PCIE_PHY>;
   1702 				reset-names = "phy";
   1703 				assigned-clocks = <&clkc CLKID_PCIE_PLL>;
   1704 				assigned-clock-rates = <100000000>;
   1705 				#phy-cells = <1>;
   1706 			};
   1707 
   1708 			eth_phy: mdio-multiplexer@4c000 {
   1709 				compatible = "amlogic,g12a-mdio-mux";
   1710 				reg = <0x0 0x4c000 0x0 0xa4>;
   1711 				clocks = <&clkc CLKID_ETH_PHY>,
   1712 					 <&xtal>,
   1713 					 <&clkc CLKID_MPLL_50M>;
   1714 				clock-names = "pclk", "clkin0", "clkin1";
   1715 				mdio-parent-bus = <&mdio0>;
   1716 				#address-cells = <1>;
   1717 				#size-cells = <0>;
   1718 
   1719 				ext_mdio: mdio@0 {
   1720 					reg = <0>;
   1721 					#address-cells = <1>;
   1722 					#size-cells = <0>;
   1723 				};
   1724 
   1725 				int_mdio: mdio@1 {
   1726 					reg = <1>;
   1727 					#address-cells = <1>;
   1728 					#size-cells = <0>;
   1729 
   1730 					internal_ephy: ethernet_phy@8 {
   1731 						compatible = "ethernet-phy-id0180.3301",
   1732 							     "ethernet-phy-ieee802.3-c22";
   1733 						interrupts = <GIC_SPI 9 IRQ_TYPE_LEVEL_HIGH>;
   1734 						reg = <8>;
   1735 						max-speed = <100>;
   1736 					};
   1737 				};
   1738 			};
   1739 		};
   1740 
   1741 		aobus: bus@ff800000 {
   1742 			compatible = "simple-bus";
   1743 			reg = <0x0 0xff800000 0x0 0x100000>;
   1744 			#address-cells = <2>;
   1745 			#size-cells = <2>;
   1746 			ranges = <0x0 0x0 0x0 0xff800000 0x0 0x100000>;
   1747 
   1748 			rti: sys-ctrl@0 {
   1749 				compatible = "amlogic,meson-gx-ao-sysctrl",
   1750 					     "simple-mfd", "syscon";
   1751 				reg = <0x0 0x0 0x0 0x100>;
   1752 				#address-cells = <2>;
   1753 				#size-cells = <2>;
   1754 				ranges = <0x0 0x0 0x0 0x0 0x0 0x100>;
   1755 
   1756 				clkc_AO: clock-controller {
   1757 					compatible = "amlogic,meson-g12a-aoclkc";
   1758 					#clock-cells = <1>;
   1759 					#reset-cells = <1>;
   1760 					clocks = <&xtal>, <&clkc CLKID_CLK81>;
   1761 					clock-names = "xtal", "mpeg-clk";
   1762 				};
   1763 
   1764 				ao_pinctrl: pinctrl@14 {
   1765 					compatible = "amlogic,meson-g12a-aobus-pinctrl";
   1766 					#address-cells = <2>;
   1767 					#size-cells = <2>;
   1768 					ranges;
   1769 
   1770 					gpio_ao: bank@14 {
   1771 						reg = <0x0 0x14 0x0 0x8>,
   1772 						      <0x0 0x1c 0x0 0x8>,
   1773 						      <0x0 0x24 0x0 0x14>;
   1774 						reg-names = "mux",
   1775 							    "ds",
   1776 							    "gpio";
   1777 						gpio-controller;
   1778 						#gpio-cells = <2>;
   1779 						gpio-ranges = <&ao_pinctrl 0 0 15>;
   1780 					};
   1781 
   1782 					i2c_ao_sck_pins: i2c_ao_sck_pins {
   1783 						mux {
   1784 							groups = "i2c_ao_sck";
   1785 							function = "i2c_ao";
   1786 							bias-disable;
   1787 							drive-strength-microamp = <3000>;
   1788 						};
   1789 					};
   1790 
   1791 					i2c_ao_sda_pins: i2c_ao_sda {
   1792 						mux {
   1793 							groups = "i2c_ao_sda";
   1794 							function = "i2c_ao";
   1795 							bias-disable;
   1796 							drive-strength-microamp = <3000>;
   1797 						};
   1798 					};
   1799 
   1800 					i2c_ao_sck_e_pins: i2c_ao_sck_e {
   1801 						mux {
   1802 							groups = "i2c_ao_sck_e";
   1803 							function = "i2c_ao";
   1804 							bias-disable;
   1805 							drive-strength-microamp = <3000>;
   1806 						};
   1807 					};
   1808 
   1809 					i2c_ao_sda_e_pins: i2c_ao_sda_e {
   1810 						mux {
   1811 							groups = "i2c_ao_sda_e";
   1812 							function = "i2c_ao";
   1813 							bias-disable;
   1814 							drive-strength-microamp = <3000>;
   1815 						};
   1816 					};
   1817 
   1818 					mclk0_ao_pins: mclk0-ao {
   1819 						mux {
   1820 							groups = "mclk0_ao";
   1821 							function = "mclk0_ao";
   1822 							bias-disable;
   1823 							drive-strength-microamp = <3000>;
   1824 						};
   1825 					};
   1826 
   1827 					tdm_ao_b_din0_pins: tdm-ao-b-din0 {
   1828 						mux {
   1829 							groups = "tdm_ao_b_din0";
   1830 							function = "tdm_ao_b";
   1831 							bias-disable;
   1832 						};
   1833 					};
   1834 
   1835 					spdif_ao_out_pins: spdif-ao-out {
   1836 						mux {
   1837 							groups = "spdif_ao_out";
   1838 							function = "spdif_ao_out";
   1839 							drive-strength-microamp = <500>;
   1840 							bias-disable;
   1841 						};
   1842 					};
   1843 
   1844 					tdm_ao_b_din1_pins: tdm-ao-b-din1 {
   1845 						mux {
   1846 							groups = "tdm_ao_b_din1";
   1847 							function = "tdm_ao_b";
   1848 							bias-disable;
   1849 						};
   1850 					};
   1851 
   1852 					tdm_ao_b_din2_pins: tdm-ao-b-din2 {
   1853 						mux {
   1854 							groups = "tdm_ao_b_din2";
   1855 							function = "tdm_ao_b";
   1856 							bias-disable;
   1857 						};
   1858 					};
   1859 
   1860 					tdm_ao_b_dout0_pins: tdm-ao-b-dout0 {
   1861 						mux {
   1862 							groups = "tdm_ao_b_dout0";
   1863 							function = "tdm_ao_b";
   1864 							bias-disable;
   1865 							drive-strength-microamp = <3000>;
   1866 						};
   1867 					};
   1868 
   1869 					tdm_ao_b_dout1_pins: tdm-ao-b-dout1 {
   1870 						mux {
   1871 							groups = "tdm_ao_b_dout1";
   1872 							function = "tdm_ao_b";
   1873 							bias-disable;
   1874 							drive-strength-microamp = <3000>;
   1875 						};
   1876 					};
   1877 
   1878 					tdm_ao_b_dout2_pins: tdm-ao-b-dout2 {
   1879 						mux {
   1880 							groups = "tdm_ao_b_dout2";
   1881 							function = "tdm_ao_b";
   1882 							bias-disable;
   1883 							drive-strength-microamp = <3000>;
   1884 						};
   1885 					};
   1886 
   1887 					tdm_ao_b_fs_pins: tdm-ao-b-fs {
   1888 						mux {
   1889 							groups = "tdm_ao_b_fs";
   1890 							function = "tdm_ao_b";
   1891 							bias-disable;
   1892 							drive-strength-microamp = <3000>;
   1893 						};
   1894 					};
   1895 
   1896 					tdm_ao_b_sclk_pins: tdm-ao-b-sclk {
   1897 						mux {
   1898 							groups = "tdm_ao_b_sclk";
   1899 							function = "tdm_ao_b";
   1900 							bias-disable;
   1901 							drive-strength-microamp = <3000>;
   1902 						};
   1903 					};
   1904 
   1905 					tdm_ao_b_slv_fs_pins: tdm-ao-b-slv-fs {
   1906 						mux {
   1907 							groups = "tdm_ao_b_slv_fs";
   1908 							function = "tdm_ao_b";
   1909 							bias-disable;
   1910 						};
   1911 					};
   1912 
   1913 					tdm_ao_b_slv_sclk_pins: tdm-ao-b-slv-sclk {
   1914 						mux {
   1915 							groups = "tdm_ao_b_slv_sclk";
   1916 							function = "tdm_ao_b";
   1917 							bias-disable;
   1918 						};
   1919 					};
   1920 
   1921 					uart_ao_a_pins: uart-a-ao {
   1922 						mux {
   1923 							groups = "uart_ao_a_tx",
   1924 								 "uart_ao_a_rx";
   1925 							function = "uart_ao_a";
   1926 							bias-disable;
   1927 						};
   1928 					};
   1929 
   1930 					uart_ao_a_cts_rts_pins: uart-ao-a-cts-rts {
   1931 						mux {
   1932 							groups = "uart_ao_a_cts",
   1933 								 "uart_ao_a_rts";
   1934 							function = "uart_ao_a";
   1935 							bias-disable;
   1936 						};
   1937 					};
   1938 
   1939 					pwm_a_e_pins: pwm-a-e {
   1940 						mux {
   1941 							groups = "pwm_a_e";
   1942 							function = "pwm_a_e";
   1943 							bias-disable;
   1944 						};
   1945 					};
   1946 
   1947 					pwm_ao_a_pins: pwm-ao-a {
   1948 						mux {
   1949 							groups = "pwm_ao_a";
   1950 							function = "pwm_ao_a";
   1951 							bias-disable;
   1952 						};
   1953 					};
   1954 
   1955 					pwm_ao_b_pins: pwm-ao-b {
   1956 						mux {
   1957 							groups = "pwm_ao_b";
   1958 							function = "pwm_ao_b";
   1959 							bias-disable;
   1960 						};
   1961 					};
   1962 
   1963 					pwm_ao_c_4_pins: pwm-ao-c-4 {
   1964 						mux {
   1965 							groups = "pwm_ao_c_4";
   1966 							function = "pwm_ao_c";
   1967 							bias-disable;
   1968 						};
   1969 					};
   1970 
   1971 					pwm_ao_c_6_pins: pwm-ao-c-6 {
   1972 						mux {
   1973 							groups = "pwm_ao_c_6";
   1974 							function = "pwm_ao_c";
   1975 							bias-disable;
   1976 						};
   1977 					};
   1978 
   1979 					pwm_ao_d_5_pins: pwm-ao-d-5 {
   1980 						mux {
   1981 							groups = "pwm_ao_d_5";
   1982 							function = "pwm_ao_d";
   1983 							bias-disable;
   1984 						};
   1985 					};
   1986 
   1987 					pwm_ao_d_10_pins: pwm-ao-d-10 {
   1988 						mux {
   1989 							groups = "pwm_ao_d_10";
   1990 							function = "pwm_ao_d";
   1991 							bias-disable;
   1992 						};
   1993 					};
   1994 
   1995 					pwm_ao_d_e_pins: pwm-ao-d-e {
   1996 						mux {
   1997 							groups = "pwm_ao_d_e";
   1998 							function = "pwm_ao_d";
   1999 						};
   2000 					};
   2001 
   2002 					remote_input_ao_pins: remote-input-ao {
   2003 						mux {
   2004 							groups = "remote_ao_input";
   2005 							function = "remote_ao_input";
   2006 							bias-disable;
   2007 						};
   2008 					};
   2009 				};
   2010 			};
   2011 
   2012 			vrtc: rtc@a8 {
   2013 				compatible = "amlogic,meson-vrtc";
   2014 				reg = <0x0 0x000a8 0x0 0x4>;
   2015 			};
   2016 
   2017 			cec_AO: cec@100 {
   2018 				compatible = "amlogic,meson-gx-ao-cec";
   2019 				reg = <0x0 0x00100 0x0 0x14>;
   2020 				interrupts = <GIC_SPI 199 IRQ_TYPE_EDGE_RISING>;
   2021 				clocks = <&clkc_AO CLKID_AO_CEC>;
   2022 				clock-names = "core";
   2023 				status = "disabled";
   2024 			};
   2025 
   2026 			sec_AO: ao-secure@140 {
   2027 				compatible = "amlogic,meson-gx-ao-secure", "syscon";
   2028 				reg = <0x0 0x140 0x0 0x140>;
   2029 				amlogic,has-chip-id;
   2030 			};
   2031 
   2032 			cecb_AO: cec@280 {
   2033 				compatible = "amlogic,meson-g12a-ao-cec";
   2034 				reg = <0x0 0x00280 0x0 0x1c>;
   2035 				interrupts = <GIC_SPI 203 IRQ_TYPE_EDGE_RISING>;
   2036 				clocks = <&clkc_AO CLKID_AO_CTS_OSCIN>;
   2037 				clock-names = "oscin";
   2038 				status = "disabled";
   2039 			};
   2040 
   2041 			pwm_AO_cd: pwm@2000 {
   2042 				compatible = "amlogic,meson-g12a-ao-pwm-cd";
   2043 				reg = <0x0 0x2000 0x0 0x20>;
   2044 				#pwm-cells = <3>;
   2045 				status = "disabled";
   2046 			};
   2047 
   2048 			uart_AO: serial@3000 {
   2049 				compatible = "amlogic,meson-gx-uart",
   2050 					     "amlogic,meson-ao-uart";
   2051 				reg = <0x0 0x3000 0x0 0x18>;
   2052 				interrupts = <GIC_SPI 193 IRQ_TYPE_EDGE_RISING>;
   2053 				clocks = <&xtal>, <&clkc_AO CLKID_AO_UART>, <&xtal>;
   2054 				clock-names = "xtal", "pclk", "baud";
   2055 				status = "disabled";
   2056 			};
   2057 
   2058 			uart_AO_B: serial@4000 {
   2059 				compatible = "amlogic,meson-gx-uart",
   2060 					     "amlogic,meson-ao-uart";
   2061 				reg = <0x0 0x4000 0x0 0x18>;
   2062 				interrupts = <GIC_SPI 197 IRQ_TYPE_EDGE_RISING>;
   2063 				clocks = <&xtal>, <&clkc_AO CLKID_AO_UART2>, <&xtal>;
   2064 				clock-names = "xtal", "pclk", "baud";
   2065 				status = "disabled";
   2066 			};
   2067 
   2068 			i2c_AO: i2c@5000 {
   2069 				compatible = "amlogic,meson-axg-i2c";
   2070 				status = "disabled";
   2071 				reg = <0x0 0x05000 0x0 0x20>;
   2072 				interrupts = <GIC_SPI 195 IRQ_TYPE_EDGE_RISING>;
   2073 				#address-cells = <1>;
   2074 				#size-cells = <0>;
   2075 				clocks = <&clkc CLKID_I2C>;
   2076 			};
   2077 
   2078 			pwm_AO_ab: pwm@7000 {
   2079 				compatible = "amlogic,meson-g12a-ao-pwm-ab";
   2080 				reg = <0x0 0x7000 0x0 0x20>;
   2081 				#pwm-cells = <3>;
   2082 				status = "disabled";
   2083 			};
   2084 
   2085 			ir: ir@8000 {
   2086 				compatible = "amlogic,meson-gxbb-ir";
   2087 				reg = <0x0 0x8000 0x0 0x20>;
   2088 				interrupts = <GIC_SPI 196 IRQ_TYPE_EDGE_RISING>;
   2089 				status = "disabled";
   2090 			};
   2091 
   2092 			saradc: adc@9000 {
   2093 				compatible = "amlogic,meson-g12a-saradc",
   2094 					     "amlogic,meson-saradc";
   2095 				reg = <0x0 0x9000 0x0 0x48>;
   2096 				#io-channel-cells = <1>;
   2097 				interrupts = <GIC_SPI 200 IRQ_TYPE_EDGE_RISING>;
   2098 				clocks = <&xtal>,
   2099 					 <&clkc_AO CLKID_AO_SAR_ADC>,
   2100 					 <&clkc_AO CLKID_AO_SAR_ADC_CLK>,
   2101 					 <&clkc_AO CLKID_AO_SAR_ADC_SEL>;
   2102 				clock-names = "clkin", "core", "adc_clk", "adc_sel";
   2103 				status = "disabled";
   2104 			};
   2105 		};
   2106 
   2107 		vdec: video-decoder@ff620000 {
   2108 			compatible = "amlogic,g12a-vdec";
   2109 			reg = <0x0 0xff620000 0x0 0x10000>,
   2110 			      <0x0 0xffd0e180 0x0 0xe4>;
   2111 			reg-names = "dos", "esparser";
   2112 			interrupts = <GIC_SPI 44 IRQ_TYPE_EDGE_RISING>,
   2113 				     <GIC_SPI 32 IRQ_TYPE_EDGE_RISING>;
   2114 			interrupt-names = "vdec", "esparser";
   2115 
   2116 			amlogic,ao-sysctrl = <&rti>;
   2117 			amlogic,canvas = <&canvas>;
   2118 
   2119 			clocks = <&clkc CLKID_PARSER>,
   2120 				 <&clkc CLKID_DOS>,
   2121 				 <&clkc CLKID_VDEC_1>,
   2122 				 <&clkc CLKID_VDEC_HEVC>,
   2123 				 <&clkc CLKID_VDEC_HEVCF>;
   2124 			clock-names = "dos_parser", "dos", "vdec_1",
   2125 				      "vdec_hevc", "vdec_hevcf";
   2126 			resets = <&reset RESET_PARSER>;
   2127 			reset-names = "esparser";
   2128 		};
   2129 
   2130 		vpu: vpu@ff900000 {
   2131 			compatible = "amlogic,meson-g12a-vpu";
   2132 			reg = <0x0 0xff900000 0x0 0x100000>,
   2133 			      <0x0 0xff63c000 0x0 0x1000>;
   2134 			reg-names = "vpu", "hhi";
   2135 			interrupts = <GIC_SPI 3 IRQ_TYPE_EDGE_RISING>;
   2136 			#address-cells = <1>;
   2137 			#size-cells = <0>;
   2138 			amlogic,canvas = <&canvas>;
   2139 
   2140 			/* CVBS VDAC output port */
   2141 			cvbs_vdac_port: port@0 {
   2142 				reg = <0>;
   2143 			};
   2144 
   2145 			/* HDMI-TX output port */
   2146 			hdmi_tx_port: port@1 {
   2147 				reg = <1>;
   2148 
   2149 				hdmi_tx_out: endpoint {
   2150 					remote-endpoint = <&hdmi_tx_in>;
   2151 				};
   2152 			};
   2153 		};
   2154 
   2155 		gic: interrupt-controller@ffc01000 {
   2156 			compatible = "arm,gic-400";
   2157 			reg = <0x0 0xffc01000 0 0x1000>,
   2158 			      <0x0 0xffc02000 0 0x2000>,
   2159 			      <0x0 0xffc04000 0 0x2000>,
   2160 			      <0x0 0xffc06000 0 0x2000>;
   2161 			interrupt-controller;
   2162 			interrupts = <GIC_PPI 9
   2163 				(GIC_CPU_MASK_SIMPLE(8) | IRQ_TYPE_LEVEL_HIGH)>;
   2164 			#interrupt-cells = <3>;
   2165 			#address-cells = <0>;
   2166 		};
   2167 
   2168 		cbus: bus@ffd00000 {
   2169 			compatible = "simple-bus";
   2170 			reg = <0x0 0xffd00000 0x0 0x100000>;
   2171 			#address-cells = <2>;
   2172 			#size-cells = <2>;
   2173 			ranges = <0x0 0x0 0x0 0xffd00000 0x0 0x100000>;
   2174 
   2175 			reset: reset-controller@1004 {
   2176 				compatible = "amlogic,meson-axg-reset";
   2177 				reg = <0x0 0x1004 0x0 0x9c>;
   2178 				#reset-cells = <1>;
   2179 			};
   2180 
   2181 			gpio_intc: interrupt-controller@f080 {
   2182 				compatible = "amlogic,meson-g12a-gpio-intc",
   2183 					     "amlogic,meson-gpio-intc";
   2184 				reg = <0x0 0xf080 0x0 0x10>;
   2185 				interrupt-controller;
   2186 				#interrupt-cells = <2>;
   2187 				amlogic,channel-interrupts = <64 65 66 67 68 69 70 71>;
   2188 			};
   2189 
   2190 			watchdog: watchdog@f0d0 {
   2191 				compatible = "amlogic,meson-gxbb-wdt";
   2192 				reg = <0x0 0xf0d0 0x0 0x10>;
   2193 				clocks = <&xtal>;
   2194 			};
   2195 
   2196 			spicc0: spi@13000 {
   2197 				compatible = "amlogic,meson-g12a-spicc";
   2198 				reg = <0x0 0x13000 0x0 0x44>;
   2199 				interrupts = <GIC_SPI 81 IRQ_TYPE_LEVEL_HIGH>;
   2200 				clocks = <&clkc CLKID_SPICC0>,
   2201 					 <&clkc CLKID_SPICC0_SCLK>;
   2202 				clock-names = "core", "pclk";
   2203 				#address-cells = <1>;
   2204 				#size-cells = <0>;
   2205 				status = "disabled";
   2206 			};
   2207 
   2208 			spicc1: spi@15000 {
   2209 				compatible = "amlogic,meson-g12a-spicc";
   2210 				reg = <0x0 0x15000 0x0 0x44>;
   2211 				interrupts = <GIC_SPI 90 IRQ_TYPE_LEVEL_HIGH>;
   2212 				clocks = <&clkc CLKID_SPICC1>,
   2213 					 <&clkc CLKID_SPICC1_SCLK>;
   2214 				clock-names = "core", "pclk";
   2215 				#address-cells = <1>;
   2216 				#size-cells = <0>;
   2217 				status = "disabled";
   2218 			};
   2219 
   2220 			spifc: spi@14000 {
   2221 				compatible = "amlogic,meson-gxbb-spifc";
   2222 				status = "disabled";
   2223 				reg = <0x0 0x14000 0x0 0x80>;
   2224 				#address-cells = <1>;
   2225 				#size-cells = <0>;
   2226 				clocks = <&clkc CLKID_CLK81>;
   2227 			};
   2228 
   2229 			pwm_ef: pwm@19000 {
   2230 				compatible = "amlogic,meson-g12a-ee-pwm";
   2231 				reg = <0x0 0x19000 0x0 0x20>;
   2232 				#pwm-cells = <3>;
   2233 				status = "disabled";
   2234 			};
   2235 
   2236 			pwm_cd: pwm@1a000 {
   2237 				compatible = "amlogic,meson-g12a-ee-pwm";
   2238 				reg = <0x0 0x1a000 0x0 0x20>;
   2239 				#pwm-cells = <3>;
   2240 				status = "disabled";
   2241 			};
   2242 
   2243 			pwm_ab: pwm@1b000 {
   2244 				compatible = "amlogic,meson-g12a-ee-pwm";
   2245 				reg = <0x0 0x1b000 0x0 0x20>;
   2246 				#pwm-cells = <3>;
   2247 				status = "disabled";
   2248 			};
   2249 
   2250 			i2c3: i2c@1c000 {
   2251 				compatible = "amlogic,meson-axg-i2c";
   2252 				status = "disabled";
   2253 				reg = <0x0 0x1c000 0x0 0x20>;
   2254 				interrupts = <GIC_SPI 39 IRQ_TYPE_EDGE_RISING>;
   2255 				#address-cells = <1>;
   2256 				#size-cells = <0>;
   2257 				clocks = <&clkc CLKID_I2C>;
   2258 			};
   2259 
   2260 			i2c2: i2c@1d000 {
   2261 				compatible = "amlogic,meson-axg-i2c";
   2262 				status = "disabled";
   2263 				reg = <0x0 0x1d000 0x0 0x20>;
   2264 				interrupts = <GIC_SPI 215 IRQ_TYPE_EDGE_RISING>;
   2265 				#address-cells = <1>;
   2266 				#size-cells = <0>;
   2267 				clocks = <&clkc CLKID_I2C>;
   2268 			};
   2269 
   2270 			i2c1: i2c@1e000 {
   2271 				compatible = "amlogic,meson-axg-i2c";
   2272 				status = "disabled";
   2273 				reg = <0x0 0x1e000 0x0 0x20>;
   2274 				interrupts = <GIC_SPI 214 IRQ_TYPE_EDGE_RISING>;
   2275 				#address-cells = <1>;
   2276 				#size-cells = <0>;
   2277 				clocks = <&clkc CLKID_I2C>;
   2278 			};
   2279 
   2280 			i2c0: i2c@1f000 {
   2281 				compatible = "amlogic,meson-axg-i2c";
   2282 				status = "disabled";
   2283 				reg = <0x0 0x1f000 0x0 0x20>;
   2284 				interrupts = <GIC_SPI 21 IRQ_TYPE_EDGE_RISING>;
   2285 				#address-cells = <1>;
   2286 				#size-cells = <0>;
   2287 				clocks = <&clkc CLKID_I2C>;
   2288 			};
   2289 
   2290 			clk_msr: clock-measure@18000 {
   2291 				compatible = "amlogic,meson-g12a-clk-measure";
   2292 				reg = <0x0 0x18000 0x0 0x10>;
   2293 			};
   2294 
   2295 			uart_C: serial@22000 {
   2296 				compatible = "amlogic,meson-gx-uart";
   2297 				reg = <0x0 0x22000 0x0 0x18>;
   2298 				interrupts = <GIC_SPI 93 IRQ_TYPE_EDGE_RISING>;
   2299 				clocks = <&xtal>, <&clkc CLKID_UART2>, <&xtal>;
   2300 				clock-names = "xtal", "pclk", "baud";
   2301 				status = "disabled";
   2302 			};
   2303 
   2304 			uart_B: serial@23000 {
   2305 				compatible = "amlogic,meson-gx-uart";
   2306 				reg = <0x0 0x23000 0x0 0x18>;
   2307 				interrupts = <GIC_SPI 75 IRQ_TYPE_EDGE_RISING>;
   2308 				clocks = <&xtal>, <&clkc CLKID_UART1>, <&xtal>;
   2309 				clock-names = "xtal", "pclk", "baud";
   2310 				status = "disabled";
   2311 			};
   2312 
   2313 			uart_A: serial@24000 {
   2314 				compatible = "amlogic,meson-gx-uart";
   2315 				reg = <0x0 0x24000 0x0 0x18>;
   2316 				interrupts = <GIC_SPI 26 IRQ_TYPE_EDGE_RISING>;
   2317 				clocks = <&xtal>, <&clkc CLKID_UART0>, <&xtal>;
   2318 				clock-names = "xtal", "pclk", "baud";
   2319 				status = "disabled";
   2320 				fifo-size = <128>;
   2321 			};
   2322 		};
   2323 
   2324 		sd_emmc_a: sd@ffe03000 {
   2325 			compatible = "amlogic,meson-axg-mmc";
   2326 			reg = <0x0 0xffe03000 0x0 0x800>;
   2327 			interrupts = <GIC_SPI 189 IRQ_TYPE_EDGE_RISING>;
   2328 			status = "disabled";
   2329 			clocks = <&clkc CLKID_SD_EMMC_A>,
   2330 				 <&clkc CLKID_SD_EMMC_A_CLK0>,
   2331 				 <&clkc CLKID_FCLK_DIV2>;
   2332 			clock-names = "core", "clkin0", "clkin1";
   2333 			resets = <&reset RESET_SD_EMMC_A>;
   2334 		};
   2335 
   2336 		sd_emmc_b: sd@ffe05000 {
   2337 			compatible = "amlogic,meson-axg-mmc";
   2338 			reg = <0x0 0xffe05000 0x0 0x800>;
   2339 			interrupts = <GIC_SPI 190 IRQ_TYPE_EDGE_RISING>;
   2340 			status = "disabled";
   2341 			clocks = <&clkc CLKID_SD_EMMC_B>,
   2342 				 <&clkc CLKID_SD_EMMC_B_CLK0>,
   2343 				 <&clkc CLKID_FCLK_DIV2>;
   2344 			clock-names = "core", "clkin0", "clkin1";
   2345 			resets = <&reset RESET_SD_EMMC_B>;
   2346 		};
   2347 
   2348 		sd_emmc_c: mmc@ffe07000 {
   2349 			compatible = "amlogic,meson-axg-mmc";
   2350 			reg = <0x0 0xffe07000 0x0 0x800>;
   2351 			interrupts = <GIC_SPI 191 IRQ_TYPE_EDGE_RISING>;
   2352 			status = "disabled";
   2353 			clocks = <&clkc CLKID_SD_EMMC_C>,
   2354 				 <&clkc CLKID_SD_EMMC_C_CLK0>,
   2355 				 <&clkc CLKID_FCLK_DIV2>;
   2356 			clock-names = "core", "clkin0", "clkin1";
   2357 			resets = <&reset RESET_SD_EMMC_C>;
   2358 		};
   2359 
   2360 		usb: usb@ffe09000 {
   2361 			status = "disabled";
   2362 			compatible = "amlogic,meson-g12a-usb-ctrl";
   2363 			reg = <0x0 0xffe09000 0x0 0xa0>;
   2364 			interrupts = <GIC_SPI 16 IRQ_TYPE_LEVEL_HIGH>;
   2365 			#address-cells = <2>;
   2366 			#size-cells = <2>;
   2367 			ranges;
   2368 
   2369 			clocks = <&clkc CLKID_USB>;
   2370 			resets = <&reset RESET_USB>;
   2371 
   2372 			dr_mode = "otg";
   2373 
   2374 			phys = <&usb2_phy0>, <&usb2_phy1>,
   2375 			       <&usb3_pcie_phy PHY_TYPE_USB3>;
   2376 			phy-names = "usb2-phy0", "usb2-phy1", "usb3-phy0";
   2377 
   2378 			dwc2: usb@ff400000 {
   2379 				compatible = "amlogic,meson-g12a-usb", "snps,dwc2";
   2380 				reg = <0x0 0xff400000 0x0 0x40000>;
   2381 				interrupts = <GIC_SPI 31 IRQ_TYPE_LEVEL_HIGH>;
   2382 				clocks = <&clkc CLKID_USB1_DDR_BRIDGE>;
   2383 				clock-names = "otg";
   2384 				phys = <&usb2_phy1>;
   2385 				phy-names = "usb2-phy";
   2386 				dr_mode = "peripheral";
   2387 				g-rx-fifo-size = <192>;
   2388 				g-np-tx-fifo-size = <128>;
   2389 				g-tx-fifo-size = <128 128 16 16 16>;
   2390 			};
   2391 
   2392 			dwc3: usb@ff500000 {
   2393 				compatible = "snps,dwc3";
   2394 				reg = <0x0 0xff500000 0x0 0x100000>;
   2395 				interrupts = <GIC_SPI 30 IRQ_TYPE_LEVEL_HIGH>;
   2396 				dr_mode = "host";
   2397 				snps,dis_u2_susphy_quirk;
   2398 				snps,quirk-frame-length-adjustment = <0x20>;
   2399 				snps,parkmode-disable-ss-quirk;
   2400 			};
   2401 		};
   2402 
   2403 		mali: gpu@ffe40000 {
   2404 			compatible = "amlogic,meson-g12a-mali", "arm,mali-bifrost";
   2405 			reg = <0x0 0xffe40000 0x0 0x40000>;
   2406 			interrupt-parent = <&gic>;
   2407 			interrupts = <GIC_SPI 162 IRQ_TYPE_LEVEL_HIGH>,
   2408 				     <GIC_SPI 161 IRQ_TYPE_LEVEL_HIGH>,
   2409 				     <GIC_SPI 160 IRQ_TYPE_LEVEL_HIGH>;
   2410 			interrupt-names = "job", "mmu", "gpu";
   2411 			clocks = <&clkc CLKID_MALI>;
   2412 			resets = <&reset RESET_DVALIN_CAPB3>, <&reset RESET_DVALIN>;
   2413 			operating-points-v2 = <&gpu_opp_table>;
   2414 			#cooling-cells = <2>;
   2415 		};
   2416 	};
   2417 
   2418 	timer {
   2419 		compatible = "arm,armv8-timer";
   2420 		interrupts = <GIC_PPI 13
   2421 			(GIC_CPU_MASK_RAW(0xff) | IRQ_TYPE_LEVEL_LOW)>,
   2422 			     <GIC_PPI 14
   2423 			(GIC_CPU_MASK_RAW(0xff) | IRQ_TYPE_LEVEL_LOW)>,
   2424 			     <GIC_PPI 11
   2425 			(GIC_CPU_MASK_RAW(0xff) | IRQ_TYPE_LEVEL_LOW)>,
   2426 			     <GIC_PPI 10
   2427 			(GIC_CPU_MASK_RAW(0xff) | IRQ_TYPE_LEVEL_LOW)>;
   2428 		arm,no-tick-in-suspend;
   2429 	};
   2430 
   2431 	xtal: xtal-clk {
   2432 		compatible = "fixed-clock";
   2433 		clock-frequency = <24000000>;
   2434 		clock-output-names = "xtal";
   2435 		#clock-cells = <0>;
   2436 	};
   2437 
   2438 };
   2439