1// SPDX-License-Identifier: (GPL-2.0+ or MIT) 2/* 3 * Copyright (C) 2020 frank@allwinnertech.com 4 */ 5 6#include <dt-bindings/clock/sun50iw9-ccu.h> 7#include <dt-bindings/clock/sun50iw9-ccu-rtc.h> 8#include <dt-bindings/clock/sun50iw9-r-ccu.h> 9#include <dt-bindings/gpio/gpio.h> 10#include <dt-bindings/gpio/sun4i-gpio.h> 11#include <dt-bindings/interrupt-controller/arm-gic.h> 12#include <dt-bindings/reset/sun50iw9-ccu.h> 13#include <dt-bindings/reset/sun50iw9-r-ccu.h> 14#include <dt-bindings/thermal/thermal.h> 15 16/ { 17 interrupt-parent = <&wakeupgen>; 18 #address-cells = <2>; 19 #size-cells = <2>; 20 21 aliases: aliases { 22 serial0 = &uart0; 23 serial1 = &uart1; 24 serial2 = &uart2; 25 serial3 = &uart3; 26 serial4 = &uart4; 27 serial5 = &uart5; 28 pwm = &pwm; 29 pwm0 = &pwm0; 30 pwm1 = &pwm1; 31 pwm2 = &pwm2; 32 pwm3 = &pwm3; 33 pwm4 = &pwm4; 34 pwm5 = &pwm5; 35 ir0 = &s_cir0; 36 /*mmc0 = &sdc0; 37 mmc2 = &sdc2;*/ 38 sunxi-mmc0 = &sdc0; 39 sunxi-mmc2 = &sdc2; 40 tv0 = &tv0; 41 gmac0 = &gmac0; 42 ac200 = &ac200; 43 nand0 = &nand0; 44 ve0 = &ve; 45 ve1 = &ve1; 46 drm = &drm; 47 }; 48 49 reserved-memory { 50 #address-cells = <2>; 51 #size-cells = <2>; 52 ranges; 53 54 bl31 { 55 reg = <0x0 0x48000000 0x0 0x01000000>; 56 }; 57 }; 58 59 firmware { 60 android { 61 compatible = "android,firmware"; 62 name = "android"; 63 boot_devices = "soc@3000000/4020000.sdmmc,soc@3000000/4022000.sdmmc,soc@3000000"; 64 vbmeta { 65 compatible = "android,vbmeta"; 66 parts = "vbmeta,vbmeta_system,vbmeta_vendor,boot"; 67 }; 68 }; 69 optee { 70 compatible = "linaro,optee-tz"; 71 method = "smc"; 72 }; 73 }; 74 75 cpus { 76 #address-cells = <1>; 77 #size-cells = <0>; 78 79 cpu0: cpu@0 { 80 device_type = "cpu"; 81 compatible = "arm,cortex-a53"; 82 reg = <0x0>; 83 enable-method = "psci"; 84 clocks = <&ccu CLK_CPUX>; 85 operating-points-v2 = <&cpu_opp_table>; 86 cpu-idle-states = <&CPU_SLEEP>; 87 dynamic-power-coefficient = <202>; 88 #cooling-cells = <2>; 89 }; 90 91 cpu@1 { 92 device_type = "cpu"; 93 compatible = "arm,cortex-a53"; 94 reg = <0x1>; 95 enable-method = "psci"; 96 clocks = <&ccu CLK_CPUX>; 97 operating-points-v2 = <&cpu_opp_table>; 98 cpu-idle-states = <&CPU_SLEEP>; 99 dynamic-power-coefficient = <202>; 100 #cooling-cells = <2>; 101 }; 102 103 cpu@2 { 104 device_type = "cpu"; 105 compatible = "arm,cortex-a53"; 106 reg = <0x2>; 107 enable-method = "psci"; 108 clocks = <&ccu CLK_CPUX>; 109 operating-points-v2 = <&cpu_opp_table>; 110 cpu-idle-states = <&CPU_SLEEP>; 111 dynamic-power-coefficient = <202>; 112 #cooling-cells = <2>; 113 }; 114 115 cpu@3 { 116 device_type = "cpu"; 117 compatible = "arm,cortex-a53"; 118 reg = <0x3>; 119 enable-method = "psci"; 120 clocks = <&ccu CLK_CPUX>; 121 operating-points-v2 = <&cpu_opp_table>; 122 cpu-idle-states = <&CPU_SLEEP>; 123 dynamic-power-coefficient = <202>; 124 #cooling-cells = <2>; 125 }; 126 127 idle-states { 128 entry-method = "psci"; 129 130 CPU_SLEEP: cpu-sleep { 131 compatible = "arm,idle-state"; 132 local-timer-stop; 133 arm,psci-suspend-param = <0x0010000>; 134 entry-latency-us = <46>; 135 exit-latency-us = <59>; 136 min-residency-us = <3570>; 137 }; 138 }; 139 }; 140 141 cpu_opp_table: cpu-opp-table { 142 compatible = "allwinner,sun50i-operating-points"; 143 nvmem-cells = <&speedbin_efuse>; 144 nvmem-cell-names = "speed"; 145 opp-shared; 146 147 opp@480000000 { 148 opp-hz = /bits/ 64 <480000000>; 149 opp-microvolt-a0 = <900000>; 150 opp-microvolt-a1 = <900000>; 151 clock-latency-ns = <244144>; /* 8 32k periods */ 152 opp-supported-hw = <0x11>; 153 }; 154 155 opp@600000000 { 156 opp-hz = /bits/ 64 <600000000>; 157 opp-microvolt-a1 = <900000>; 158 clock-latency-ns = <244144>; /* 8 32k periods */ 159 opp-supported-hw = <0x1>; 160 }; 161 162 opp@720000000 { 163 opp-hz = /bits/ 64 <720000000>; 164 opp-microvolt-a0 = <900000>; 165 clock-latency-ns = <244144>; /* 8 32k periods */ 166 opp-supported-hw = <0x10>; 167 }; 168 169 opp@792000000 { 170 opp-hz = /bits/ 64 <792000000>; 171 opp-microvolt-a1 = <900000>; 172 clock-latency-ns = <244144>; /* 8 32k periods */ 173 opp-supported-hw = <0x1>; 174 }; 175 176 opp@936000000 { 177 opp-hz = /bits/ 64 <936000000>; 178 opp-microvolt-a0 = <900000>; 179 clock-latency-ns = <244144>; /* 8 32k periods */ 180 opp-supported-hw = <0x10>; 181 }; 182 183 opp@1008000000 { 184 opp-hz = /bits/ 64 <1008000000>; 185 opp-microvolt-a0 = <950000>; 186 opp-microvolt-a1 = <900000>; 187 clock-latency-ns = <244144>; /* 8 32k periods */ 188 opp-supported-hw = <0x11>; 189 }; 190 191 opp@1104000000 { 192 opp-hz = /bits/ 64 <1104000000>; 193 opp-microvolt-a0 = <1000000>; 194 clock-latency-ns = <244144>; /* 8 32k periods */ 195 opp-supported-hw = <0x10>; 196 }; 197 198 opp@1200000000 { 199 opp-hz = /bits/ 64 <1200000000>; 200 opp-microvolt-a0 = <1050000>; 201 opp-microvolt-a1 = <960000>; 202 clock-latency-ns = <244144>; /* 8 32k periods */ 203 opp-supported-hw = <0x11>; 204 }; 205 206 opp@1320000000 { 207 opp-hz = /bits/ 64 <1320000000>; 208 opp-microvolt-a0 = <1100000>; 209 clock-latency-ns = <244144>; /* 8 32k periods */ 210 opp-supported-hw = <0x10>; 211 }; 212 213 opp@1416000000 { 214 opp-hz = /bits/ 64 <1416000000>; 215 opp-microvolt-a0 = <1150000>; 216 clock-latency-ns = <244144>; /* 8 32k periods */ 217 opp-supported-hw = <0x10>; 218 }; 219 220 opp@1512000000 { 221 opp-hz = /bits/ 64 <1512000000>; 222 opp-microvolt-a1 = <1100000>; 223 clock-latency-ns = <244144>; /* 8 32k periods */ 224 opp-supported-hw = <0x1>; 225 }; 226 }; 227 228 dump_reg: dump-reg@20000 { 229 compatible = "allwinner,sunxi-dump-reg"; 230 reg = <0x0 0x00020000 0x0 0x0004>; 231 }; 232 233 psci { 234 compatible = "arm,psci-1.0"; 235 method = "smc"; 236 }; 237 238 iosc: internal-osc-clk { 239 #clock-cells = <0>; 240 compatible = "fixed-clock"; 241 clock-frequency = <16000000>; 242 clock-accuracy = <300000000>; 243 clock-output-names = "iosc"; 244 }; 245 246 dcxo24M: dcxo24M-clk { 247 #clock-cells = <0>; 248 compatible = "fixed-clock"; 249 clock-frequency = <24000000>; 250 clock-output-names = "dcxo24M"; 251 }; 252 253 osc32k: osc32k-clk { 254 #clock-cells = <0>; 255 compatible = "fixed-clock"; 256 clock-frequency = <32768>; 257 clock-output-names = "osc32k"; 258 }; 259 260 gic: interrupt-controller@3021000 { 261 compatible = "arm,cortex-a15-gic", "arm,cortex-a9-gic"; 262 #interrupt-cells = <3>; 263 #address-cells = <0>; 264 interrupt-controller; 265 reg = <0x0 0x03021000 0 0x1000>, /* GIC Dist */ 266 <0x0 0x03022000 0 0x2000>, /* GIC CPU */ 267 <0x0 0x03024000 0 0x2000>, /* GIC VCPU Control */ 268 <0x0 0x03026000 0 0x2000>; /* GIC VCPU */ 269 interrupts = <GIC_PPI 9 0xf04>; /* GIC Maintenence IRQ */ 270 interrupt-parent = <&gic>; 271 }; 272 273 wakeupgen: interrupt-controller@0 { 274 compatible = "allwinner,sunxi-wakeupgen"; 275 interrupt-controller; 276 #interrupt-cells = <3>; 277 interrupt-parent = <&gic>; 278 }; 279 280 timer_arch { 281 compatible = "arm,armv8-timer"; 282 interrupts = <GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>, 283 <GIC_PPI 14 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>, 284 <GIC_PPI 11 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>, 285 <GIC_PPI 10 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>; 286 clock-frequency = <24000000>; 287 interrupt-parent = <&gic>; 288 arm,no-tick-in-suspend; 289 }; 290 291 reg_pio1_8: pio-18 { 292 compatible = "regulator-fixed"; 293 regulator-name = "pio-18"; 294 regulator-min-microvolt = <1800000>; 295 regulator-max-microvolt = <1800000>; 296 }; 297 298 reg_pio3_3: pio-33 { 299 compatible = "regulator-fixed"; 300 regulator-name = "pio-33"; 301 regulator-min-microvolt = <3300000>; 302 regulator-max-microvolt = <3300000>; 303 }; 304 305 soc: soc@3000000 { 306 compatible = "simple-bus"; 307 #address-cells = <2>; 308 #size-cells = <2>; 309 ranges; 310 311 vind0:vind@6600800 { 312 compatible = "allwinner,sunxi-vin-media", "simple-bus"; 313 #address-cells = <2>; 314 #size-cells = <2>; 315 ranges; 316 device_id = <0>; 317 csi_top = <324000000>; 318 reg = <0x0 0x06600800 0x0 0x200>, 319 <0x0 0x06600000 0x0 0x800>; 320 clocks = <&ccu CLK_CSI_TOP>, <&ccu CLK_PLL_CSI>, 321 <&ccu CLK_CSI0_MCLK>, <&dcxo24M>, <&ccu CLK_PLL_CSI>, 322 <&ccu CLK_CSI1_MCLK>, <&dcxo24M>, <&ccu CLK_PLL_CSI>, 323 <&ccu CLK_BUS_CSI>, <&ccu CLK_MBUS_CSI>; 324 clock-names = "csi_top", "csi_top_src", 325 "csi_mclk0", "csi_mclk0_24m", "csi_mclk0_pll", 326 "csi_mclk1", "csi_mclk1_24m", "csi_mclk1_pll", 327 "csi_bus", "csi_mbus"; 328 resets = <&ccu RST_BUS_CSI>; 329 reset-names = "csi_ret"; 330 pinctrl-names = "mclk0-default","mclk0-sleep","mclk1-default","mclk1-sleep"; 331 pinctrl-0 = <&csi_mclk0_pins_a>; 332 pinctrl-1 = <&csi_mclk0_pins_b>; 333 pinctrl-2 = <&csi_mclk1_pins_a>; 334 pinctrl-3 = <&csi_mclk1_pins_b>; 335 status = "okay"; 336 337 csi_cci0:cci@6614000 { 338 compatible = "allwinner,sunxi-csi_cci"; 339 reg = <0x0 0x06614000 0x0 0x400>; 340 interrupts = <GIC_SPI 75 IRQ_TYPE_LEVEL_HIGH>; 341 pinctrl-names = "default","sleep"; 342 pinctrl-0 = <&csi_cci0_pins_a>; 343 pinctrl-1 = <&csi_cci0_pins_b>; 344 device_id = <0>; 345 status = "okay"; 346 }; 347 csi_cci1:cci@6614400 { 348 compatible = "allwinner,sunxi-csi_cci"; 349 reg = <0x0 0x06614400 0x0 0x400>; 350 interrupts = <GIC_SPI 76 IRQ_TYPE_LEVEL_HIGH>; 351 pinctrl-names = "default","sleep"; 352 pinctrl-0 = <&csi_cci1_pins_a>; 353 pinctrl-1 = <&csi_cci1_pins_b>; 354 device_id = <1>; 355 status = "okay"; 356 }; 357 csi0:csi@6601000 { 358 device_type = "csi0"; 359 compatible = "allwinner,sunxi-csi"; 360 reg = <0x0 0x06601000 0x0 0x1000>; 361 interrupts = <GIC_SPI 73 IRQ_TYPE_LEVEL_HIGH>; 362 device_id = <0>; 363 iommus = <&mmu_aw 4 1>; 364 status = "okay"; 365 }; 366 csi1:csi@6602000 { 367 device_type = "csi1"; 368 compatible = "allwinner,sunxi-csi"; 369 reg = <0x0 0x06602000 0x0 0x1000>; 370 interrupts = <GIC_SPI 74 IRQ_TYPE_LEVEL_HIGH>; 371 pinctrl-names = "default","sleep"; 372 pinctrl-0 = <&csi1_pins_a>; 373 pinctrl-1 = <&csi1_pins_b>; 374 device_id = <1>; 375 iommus = <&mmu_aw 4 1>; 376 status = "disabled"; 377 }; 378 mipi0:mipi@660c000 { 379 compatible = "allwinner,sunxi-mipi"; 380 reg = <0x0 0x0660C000 0x0 0x1000>; 381 interrupts = <GIC_SPI 77 IRQ_TYPE_LEVEL_HIGH>; 382 device_id = <0>; 383 status = "okay"; 384 }; 385 isp0:isp@6614810 { 386 compatible = "allwinner,sunxi-isp"; 387 reg = <0x0 0x06614810 0x0 0x10>; 388 device_id = <0xfe>; 389 status = "okay"; 390 }; 391 isp1:isp@6614820 { 392 compatible = "allwinner,sunxi-isp"; 393 reg = <0x0 0x06614820 0x0 0x10>; 394 device_id = <0xff>; 395 status = "okay"; 396 }; 397 scaler0:scaler@6614830 { 398 compatible = "allwinner,sunxi-scaler"; 399 reg = <0x0 0x06614830 0x0 0x10>; 400 device_id = <0xfa>; 401 iommus = <&mmu_aw 4 1>; 402 status = "okay"; 403 }; 404 scaler1:scaler@6614840 { 405 compatible = "allwinner,sunxi-scaler"; 406 reg = <0x0 0x06614840 0x0 0x10>; 407 device_id = <0xfb>; 408 iommus = <&mmu_aw 4 1>; 409 status = "okay"; 410 }; 411 scaler2:scaler@6614850 { 412 compatible = "allwinner,sunxi-scaler"; 413 reg = <0x0 0x06614850 0x0 0x10>; 414 device_id = <0xfc>; 415 iommus = <&mmu_aw 4 1>; 416 status = "okay"; 417 }; 418 scaler3:scaler@6614860 { 419 compatible = "allwinner,sunxi-scaler"; 420 reg = <0x0 0x06614860 0x0 0x10>; 421 device_id = <0xfd>; 422 iommus = <&mmu_aw 4 1>; 423 status = "okay"; 424 }; 425 scaler4:scaler@6614870 { 426 compatible = "allwinner,sunxi-scaler"; 427 reg = <0x0 0x06614870 0x0 0x10>; 428 device_id = <0xfe>; 429 iommus = <&mmu_aw 4 1>; 430 status = "okay"; 431 }; 432 scaler5:scaler@6614880 { 433 compatible = "allwinner,sunxi-scaler"; 434 reg = <0x0 0x06614880 0x0 0x10>; 435 device_id = <0xff>; 436 iommus = <&mmu_aw 4 1>; 437 status = "okay"; 438 }; 439 actuator0:actuator@6614890 { 440 reg = <0x0 0x06614890 0x0 0x10>; 441 device_type = "actuator0"; 442 compatible = "allwinner,sunxi-actuator"; 443 actuator0_name = "ad5820_act"; 444 actuator0_slave = <0x18>; 445 actuator0_af_pwdn = <>; 446 actuator0_afvdd = "afvcc-csi"; 447 actuator0_afvdd_vol = <2800000>; 448 status = "disabled"; 449 }; 450 flash0:flash@66148a0 { 451 reg = <0x0 0x066148a0 0x0 0x10>; 452 device_type = "flash0"; 453 compatible = "allwinner,sunxi-flash"; 454 flash0_type = <2>; 455 flash0_en = <>; 456 flash0_mode = <>; 457 flash0_flvdd = ""; 458 flash0_flvdd_vol = <>; 459 device_id = <0>; 460 status = "disabled"; 461 }; 462 sensor0:sensor@66148b0 { 463 reg = <0x0 0x066148b0 0x0 0x10>; 464 device_type = "sensor0"; 465 compatible = "allwinner,sunxi-sensor"; 466 sensor0_mname = "rn6854m_mipi"; 467 sensor0_twi_cci_id = <0>; 468 sensor0_twi_addr = <0x58>; 469 sensor0_mclk_id = <0>; 470 sensor0_pos = "rear"; 471 sensor0_isp_used = <0>; 472 sensor0_fmt = <0>; 473 sensor0_stby_mode = <0>; 474 sensor0_vflip = <0>; 475 sensor0_hflip = <0>; 476 sensor0_cameravdd-supply = <>; 477 sensor0_cameravdd_vol = <>; 478 sensor0_reservevdd-supply = <>; 479 sensor0_reservevdd_vol = <>; 480 sensor0_iovdd-supply = <>; 481 sensor0_iovdd_vol = <>; 482 sensor0_avdd-supply = <>; 483 sensor0_avdd_vol = <>; 484 sensor0_dvdd-supply = <>; 485 sensor0_dvdd_vol = <>; 486 sensor0_power_en = <>; 487 sensor0_reset = <&pio PI 13 GPIO_ACTIVE_LOW>; 488 sensor0_pwdn = <&pio PI 14 GPIO_ACTIVE_LOW>; 489 sensor0_sm_vs = <>; 490 flash_handle = <&flash0>; 491 act_handle = <&actuator0>; 492 device_id = <0>; 493 status = "okay"; 494 }; 495 sensor1:sensor@66148c0 { 496 reg = <0x0 0x066148c0 0x0 0x10>; 497 device_type = "sensor1"; 498 compatible = "allwinner,sunxi-sensor"; 499 sensor1_mname = "nvp6158"; 500 sensor1_twi_cci_id = <1>; 501 sensor1_twi_addr = <0x64>; 502 sensor1_mclk_id = <1>; 503 sensor1_pos = "front"; 504 sensor1_isp_used = <0>; 505 sensor1_fmt = <0>; 506 sensor1_stby_mode = <0>; 507 sensor1_vflip = <0>; 508 sensor1_hflip = <0>; 509 sensor1_cameravdd-supply = <>; 510 sensor1_cameravdd_vol = <>; 511 sensor1_reservevdd-supply = <>; 512 sensor1_reservevdd_vol = <>; 513 sensor1_iovdd-supply = <>; 514 sensor1_iovdd_vol = <>; 515 sensor1_avdd-supply = <>; 516 sensor1_avdd_vol = <>; 517 sensor1_dvdd-supply = <>; 518 sensor1_dvdd_vol = <>; 519 sensor1_power_en = <>; 520 sensor1_reset = <&pio PI 12 GPIO_ACTIVE_LOW>; 521 sensor1_pwdn = <&pio PI 14 GPIO_ACTIVE_LOW>; 522 sensor1_sm_vs = <>; 523 flash_handle = <>; 524 act_handle = <>; 525 device_id = <1>; 526 status = "okay"; 527 }; 528 vinc0:vinc@6609000 { 529 device_type = "vinc0"; 530 compatible = "allwinner,sunxi-vin-core"; 531 reg = <0x0 0x06609000 0x0 0x200>; 532 interrupts = <GIC_SPI 69 IRQ_TYPE_LEVEL_HIGH>; 533 vinc0_csi_sel = <0>; 534 vinc0_mipi_sel = <0>; 535 vinc0_isp_sel = <0>; 536 vinc0_isp_tx_ch = <0>; 537 vinc0_rear_sensor_sel = <0>; 538 vinc0_front_sensor_sel = <0>; 539 vinc0_sensor_list = <0>; 540 device_id = <0>; 541 iommus = <&mmu_aw 4 1>; 542 status = "okay"; 543 }; 544 vinc1:vinc@6609200 { 545 device_type = "vinc1"; 546 compatible = "allwinner,sunxi-vin-core"; 547 reg = <0x0 0x06609200 0x0 0x200>; 548 interrupts = <GIC_SPI 70 IRQ_TYPE_LEVEL_HIGH>; 549 vinc1_csi_sel = <0>; 550 vinc1_mipi_sel = <0>; 551 vinc1_isp_sel = <0>; 552 vinc1_isp_tx_ch = <1>; 553 vinc1_rear_sensor_sel = <0>; 554 vinc1_front_sensor_sel = <0>; 555 vinc1_sensor_list = <0>; 556 device_id = <1>; 557 iommus = <&mmu_aw 4 1>; 558 status = "okay"; 559 }; 560 vinc2:vinc@6609400 { 561 device_type = "vinc2"; 562 compatible = "allwinner,sunxi-vin-core"; 563 reg = <0x0 0x06609400 0x0 0x200>; 564 interrupts = <GIC_SPI 71 IRQ_TYPE_LEVEL_HIGH>; 565 vinc2_csi_sel = <1>; 566 vinc2_mipi_sel = <0xff>; 567 vinc2_isp_sel = <1>; 568 vinc2_isp_tx_ch = <0>; 569 vinc2_rear_sensor_sel = <1>; 570 vinc2_front_sensor_sel = <1>; 571 vinc2_sensor_list = <0>; 572 device_id = <2>; 573 iommus = <&mmu_aw 4 1>; 574 status = "okay"; 575 }; 576 vinc3:vinc@6609600 { 577 device_type = "vinc3"; 578 compatible = "allwinner,sunxi-vin-core"; 579 reg = <0x0 0x06609600 0x0 0x200>; 580 interrupts = <GIC_SPI 72 IRQ_TYPE_LEVEL_HIGH>; 581 vinc3_csi_sel = <1>; 582 vinc3_mipi_sel = <0xff>; 583 vinc3_isp_sel = <1>; 584 vinc3_isp_tx_ch = <1>; 585 vinc3_rear_sensor_sel = <1>; 586 vinc3_front_sensor_sel = <1>; 587 vinc3_sensor_list = <0>; 588 device_id = <3>; 589 iommus = <&mmu_aw 4 1>; 590 status = "okay"; 591 }; 592 vinc4:vinc@6609800 { 593 device_type = "vinc4"; 594 compatible = "allwinner,sunxi-vin-core"; 595 reg = <0x0 0x06609800 0x0 0x200>; 596 interrupts = <GIC_SPI 79 IRQ_TYPE_LEVEL_HIGH>; 597 vinc4_csi_sel = <1>; 598 vinc4_mipi_sel = <0xff>; 599 vinc4_isp_sel = <1>; 600 vinc4_isp_tx_ch = <2>; 601 vinc4_rear_sensor_sel = <1>; 602 vinc4_front_sensor_sel = <1>; 603 vinc4_sensor_list = <0>; 604 device_id = <4>; 605 iommus = <&mmu_aw 5 1>; 606 status = "okay"; 607 }; 608 vinc5:vinc@6609A00 { 609 device_type = "vinc5"; 610 compatible = "allwinner,sunxi-vin-core"; 611 reg = <0x0 0x06609A00 0x0 0x200>; 612 interrupts = <GIC_SPI 80 IRQ_TYPE_LEVEL_HIGH>; 613 vinc5_csi_sel = <1>; 614 vinc5_mipi_sel = <0xff>; 615 vinc5_isp_sel = <1>; 616 vinc5_isp_tx_ch = <3>; 617 vinc5_rear_sensor_sel = <1>; 618 vinc5_front_sensor_sel = <1>; 619 vinc5_sensor_list = <0>; 620 device_id = <5>; 621 iommus = <&mmu_aw 5 1>; 622 status = "okay"; 623 }; 624 }; 625 626 disp: disp@1000000 { 627 compatible = "allwinner,sunxi-disp"; 628 reg = <0x0 0x01000000 0x0 0x01400000>, /*de*/ 629 <0x0 0x06510000 0x0 0x200>, /* display_if_top */ 630 <0x0 0x06511000 0x0 0x1000>, /* tcon_lcd0 */ 631 <0x0 0x06512000 0x0 0x1000>, /* tcon_lcd1 */ 632 <0x0 0x06515000 0x0 0x1000>, /* tcon_tv0 */ 633 <0x0 0x06516000 0x0 0x1000>; /* tcon_tv1 */ 634 interrupts = <GIC_SPI 88 IRQ_TYPE_LEVEL_HIGH>, /* DE */ 635 <GIC_SPI 64 IRQ_TYPE_LEVEL_HIGH>, /* tcon_lcd0 */ 636 <GIC_SPI 65 IRQ_TYPE_LEVEL_HIGH>, /* tcon_lcd1 */ 637 <GIC_SPI 66 IRQ_TYPE_LEVEL_HIGH>, /* tcon_tv0 */ 638 <GIC_SPI 67 IRQ_TYPE_LEVEL_HIGH>; /* tcon_tv1 */ 639 clocks = <&ccu CLK_DE>, 640 <&ccu CLK_DE>, 641 <&ccu CLK_BUS_DE>, 642 <&ccu CLK_BUS_DE>, 643 <&ccu CLK_TCON_LCD0>, 644 <&ccu CLK_TCON_LCD1>, 645 <&ccu CLK_TCON_TV0>, 646 <&ccu CLK_TCON_TV1>, 647 <&ccu CLK_BUS_TCON_LCD0>, 648 <&ccu CLK_BUS_TCON_LCD1>, 649 <&ccu CLK_BUS_TCON_TV0>, 650 <&ccu CLK_BUS_TCON_TV1>, 651 <&ccu CLK_BUS_DISPLAY_IF_TOP>, 652 <&ccu CLK_BUS_DISPLAY_IF_TOP>, 653 <&ccu CLK_BUS_DISPLAY_IF_TOP>, 654 <&ccu CLK_BUS_DISPLAY_IF_TOP>; 655 clock-names = "clk_de0", 656 "clk_de1", 657 "clk_bus_de0", 658 "clk_bus_de1", 659 "clk_tcon0", /* tcon lcd */ 660 "clk_tcon1", 661 "clk_tcon2", /* tcon tv */ 662 "clk_tcon3", 663 "clk_bus_tcon0", 664 "clk_bus_tcon1", 665 "clk_bus_tcon2", 666 "clk_bus_tcon3", 667 "clk_bus_dpss_top0", 668 "clk_bus_dpss_top1", 669 "clk_bus_dpss_top2", 670 "clk_bus_dpss_top3"; 671 resets = <&ccu RST_BUS_DE>, 672 <&ccu RST_BUS_DE>, 673 <&ccu RST_BUS_TCON_LCD0>, 674 <&ccu RST_BUS_TCON_LCD1>, 675 <&ccu RST_BUS_TCON_TV0>, 676 <&ccu RST_BUS_TCON_TV1>, 677 <&ccu RST_BUS_LVDS>, 678 <&ccu RST_BUS_LVDS>, 679 <&ccu RST_BUS_DISPLAY_IF_TOP>, 680 <&ccu RST_BUS_DISPLAY_IF_TOP>, 681 <&ccu RST_BUS_DISPLAY_IF_TOP>, 682 <&ccu RST_BUS_DISPLAY_IF_TOP>; 683 reset-names = "rst_bus_de0", 684 "rst_bus_de1", 685 "rst_bus_tcon0", 686 "rst_bus_tcon1", 687 "rst_bus_tcon2", 688 "rst_bus_tcon3", 689 "rst_bus_lvds0", 690 "rst_bus_lvds1", 691 "rst_bus_dpss_top0", 692 "rst_bus_dpss_top1", 693 "rst_bus_dpss_top2", 694 "rst_bus_dpss_top3"; 695 assigned-clocks = <&ccu CLK_TCON_TV0>; 696 assigned-clock-parents = <&ccu CLK_PLL_VIDEO2>; 697 assigned-clock-rates = <0>; 698 iommus = <&mmu_aw 0 0>; 699 700 boot_disp = <0>; 701 fb_base = <0>; 702 }; 703 704 drm: drm@01000000 { 705 compatible = "allwinner,sunxi-drm"; 706 fb_base = <0>; 707 iommus = <&mmu_aw 0 0>; /* 1:enable iommu */ 708 status = "okay"; 709 }; 710 711 drm_de: de@01000000 { 712 compatible = "allwinner,sunxi-de"; 713 reg = <0x0 0x01000000 0x0 0x01400000>;/*de*/ 714 interrupts = <GIC_SPI 88 IRQ_TYPE_LEVEL_HIGH>; /*DE*/ 715 clocks = <&ccu CLK_DE>, 716 <&ccu CLK_BUS_DE>; 717 clock-names = "clk_de","clk_bus_de"; 718 resets = <&ccu RST_BUS_DE>; 719 reset-names = "rst_bus_de"; 720 chn_cfg_mode = <1>; 721 status = "okay"; 722 }; 723 724 drm_tcon: tcon@06511000 { 725 compatible = "allwinner,sunxi-tcon"; 726 reg = <0x0 0x06510000 0x0 0x200>,/*disp_if_top*/ 727 <0x0 0x06511000 0x0 0x1000>,/*tcon_lcd0*/ 728 <0x0 0x06512000 0x0 0x1000>,/*tcon_lcd1*/ 729 <0x0 0x06515000 0x0 0x1000>,/*tcon_tv0*/ 730 <0x0 0x06516000 0x0 0x1000>;/*tcon_tv1*/ 731 interrupts = 732 <GIC_SPI 64 IRQ_TYPE_LEVEL_HIGH>, /*tcon_lcd0*/ 733 <GIC_SPI 65 IRQ_TYPE_LEVEL_HIGH>, /*tcon_lcd1*/ 734 <GIC_SPI 66 IRQ_TYPE_LEVEL_HIGH>, /*tcon_tv0*/ 735 <GIC_SPI 67 IRQ_TYPE_LEVEL_HIGH>; /*tcon_tv1*/ 736 clocks = <&ccu CLK_BUS_DISPLAY_IF_TOP>, 737 <&ccu CLK_TCON_LCD0>, 738 <&ccu CLK_TCON_LCD1>, 739 <&ccu CLK_TCON_TV0>, 740 <&ccu CLK_TCON_TV1>, 741 <&ccu CLK_BUS_TCON_LCD0>, 742 <&ccu CLK_BUS_TCON_LCD1>, 743 <&ccu CLK_BUS_TCON_TV0>, 744 <&ccu CLK_BUS_TCON_TV1>; 745 clock-names = "clk_bus_dpss_top0", 746 "clk_tcon0", /* tcon lcd */ 747 "clk_tcon1", 748 "clk_tcon2", /* tcon tv */ 749 "clk_tcon3", 750 "clk_bus_tcon0", 751 "clk_bus_tcon1", 752 "clk_bus_tcon2", 753 "clk_bus_tcon3"; 754 resets = <&ccu RST_BUS_DISPLAY_IF_TOP>, 755 <&ccu RST_BUS_TCON_LCD0>, 756 <&ccu RST_BUS_TCON_LCD1>, 757 <&ccu RST_BUS_TCON_TV0>, 758 <&ccu RST_BUS_TCON_TV1>; 759 reset-names = "rst_bus_dpss_top", 760 "rst_bus_tcon0", 761 "rst_bus_tcon1", 762 "rst_bus_tcon2", 763 "rst_bus_tcon3"; 764 status = "okay"; 765 }; 766 767 lcdcore: lcd-core@01c0c000 { 768 compatible = "allwinner,sunxi-lcd"; 769 resets = <&ccu RST_BUS_LVDS>; 770 reset-names = "rst_bus_lvds"; 771 status = "okay"; 772 }; 773 774 ve: ve@1c0e000 { 775 compatible = "allwinner,sunxi-cedar-ve"; 776 reg = <0x0 0x01c0e000 0x0 0x1000>, 777 <0x0 0x03000000 0x0 0x10>, 778 <0x0 0x03001000 0x0 0x1000>; 779 interrupts = <GIC_SPI 93 IRQ_TYPE_LEVEL_HIGH>; 780 clocks = <&ccu CLK_BUS_VE>, <&ccu CLK_VE>, <&ccu CLK_MBUS_VE>; 781 clock-names = "bus_ve", "ve", "mbus_ve"; 782 resets = <&ccu RST_BUS_VE>; 783 iommus = <&mmu_aw 3 1>; 784 }; 785 786 ve1: ve1@1c0e000 { 787 compatible = "allwinner,sunxi-cedar-ve"; 788 iommus = <&mmu_aw 2 1>; 789 }; 790 791 792 g2d: g2d@1480000 { 793 compatible = "allwinner,sunxi-g2d"; 794 reg = <0x0 0x01480000 0x0 0x3ffff>; 795 interrupts = <GIC_SPI 90 IRQ_TYPE_LEVEL_HIGH>; 796 clocks = <&ccu CLK_BUS_G2D>, <&ccu CLK_G2D>, 797 <&ccu CLK_MBUS_G2D>; 798 clock-names = "bus", "g2d", "mbus_g2d"; 799 resets = <&ccu RST_BUS_G2D>; 800 iommus = <&mmu_aw 6 1>; 801 }; 802 803 di:deinterlace@1420000{ 804 #address-cells = <1>; 805 #size-cells = <0>; 806 compatible = "allwinner,sunxi-deinterlace"; 807 reg = <0x0 0x01420000 0x0 0x040000>; 808 interrupts = <GIC_SPI 89 IRQ_TYPE_LEVEL_HIGH>; 809 iommus = <&mmu_aw 1 1>; 810 status = "okay"; 811 812 clocks = <&ccu CLK_DI>, 813 <&ccu CLK_BUS_DI>, 814 <&ccu CLK_PLL_PERIPH0_2X>; 815 clock-names = "clk_di", 816 "clk_bus_di", 817 "pll_periph"; 818 resets = <&ccu RST_BUS_DI>; 819 reset-names = "rst_bus_di"; 820 821 assigned-clocks = <&ccu CLK_DI>; 822 assigned-clock-parents = <&ccu CLK_PLL_PERIPH0_2X>; 823 assigned-clock-rates = <300000000>; 824 }; 825 826 gpu: gpu@1800000 { 827 device_type = "gpu"; 828 compatible = "arm,mali-bifrost"; 829 reg = <0x0 0x01800000 0x0 0x10000>; 830 interrupts = <GIC_SPI 95 IRQ_TYPE_LEVEL_HIGH>, 831 <GIC_SPI 96 IRQ_TYPE_LEVEL_HIGH>, 832 <GIC_SPI 97 IRQ_TYPE_LEVEL_HIGH>; 833 interrupt-names = "job", "mmu", "gpu"; 834 clocks = <&ccu CLK_PLL_GPU>, <&ccu CLK_GPU0>, 835 <&ccu CLK_GPU1>,<&ccu CLK_BUS_GPU>; 836 clock-names = "clk_parent", "clk_mali", 837 "clk_bak", "clk_bus"; 838 resets = <&ccu RST_BUS_GPU>; 839 reset-names = "rst_bus_gpu"; 840 #cooling-cells = <2>; 841 operating-points-v2 = <&gpu_opp_table>; 842 mali-supply = <®_dcdc4>; 843 ipa_dvfs:ipa_dvfs { 844 compatible = "arm,mali-simple-power-model"; 845 static-coefficient = <17000>; 846 dynamic-coefficient = <750>; 847 ts = <254682 9576 0xffffff98 4>; 848 thermal-zone = "gpu_thermal_zone"; 849 ss-coefficient = <36>; 850 ff-coefficient = <291>; 851 }; 852 }; 853 854 gpu_opp_table: gpu-opp-table { 855 compatible = "operating-points-v2"; 856 857 opp-420000000 { 858 opp-hz = /bits/ 64 <420000000>; 859 opp-microvolt = <820000>; 860 }; 861 opp-456000000 { 862 opp-hz = /bits/ 64 <456000000>; 863 opp-microvolt = <840000>; 864 }; 865 opp-504000000 { 866 opp-hz = /bits/ 64 <504000000>; 867 opp-microvolt = <860000>; 868 }; 869 opp-552000000 { 870 opp-hz = /bits/ 64 <552000000>; 871 opp-microvolt = <880000>; 872 }; 873 opp-600000000 { 874 opp-hz = /bits/ 64 <600000000>; 875 opp-microvolt = <900000>; 876 }; 877 opp-648000000 { 878 opp-hz = /bits/ 64 <648000000>; 879 opp-microvolt = <960000>; 880 }; 881 }; 882 883 lcd0: lcd0@1c0c000 { 884 compatible = "allwinner,sunxi-lcd0"; 885 /* Fake registers to avoid dtc compiling warnings */ 886 reg = <0x0 0x1c0c000 0x0 0x0>; 887 pinctrl-names = "active","sleep"; 888 }; 889 890 tv0: tv0@6520000 { 891 compatible = "allwinner,sunxi-tv"; 892 reg = <0x0 0x06520000 0x0 0x100>, 893 <0x0 0x06524000 0x0 0x3fc>; 894 clocks = <&ccu CLK_BUS_TVE_TOP>, 895 <&ccu CLK_TVE>, 896 <&ccu CLK_BUS_TVE>; 897 clock-names = "clk_bus_tve_top", 898 "clk_tve", 899 "clk_bus_tve"; 900 resets = <&ccu RST_BUS_TVE_TOP>, 901 <&ccu RST_BUS_TVE>; 902 reset-names = "rst_bus_tve_top", "rst_bus_tve"; 903 904 assigned-clocks = <&ccu CLK_TVE>; 905 assigned-clock-parents = <&ccu CLK_PLL_VIDEO1>; 906 nvmem-cells = <&tvout>; 907 nvmem-cell-names = "tvout"; 908 909 device_type = "tv0"; 910 pinctrl-names = "active","sleep"; 911 status = "okay"; 912 }; 913 914 ccu: ccu@3001000 { 915 compatible = "allwinner,sun50iw9-ccu"; 916 reg = <0x0 0x03001000 0x0 0x1000>; 917 clocks = <&dcxo24M>, <&osc32k>, <&iosc>; 918 clock-names = "hosc", "losc", "iosc"; 919 #clock-cells = <1>; 920 #reset-cells = <1>; 921 }; 922 923 rtc_ccu: rtc_ccu@7000000 { 924 compatible = "allwinner,sun50iw9-rtc-ccu"; 925 reg = <0x0 0x07000000 0x0 0x400>; 926 #clock-cells = <1>; 927 clocks = <&osc32k>; 928 clock-names = "losc"; 929 #reset-cells = <1>; 930 }; 931 932 rtc: rtc@7000000 { 933 compatible = "allwinner,rtc-v200"; 934 device_type = "rtc"; 935 wakeup-source; 936 reg = <0x0 0x07000000 0x0 0x200>; 937 interrupts = <GIC_SPI 104 IRQ_TYPE_LEVEL_HIGH>; 938 clocks = <&r_ccu CLK_R_AHB_BUS_RTC>, <&rtc_ccu CLK_RTC_1K>; 939 clock-names = "r-ahb-rtc","rtc-1k"; 940 gpr_cur_pos = <6>; 941 }; 942 943 r_ccu: r_ccu@7010000 { 944 compatible = "allwinner,sun50iw9-r-ccu"; 945 reg = <0x0 0x07010000 0x0 0x300>; 946 /* have no irq line */ 947 clocks = <&dcxo24M>, <&osc32k>, <&iosc>, 948 <&ccu CLK_PLL_PERIPH0>; 949 clock-names = "hosc", "losc", "iosc", "pll-periph"; 950 #clock-cells = <1>; 951 #reset-cells = <1>; 952 }; 953 954 dma: dma-controller@3002000 { 955 compatible = "allwinner,sun50iw9-dma"; 956 reg = <0x0 0x03002000 0x0 0x1000>; 957 interrupts = <GIC_SPI 42 IRQ_TYPE_LEVEL_HIGH>; 958 clocks = <&ccu CLK_BUS_DMA>, <&ccu CLK_MBUS_DMA>; 959 clock-names = "bus", "mbus"; 960 dma-channels = <16>; 961 dma-requests = <49>; 962 resets = <&ccu RST_BUS_DMA>; 963 #dma-cells = <1>; 964 }; 965 966 sram_ctrl: sram_ctrl@3000000 { 967 compatible = "allwinner,sram_ctrl"; 968 reg = <0x0 0x3000000 0 0x16C>; 969 soc_ver { 970 offset = <0x24>; 971 mask = <0x7>; 972 shift = <0>; 973 }; 974 975 soc_id { 976 offset = <0x200>; 977 mask = <0x1>; 978 shift = <22>; 979 }; 980 981 soc_bin { 982 offset = <0x0>; 983 mask = <0x3ff>; 984 shift = <0x0>; 985 }; 986 987 }; 988 989 sid@3006000 { 990 compatible = "allwinner,sun50iw9p1-sid", "allwinner,sunxi-sid"; 991 reg = <0x0 0x03006000 0 0x1000>; 992 #address-cells = <1>; 993 #size-cells = <1>; 994 995 speedbin_efuse: speed@00 { 996 reg = <0x0 2>; 997 }; 998 999 ths_calib: calib@14 { 1000 reg = <0x14 8>; 1001 }; 1002 1003 tvout: tvout@2e { 1004 reg = <0x2c 8>; 1005 }; 1006 1007 i_cpu_efuse: i-cpu@28 { 1008 reg = <0x28 2>; 1009 }; 1010 1011 /* some guys has nothing to do with nvmem */ 1012 secure_status { 1013 reg = <0x0 0>; 1014 offset = <0xa0>; 1015 size = <0x4>; 1016 }; 1017 1018 chipid { 1019 reg = <0x0 0>; 1020 offset = <0x200>; 1021 size = <0x10>; 1022 }; 1023 1024 rotpk { 1025 reg = <0x0 0>; 1026 offset = <0x270>; 1027 size = <0x20>; 1028 }; 1029 }; 1030 1031 cryptoengine: ce@1904000 { 1032 compatible = "allwinner,sunxi-ce"; 1033 device_name = "ce"; 1034 reg = <0x0 0x01904000 0x0 0xa0>, /* non-secure space */ 1035 <0x0 0x01904800 0x0 0xa0>; /* secure space */ 1036 interrupts = <GIC_SPI 91 IRQ_TYPE_EDGE_RISING>, /*non-secure*/ 1037 <GIC_SPI 92 IRQ_TYPE_EDGE_RISING>; /* secure*/ 1038 clock-frequency = <300000000>; /* 300MHz */ 1039 clocks = <&ccu CLK_BUS_CE>, <&ccu CLK_CE>, <&ccu CLK_MBUS_CE>, 1040 <&ccu CLK_PLL_PERIPH0_2X>; 1041 clock-names = "bus_ce", "ce_clk", "mbus_ce", "pll_periph0_2x"; 1042 resets = <&ccu RST_BUS_CE>; 1043 }; 1044 1045 soc_timer0: timer@3009000 { 1046 compatible = "allwinner,sun4i-a10-timer"; 1047 device_type = "soc_timer"; 1048 /* 1049 * FIXME: After using sunxi timer driver, the number 1050 * of CPU entering idle becomes less? 1051 * "allwinner,sunxi-timer"; 1052 */ 1053 reg = <0x0 0x03009000 0x0 0x400>; 1054 interrupt-parent = <&gic>; 1055 interrupts = <GIC_SPI 48 IRQ_TYPE_LEVEL_HIGH>; 1056 clocks = <&dcxo24M>; 1057 }; 1058 1059 wdt: watchdog@30090a0 { 1060 compatible = "allwinner,sun6i-a31-wdt"; 1061 reg = <0x0 0x030090a0 0x0 0x20>; 1062 interrupts = <GIC_SPI 50 IRQ_TYPE_LEVEL_HIGH>; 1063 }; 1064 1065 pwm: pwm@300a000 { 1066 compatible = "allwinner,sunxi-pwm-v100"; 1067 reg = <0x0 0x0300a000 0x0 0x400>; 1068 clocks = <&ccu CLK_BUS_PWM>; 1069 resets = <&ccu RST_BUS_PWM>; 1070 pwm-number = <6>; 1071 pwm-base = <0>; 1072 sunxi-pwms = <&pwm0>, <&pwm1>, <&pwm2>, <&pwm3>, 1073 <&pwm4>, <&pwm5>; 1074 }; 1075 1076 pwm0: pwm0@300a010 { 1077 compatible = "allwinner,sunxi-pwm0"; 1078 reg = <0x0 0x0300a010 0x0 0x4>; 1079 reg_base = <0x0300a000>; 1080 }; 1081 1082 pwm1: pwm1@300a011 { 1083 compatible = "allwinner,sunxi-pwm1"; 1084 reg = <0x0 0x0300a011 0x0 0x4>; 1085 reg_base = <0x0300a000>; 1086 }; 1087 1088 pwm2: pwm2@300a012 { 1089 compatible = "allwinner,sunxi-pwm2"; 1090 reg = <0x0 0x0300a012 0x0 0x4>; 1091 reg_base = <0x0300a000>; 1092 }; 1093 1094 pwm3: pwm3@300a013 { 1095 compatible = "allwinner,sunxi-pwm3"; 1096 reg = <0x0 0x0300a013 0x0 0x4>; 1097 reg_base = <0x0300a000>; 1098 }; 1099 1100 pwm4: pwm4@300a014 { 1101 compatible = "allwinner,sunxi-pwm4"; 1102 reg = <0x0 0x0300a014 0x0 0x4>; 1103 reg_base = <0x0300a000>; 1104 }; 1105 1106 pwm5: pwm5@300a015 { 1107 compatible = "allwinner,sunxi-pwm5"; 1108 reg = <0x0 0x0300a015 0x0 0x4>; 1109 reg_base = <0x0300a000>; 1110 }; 1111 1112 ac200: ac200{ 1113 compatible = "allwinner,sunxi-ac200"; 1114 status = "okay"; 1115 }; 1116 1117 pio: pinctrl@300b000 { 1118 compatible = "allwinner,sun50iw9-pinctrl"; 1119 reg = <0x0 0x0300b000 0x0 0x400>; 1120 interrupts = <GIC_SPI 51 IRQ_TYPE_LEVEL_HIGH>, 1121 <GIC_SPI 52 IRQ_TYPE_LEVEL_HIGH>, 1122 <GIC_SPI 53 IRQ_TYPE_LEVEL_HIGH>, 1123 <GIC_SPI 43 IRQ_TYPE_LEVEL_HIGH>, 1124 <GIC_SPI 54 IRQ_TYPE_LEVEL_HIGH>, 1125 <GIC_SPI 55 IRQ_TYPE_LEVEL_HIGH>, 1126 <GIC_SPI 56 IRQ_TYPE_LEVEL_HIGH>, 1127 <GIC_SPI 57 IRQ_TYPE_LEVEL_HIGH>; 1128 clocks = <&ccu CLK_APB1>, <&dcxo24M>, <&osc32k>; 1129 clock-names = "apb", "hosc", "losc"; 1130 gpio-controller; 1131 #gpio-cells = <3>; 1132 interrupt-controller; 1133 #interrupt-cells = <3>; 1134 vcc-pf-supply = <®_pio1_8>; 1135 vcc-pfo-supply = <®_pio3_3>; 1136 1137 uart0_ph_pins: uart0-ph-pins { 1138 pins = "PH0", "PH1"; 1139 function = "uart0"; 1140 }; 1141 1142 uart0_ph_sleep: uart0-ph-sleep { 1143 pins = "PH0", "PH1"; 1144 function = "gpio_in"; 1145 }; 1146 1147 sdc0_pins_a: sdc0@0 { 1148 pins = "PF0", "PF1", "PF2", 1149 "PF3", "PF4", "PF5"; 1150 function = "sdc0"; 1151 drive-strength = <30>; 1152 bias-pull-up; 1153 power-source = <3300>; 1154 }; 1155 1156 sdc0_pins_b: sdc0@1 { 1157 pins = "PF0", "PF1", "PF2", 1158 "PF3", "PF4", "PF5"; 1159 function = "sdc0"; 1160 drive-strength = <30>; 1161 bias-pull-up; 1162 power-source = <1800>; 1163 }; 1164 1165 sdc0_pins_c: sdc0@2 { 1166 pins = "PF0", "PF1", "PF2", 1167 "PF3", "PF4", "PF5"; 1168 function = "gpio_in"; 1169 }; 1170 1171 /* TODO: add jtag pin */ 1172 sdc0_pins_d: sdc0@3 { 1173 pins = "PF2", "PF4"; 1174 function = "uart0"; 1175 drive-strength = <10>; 1176 bias-pull-up; 1177 }; 1178 1179 sdc0_pins_e: sdc0@4 { 1180 pins = "PF0", "PF1", "PF3", 1181 "PF5"; 1182 function = "jtag"; 1183 drive-strength = <10>; 1184 bias-pull-up; 1185 }; 1186 1187 sdc1_pins_a: sdc1@0 { 1188 pins = "PG0", "PG1", "PG2", 1189 "PG3", "PG4", "PG5"; 1190 function = "sdc1"; 1191 drive-strength = <40>; 1192 bias-pull-up; 1193 }; 1194 1195 sdc1_pins_b: sdc1@1 { 1196 pins = "PG0", "PG1", "PG2", 1197 "PG3", "PG4", "PG5"; 1198 function = "gpio_in"; 1199 bias-pull-up; 1200 }; 1201 1202 sdc2_pins_a: sdc2@0 { 1203 pins = "PC1", "PC5", "PC6", 1204 "PC8", "PC9", "PC10", "PC11", 1205 "PC13", "PC14", "PC15", "PC16"; 1206 function = "sdc2"; 1207 drive-strength = <30>; 1208 bias-pull-up; 1209 }; 1210 1211 sdc2_pins_b: sdc2@1 { 1212 pins = "PC0", "PC1", "PC5", "PC6", 1213 "PC8", "PC9", "PC10", "PC11", 1214 "PC13", "PC14", "PC15", "PC16"; 1215 function = "gpio_in"; 1216 bias-pull-up; 1217 }; 1218 1219 sdc2_pins_c: sdc2@2 { 1220 allwinner,pins = "PC0"; 1221 allwinner,function = "sdc2"; 1222 drive-strength = <30>; 1223 bias-pull-down; 1224 }; 1225 1226 nand0_pins_a: nand0@0 { 1227 pins = "PC0", "PC1", "PC2", "PC5", 1228 "PC8", "PC9", "PC10", "PC11", 1229 "PC12", "PC13", "PC14", "PC15", 1230 "PC16"; 1231 function = "nand0"; 1232 drive-strength = <40>; 1233 }; 1234 1235 nand0_pins_b: nand0@1 { 1236 pins = "PC4", "PC6", "PC3", "PC7"; 1237 function = "nand0"; 1238 drive-strength = <40>; 1239 bias-pull-up;/* only RB&CE should be pulled up */ 1240 }; 1241 1242 nand0_pins_c: nand0@2 { 1243 pins = "PC0", "PC1", "PC2", "PC3", 1244 "PC4", "PC5", "PC6", "PC7", 1245 "PC8", "PC9", "PC10", "PC11", 1246 "PC12", "PC13", "PC14", "PC15", 1247 "PC16"; 1248 function = "gpio_in"; 1249 }; 1250 1251 csi_mclk0_pins_a: csi_mclk0@0 { 1252 pins = "PG19"; 1253 function = "csi_mclk0"; 1254 drive-strength = <20>; 1255 }; 1256 1257 csi_mclk0_pins_b: csi_mclk0@1 { 1258 pins = "PG19"; 1259 function = "gpio_in"; 1260 }; 1261 1262 csi_mclk1_pins_a: csi_mclk1@0 { 1263 pins = "PE1"; 1264 function = "csi_mclk1"; 1265 drive-strength = <20>; 1266 }; 1267 1268 csi_mclk1_pins_b: csi_mclk1@1 { 1269 pins = "PE1"; 1270 function = "gpio_in"; 1271 }; 1272 1273 csi_cci0_pins_a: csi_cci0@0 { 1274 pins = "PG17","PG18"; 1275 function = "csi_cci0"; 1276 drive-strength = <20>; 1277 }; 1278 1279 csi_cci0_pins_b: csi_cci0@1 { 1280 pins = "PG17","PG18"; 1281 function = "gpio_in"; 1282 }; 1283 1284 csi_cci1_pins_a: csi_cci1@0 { 1285 pins = "PE20","PE21"; 1286 function = "csi_cci1"; 1287 drive-strength = <20>; 1288 }; 1289 1290 csi_cci1_pins_b: csi_cci1@1 { 1291 pins = "PE20","PE21"; 1292 function = "gpio_in"; 1293 }; 1294 1295 csi1_pins_a: csi1@0 { 1296 pins = "PE0", "PE2", "PE3", "PE4", "PE5", 1297 "PE6", "PE7", "PE8", "PE9", "PE10", "PE11", 1298 "PE12", "PE13", "PE14", "PE15", "PE16", "PE17", 1299 "PE18", "PE19"; 1300 function = "csi1"; 1301 drive-strength = <10>; 1302 }; 1303 1304 csi1_pins_b: csi1@1 { 1305 pins = "PE0", "PE2", "PE3", "PE4", "PE5", 1306 "PE6", "PE7", "PE8", "PE9", "PE10", "PE11", 1307 "PE12", "PE13", "PE14", "PE15", "PE16", "PE17", 1308 "PE18", "PE19"; 1309 function = "gpio_in"; 1310 }; 1311 1312 }; 1313 1314 r_pio: pinctrl@7022000 { 1315 compatible = "allwinner,sun50iw9-r-pinctrl"; 1316 reg = <0x0 0x07022000 0x0 0x400>; 1317 clocks = <&r_ccu CLK_R_APB1>, <&dcxo24M>, <&osc32k>; 1318 clock-names = "apb", "hosc", "losc"; 1319 gpio-controller; 1320 #gpio-cells = <3>; 1321 }; 1322 1323 mmu_aw: iommu@30f0000 { 1324 compatible = "allwinner,iommu-v12-sun50iw9"; 1325 reg = <0x0 0x030f0000 0x0 0x1000>; 1326 interrupts = <GIC_SPI 61 IRQ_TYPE_LEVEL_HIGH>; 1327 interrupt-names = "iommu-irq"; 1328 clocks = <&ccu CLK_BUS_IOMMU>; 1329 clock-names = "iommu"; 1330 #iommu-cells = <2>; 1331 }; 1332 1333 sdc2: sdmmc@4022000 { 1334 compatible = "allwinner,sunxi-mmc-v4p6x"; 1335 device_type = "sdc2"; 1336 reg = <0x0 0x04022000 0x0 0x1000>; 1337 interrupts = <GIC_SPI 37 IRQ_TYPE_LEVEL_HIGH>; 1338 clocks = <&dcxo24M>, 1339 <&ccu CLK_PLL_PERIPH1_2X>, 1340 <&ccu CLK_MMC2>, 1341 <&ccu CLK_BUS_MMC2>; 1342 clock-names = "osc24m","pll_periph","mmc","ahb"; 1343 resets = <&ccu RST_BUS_MMC2>; 1344 reset-names = "rst"; 1345 pinctrl-names = "default","sleep"; 1346 pinctrl-0 = <&sdc2_pins_a &sdc2_pins_c>; 1347 pinctrl-1 = <&sdc2_pins_b>; 1348 bus-width = <8>; 1349 req-page-count = <2>; 1350 cap-mmc-highspeed; 1351 mmc-cache-ctrl; 1352 non-removable; 1353 /*max-frequency = <200000000>;*/ 1354 max-frequency = <50000000>; 1355 cap-erase; 1356 mmc-high-capacity-erase-size; 1357 /*-- speed mode --*/ 1358 /*sm0: DS26_SDR12*/ 1359 /*sm1: HSSDR52_SDR25*/ 1360 /*sm2: HSDDR52_DDR50*/ 1361 /*sm3: HS200_SDR104*/ 1362 /*sm4: HS400*/ 1363 /*-- frequency point --*/ 1364 /*f0: CLK_400K*/ 1365 /*f1: CLK_25M*/ 1366 /*f2: CLK_50M*/ 1367 /*f3: CLK_100M*/ 1368 /*f4: CLK_150M*/ 1369 /*f5: CLK_200M*/ 1370 sdc_tm4_sm0_freq0 = <0>; 1371 sdc_tm4_sm0_freq1 = <0>; 1372 sdc_tm4_sm1_freq0 = <0x00000000>; 1373 sdc_tm4_sm1_freq1 = <0>; 1374 sdc_tm4_sm2_freq0 = <0x00000000>; 1375 sdc_tm4_sm2_freq1 = <0>; 1376 sdc_tm4_sm3_freq0 = <0x05000000>; 1377 sdc_tm4_sm3_freq1 = <0x00000005>; 1378 sdc_tm4_sm4_freq0 = <0x00050000>; 1379 sdc_tm4_sm4_freq1 = <0x00000004>; 1380 sdc_tm4_sm4_freq0_cmd = <0>; 1381 sdc_tm4_sm4_freq1_cmd = <0>; 1382 /*vmmc-supply = <®_3p3v>;*/ 1383 /*vqmc-supply = <®_3p3v>;*/ 1384 /*vdmc-supply = <®_3p3v>;*/ 1385 /*vmmc = "vcc-card";*/ 1386 /*vqmc = "";*/ 1387 /*vdmc = "";*/ 1388 sunxi-power-save-mode; 1389 sunxi-dis-signal-vol-sw; 1390 ctl-spec-caps = <0x308>; 1391 status = "disabled"; 1392 1393 }; 1394 1395 sdc0: sdmmc@4020000 { 1396 compatible = "allwinner,sunxi-mmc-v4p1x"; 1397 device_type = "sdc0"; 1398 reg = <0x0 0x04020000 0x0 0x1000>; 1399 interrupts = <GIC_SPI 35 IRQ_TYPE_LEVEL_HIGH>; 1400 clocks = <&dcxo24M>, 1401 <&ccu CLK_PLL_PERIPH1_2X>, 1402 <&ccu CLK_MMC0>, 1403 <&ccu CLK_BUS_MMC0>; 1404 clock-names = "osc24m","pll_periph","mmc","ahb"; 1405 resets = <&ccu RST_BUS_MMC0>; 1406 reset-names = "rst"; 1407 pinctrl-names = "default","mmc_1v8","sleep","uart_jtag"; 1408 pinctrl-0 = <&sdc0_pins_a>; 1409 pinctrl-1 = <&sdc0_pins_b>; 1410 pinctrl-2 = <&sdc0_pins_c>; 1411 pinctrl-3 = <&sdc0_pins_d &sdc0_pins_e>; 1412 max-frequency = <50000000>; 1413 bus-width = <4>; 1414 req-page-count = <2>; 1415 /*non-removable;*/ 1416 /*broken-cd;*/ 1417 /*cd-inverted*/ 1418 /* vmmc-supply = <®_3p3v>;*/ 1419 /* vqmc-supply = <®_3p3v>;*/ 1420 /* vdmc-supply = <®_3p3v>;*/ 1421 cap-sd-highspeed; 1422 cap-wait-while-busy; 1423 /*sd-uhs-sdr50;*/ 1424 /*sd-uhs-ddr50;*/ 1425 /*cap-sdio-irq;*/ 1426 /*keep-power-in-suspend;*/ 1427 /*ignore-pm-notify;*/ 1428 /*sunxi-power-save-mode;*/ 1429 /*sunxi-dly-400k = <1 0 0 0>; */ 1430 /*sunxi-dly-26M = <1 0 0 0>;*/ 1431 /*sunxi-dly-52M = <1 0 0 0>;*/ 1432 /*sunxi-dly-52M-ddr4 = <1 0 0 0>;*/ 1433 /*sunxi-dly-52M-ddr8 = <1 0 0 0>;*/ 1434 /*sunxi-dly-104M = <1 0 0 0>;*/ 1435 /*sunxi-dly-208M = <1 0 0 0>;*/ 1436 /*sunxi-dly-104M-ddr = <1 0 0 0>;*/ 1437 /*sunxi-dly-208M-ddr = <1 0 0 0>;*/ 1438 ctl-spec-caps = <0x8>; 1439 status = "okay"; 1440 }; 1441 1442 sdc1: sdmmc@4021000 { 1443 compatible = "allwinner,sunxi-mmc-v4p1x"; 1444 device_type = "sdc1"; 1445 reg = <0x0 0x04021000 0x0 0x1000>; 1446 interrupts = <GIC_SPI 36 IRQ_TYPE_LEVEL_HIGH>; 1447 clocks = <&dcxo24M>, 1448 <&ccu CLK_PLL_PERIPH1_2X>, 1449 <&ccu CLK_MMC1>, 1450 <&ccu CLK_BUS_MMC1>; 1451 clock-names = "osc24m","pll_periph","mmc","ahb"; 1452 resets = <&ccu RST_BUS_MMC1>; 1453 reset-names = "rst"; 1454 pinctrl-names = "default","sleep"; 1455 pinctrl-0 = <&sdc1_pins_a>; 1456 pinctrl-1 = <&sdc1_pins_b>; 1457 max-frequency = <50000000>; 1458 bus-width = <4>; 1459 /*broken-cd;*/ 1460 /*cd-inverted*/ 1461 /*cd-gpios = <&pio PG 6 6 1 2 0>;*/ 1462 /* vmmc-supply = <®_3p3v>;*/ 1463 /* vqmc-supply = <®_3p3v>;*/ 1464 /* vdmc-supply = <®_3p3v>;*/ 1465 /*vmmc = "vcc-card";*/ 1466 /*vqmc = "";*/ 1467 /*vdmc = "";*/ 1468 cap-sd-highspeed; 1469 /*sd-uhs-sdr50;*/ 1470 /*sd-uhs-ddr50;*/ 1471 /*sd-uhs-sdr104;*/ 1472 /*cap-sdio-irq;*/ 1473 keep-power-in-suspend; 1474 /*ignore-pm-notify;*/ 1475 /*sunxi-power-save-mode;*/ 1476 /*sunxi-dly-400k = <1 0 0 0 0>; */ 1477 /*sunxi-dly-26M = <1 0 0 0 0>;*/ 1478 /*sunxi-dly-52M = <1 0 0 0 0>;*/ 1479 sunxi-dly-52M-ddr4 = <1 0 0 0 2>; 1480 /*sunxi-dly-52M-ddr8 = <1 0 0 0 0>;*/ 1481 sunxi-dly-104M = <1 0 0 0 1>; 1482 /*sunxi-dly-208M = <1 1 0 0 0>;*/ 1483 sunxi-dly-208M = <1 0 0 0 1>; 1484 /*sunxi-dly-104M-ddr = <1 0 0 0 0>;*/ 1485 /*sunxi-dly-208M-ddr = <1 0 0 0 0>;*/ 1486 ctl-spec-caps = <0x8>; 1487 status = "disabled"; 1488 }; 1489 1490 nand0:nand0@4011000 { 1491 compatible = "allwinner,sun50iw9-nand"; 1492 device_type = "nand0"; 1493 reg = <0x0 0x04011000 0x0 0x1000>;/* nand0 */ 1494 interrupts = <GIC_SPI 34 IRQ_TYPE_LEVEL_HIGH>; 1495 clocks = <&ccu CLK_PLL_PERIPH1_2X>, 1496 <&ccu CLK_NAND0>, 1497 <&ccu CLK_NAND1>, 1498 <&ccu CLK_BUS_NAND>, 1499 <&ccu CLK_MBUS_NAND>; 1500 clock-names = "pll_periph","mclk","ecc", "bus", "mbus"; 1501 resets = <&ccu RST_BUS_NAND>; 1502 reset-names = "rst"; 1503 pinctrl-names = "default", "sleep"; 1504 pinctrl-0 = <&nand0_pins_a &nand0_pins_b>; 1505 pinctrl-1 = <&nand0_pins_c>; 1506 nand0_cache_level = <0x55aaaa55>; 1507 nand0_flush_cache_num = <0x55aaaa55>; 1508 nand0_capacity_level = <0x55aaaa55>; 1509 nand0_id_number_ctl = <0x55aaaa55>; 1510 nand0_print_level = <0x55aaaa55>; 1511 nand0_p0 = <0x55aaaa55>; 1512 nand0_p1 = <0x55aaaa55>; 1513 nand0_p2 = <0x55aaaa55>; 1514 nand0_p3 = <0x55aaaa55>; 1515 chip_code = "sun50iw9"; 1516 status = "disabled"; 1517 /*boot_crc="disabled";*/ 1518 }; 1519 1520 1521 mbus0: mbus-controller@47fa000 { 1522 compatible = "allwinner,sun50i-mbus"; 1523 reg = <0x0 0x047fa000 0x0 0x1000>; 1524 #mbus-cells = <1>; 1525 }; 1526 1527 uart0: uart@5000000 { 1528 compatible = "allwinner,sun50i-uart"; 1529 reg = <0x0 0x05000000 0x0 0x400>; 1530 interrupts = <GIC_SPI 0 IRQ_TYPE_LEVEL_HIGH>; 1531 clocks = <&ccu CLK_BUS_UART0>; 1532 resets = <&ccu RST_BUS_UART0>; 1533 uart0_port = <0>; 1534 uart0_type = <2>; 1535 status = "disabled"; 1536 }; 1537 1538 uart1: uart@5000400 { 1539 compatible = "allwinner,sun50i-uart"; 1540 reg = <0x0 0x05000400 0x0 0x400>; 1541 interrupts = <GIC_SPI 1 IRQ_TYPE_LEVEL_HIGH>; 1542 clocks = <&ccu CLK_BUS_UART1>; 1543 resets = <&ccu RST_BUS_UART1>; 1544 uart1_port = <1>; 1545 uart1_type = <4>; 1546 sunxi,uart-fifosize = <256>; 1547 status = "disabled"; 1548 }; 1549 1550 uart2: uart@5000800 { 1551 compatible = "allwinner,sun50i-uart"; 1552 reg = <0x0 0x05000800 0x0 0x400>; 1553 interrupts = <GIC_SPI 2 IRQ_TYPE_LEVEL_HIGH>; 1554 clocks = <&ccu CLK_BUS_UART2>; 1555 resets = <&ccu RST_BUS_UART2>; 1556 uart2_port = <2>; 1557 uart2_type = <4>; 1558 sunxi,uart-fifosize = <256>; 1559 status = "disabled"; 1560 }; 1561 1562 uart3: uart@5000c00 { 1563 compatible = "allwinner,sun50i-uart"; 1564 reg = <0x0 0x05000c00 0x0 0x400>; 1565 interrupts = <GIC_SPI 3 IRQ_TYPE_LEVEL_HIGH>; 1566 clocks = <&ccu CLK_BUS_UART3>; 1567 resets = <&ccu RST_BUS_UART3>; 1568 uart3_port = <3>; 1569 uart3_type = <4>; 1570 sunxi,uart-fifosize = <256>; 1571 status = "disabled"; 1572 }; 1573 1574 uart4: uart@5001000 { 1575 compatible = "allwinner,sun50i-uart"; 1576 reg = <0x0 0x05001000 0x0 0x400>; 1577 interrupts = <GIC_SPI 4 IRQ_TYPE_LEVEL_HIGH>; 1578 clocks = <&ccu CLK_BUS_UART4>; 1579 resets = <&ccu RST_BUS_UART4>; 1580 uart4_port = <4>; 1581 uart4_type = <4>; 1582 sunxi,uart-fifosize = <256>; 1583 status = "disabled"; 1584 }; 1585 1586 uart5: uart@5001400 { 1587 compatible = "allwinner,sun50i-uart"; 1588 reg = <0x0 0x05001400 0x0 0x400>; 1589 interrupts = <GIC_SPI 5 IRQ_TYPE_LEVEL_HIGH>; 1590 clocks = <&ccu CLK_BUS_UART5>; 1591 resets = <&ccu RST_BUS_UART5>; 1592 uart5_port = <5>; 1593 uart5_type = <2>; 1594 sunxi,uart-fifosize = <256>; 1595 status = "disabled"; 1596 }; 1597 1598 twi0: twi@5002000 { 1599 #address-cells = <1>; 1600 #size-cells = <0>; 1601 compatible = "allwinner,sun50i-twi"; 1602 device_type = "twi0"; 1603 reg = <0x0 0x05002000 0x0 0x400>; 1604 interrupts = <GIC_SPI 6 IRQ_TYPE_LEVEL_HIGH>; 1605 clocks = <&ccu CLK_BUS_I2C0>; 1606 clock-names = "bus"; 1607 resets = <&ccu RST_BUS_I2C0>; 1608 dmas = <&dma 43>, <&dma 43>; 1609 dma-names = "tx", "rx"; 1610 status = "disabled"; 1611 }; 1612 1613 twi1: twi@5002400 { 1614 #address-cells = <1>; 1615 #size-cells = <0>; 1616 compatible = "allwinner,sun50i-twi"; 1617 device_type = "twi1"; 1618 reg = <0x0 0x05002400 0x0 0x400>; 1619 interrupts = <GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH>; 1620 clocks = <&ccu CLK_BUS_I2C1>; 1621 clock-names = "bus"; 1622 resets = <&ccu RST_BUS_I2C1>; 1623 dmas = <&dma 44>, <&dma 44>; 1624 dma-names = "tx", "rx"; 1625 status = "disabled"; 1626 }; 1627 1628 twi2: twi@5002800 { 1629 #address-cells = <1>; 1630 #size-cells = <0>; 1631 compatible = "allwinner,sun50i-twi"; 1632 device_type = "twi2"; 1633 reg = <0x0 0x05002800 0x0 0x400>; 1634 interrupts = <GIC_SPI 8 IRQ_TYPE_LEVEL_HIGH>; 1635 clocks = <&ccu CLK_BUS_I2C2>; 1636 clock-names = "bus"; 1637 resets = <&ccu RST_BUS_I2C2>; 1638 dmas = <&dma 45>, <&dma 45>; 1639 dma-names = "tx", "rx"; 1640 status = "disabled"; 1641 }; 1642 1643 twi3: twi@5002c00 { 1644 #address-cells = <1>; 1645 #size-cells = <0>; 1646 compatible = "allwinner,sun50i-twi"; 1647 device_type = "twi3"; 1648 reg = <0x0 0x05002c00 0x0 0x400>; 1649 interrupts = <GIC_SPI 9 IRQ_TYPE_LEVEL_HIGH>; 1650 clocks = <&ccu CLK_BUS_I2C3>; 1651 clock-names = "bus"; 1652 resets = <&ccu RST_BUS_I2C3>; 1653 dmas = <&dma 46>, <&dma 46>; 1654 dma-names = "tx", "rx"; 1655 status = "disabled"; 1656 }; 1657 1658 twi4: twi@5003000 { 1659 #address-cells = <1>; 1660 #size-cells = <0>; 1661 compatible = "allwinner,sun50i-twi"; 1662 device_type = "twi4"; 1663 reg = <0x0 0x05003000 0x0 0x400>; 1664 interrupts = <GIC_SPI 10 IRQ_TYPE_LEVEL_HIGH>; 1665 clocks = <&ccu CLK_BUS_I2C4>; 1666 clock-names = "bus"; 1667 resets = <&ccu RST_BUS_I2C4>; 1668 dmas = <&dma 47>, <&dma 47>; 1669 dma-names = "tx", "rx"; 1670 status = "disabled"; 1671 }; 1672 1673 twi5: twi@7081400 { 1674 #address-cells = <1>; 1675 #size-cells = <0>; 1676 compatible = "allwinner,sun50i-twi"; 1677 device_type = "twi5"; 1678 reg = <0x0 0x07081400 0x0 0x400>; 1679 interrupts = <GIC_SPI 105 IRQ_TYPE_LEVEL_HIGH>; 1680 clocks = <&r_ccu CLK_R_APB2_I2C>; 1681 clock-names = "bus"; 1682 resets = <&r_ccu RST_R_APB2_I2C>; 1683 dmas = <&dma 48>, <&dma 48>; 1684 dma-names = "tx", "rx"; 1685 status = "disabled"; 1686 }; 1687 1688 spi0: spi@5010000 { 1689 #address-cells = <1>; 1690 #size-cells = <0>; 1691 compatible = "allwinner,sun50i-spi"; 1692 device_type = "spi0"; 1693 reg = <0x0 0x05010000 0x0 0x1000>; 1694 interrupts = <GIC_SPI 12 IRQ_TYPE_LEVEL_HIGH>; 1695 clocks = <&ccu CLK_PLL_PERIPH0>, <&ccu CLK_SPI0>, <&ccu CLK_BUS_SPI0>; 1696 clock-names = "pll", "mod", "bus"; 1697 resets = <&ccu RST_BUS_SPI0>; 1698 clock-frequency = <100000000>; 1699 spi0_cs_number = <1>; 1700 spi0_cs_bitmap = <1>; 1701 dmas = <&dma 22>, <&dma 22>; 1702 dma-names = "tx", "rx"; 1703 status = "disabled"; 1704 }; 1705 1706 spi1: spi@5011000 { 1707 #address-cells = <1>; 1708 #size-cells = <0>; 1709 compatible = "allwinner,sun50i-spi"; 1710 device_type = "spi1"; 1711 reg = <0x0 0x05011000 0x0 0x1000>; 1712 interrupts = <GIC_SPI 13 IRQ_TYPE_LEVEL_HIGH>; 1713 clocks = <&ccu CLK_PLL_PERIPH0>, <&ccu CLK_SPI1>, <&ccu CLK_BUS_SPI1>; 1714 clock-names = "pll", "mod", "bus"; 1715 resets = <&ccu RST_BUS_SPI1>; 1716 clock-frequency = <100000000>; 1717 spi1_cs_number = <1>; 1718 spi1_cs_bitmap = <1>; 1719 dmas = <&dma 23>, <&dma 23>; 1720 dma-names = "tx", "rx"; 1721 status = "disabled"; 1722 }; 1723 1724 ths: thermal-sensor@5070400 { 1725 compatible = "allwinner,sun50iw9p1-ths"; 1726 reg = <0x0 0x05070400 0x0 0x400>; 1727 clocks = <&ccu CLK_BUS_THS>; 1728 clock-names = "bus"; 1729 resets = <&ccu RST_BUS_THS>; 1730 nvmem-cells = <&ths_calib>; 1731 nvmem-cell-names = "calibration"; 1732 #thermal-sensor-cells = <1>; 1733 }; 1734 1735 gpadc: gpadc@5070000 { 1736 compatible = "allwinner,sunxi-gpadc"; 1737 reg = <0x0 0x05070000 0x0 0x3ff>; 1738 interrupts = <GIC_SPI 18 IRQ_TYPE_LEVEL_HIGH>; 1739 clocks = <&ccu CLK_BUS_GPADC>; 1740 clock-names = "bus"; 1741 resets = <&ccu RST_BUS_GPADC>; 1742 status = "disabled"; 1743 }; 1744 1745 keyboard: keyboard@5070800 { 1746 compatible = "allwinner,keyboard_1350mv"; 1747 reg = <0x0 0x05070800 0x0 0x400>; 1748 interrupts = <GIC_SPI 20 IRQ_TYPE_EDGE_RISING>; 1749 clocks = <&ccu CLK_BUS_LRADC>; 1750 resets = <&ccu RST_BUS_LRADC>; 1751 status = "disabled"; 1752 }; 1753 1754 /* audio driver use harmony ADM */ 1755 /* audio dirver module -> audio codec */ 1756 codec:codec@5096000 { 1757 compatible = "allwinner,sunxi-snd-codec"; 1758 reg = <0x0 0x05096000 0x0 0x31C>; 1759 /* clocks = <&clk_pll_audio>,<&clk_pll_audiox4>,<&clk_codec_1x>; */ 1760 resets = <&ccu RST_BUS_AUDIO_CODEC>; 1761 clocks = <&ccu CLK_PLL_AUDIO>, 1762 <&ccu CLK_PLL_AUDIO_4X>, 1763 <&ccu CLK_AUDIO>, 1764 <&ccu CLK_BUS_AUDIO_CODEC>; 1765 clock-names = "clk_pll_audio", 1766 "clk_pll_audio_4x", 1767 "clk_audio", 1768 "clk_bus_audio"; 1769 dmas = <&dma 6>, <&dma 6>; 1770 dma-names = "tx", "rx"; 1771 status = "disabled"; 1772 }; 1773 1774 /* audio dirver module -> audio hub */ 1775 ahub:ahub@5097000 { 1776 compatible = "allwinner,sunxi-snd-ahub"; 1777 reg = <0x0 0x05097000 0x0 0xAEC>; 1778 /* clocks = <&clk_pll_audio>,<&clk_pll_audiox4>,<&clk_ahub>; */ 1779 resets = <&ccu RST_BUS_AUDIO_HUB>; 1780 clocks = <&ccu CLK_PLL_AUDIO>, 1781 <&ccu CLK_PLL_AUDIO_4X>, 1782 <&ccu CLK_AUDIO_HUB>, 1783 <&ccu CLK_BUS_AUDIO_HUB>; 1784 clock-names = "clk_pll_audio", 1785 "clk_pll_audio_4x", 1786 "clk_audio_hub", 1787 "clk_bus_audio_hub"; 1788 dmas = <&dma 3>, <&dma 3>; 1789 dma-names = "tx", "rx"; 1790 status = "disabled"; 1791 }; 1792 1793/*------------------------------------------------------------------------------ 1794 codec:codec@5096000 { 1795 #sound-dai-cells = <0>; 1796 compatible = "allwinner,sunxi-snd-codec"; 1797 reg = <0x0 0x05096000 0x0 0x31C>; 1798 resets = <&ccu RST_BUS_AUDIO_CODEC>; 1799 clocks = <&ccu CLK_PLL_AUDIO_4X>, 1800 <&ccu CLK_AUDIO>, 1801 <&ccu CLK_BUS_AUDIO_CODEC>; 1802 clock-names = "clk_pll_audio_4x", 1803 "clk_audio", 1804 "clk_bus_audio"; 1805 status = "disabled"; 1806 }; 1807 1808 codec_plat:codec_plat { 1809 #sound-dai-cells = <0>; 1810 compatible = "allwinner,sunxi-snd-plat-aaudio"; 1811 playback_cma = <128>; 1812 capture_cma = <128>; 1813 tx_fifo_size = <128>; 1814 rx_fifo_size = <128>; 1815 dac_txdata = <0x05096020>; 1816 adc_txdata = <0x05096040>; 1817 dmas = <&dma 6>, <&dma 6>; 1818 dma-names = "tx", "rx"; 1819 status = "disabled"; 1820 }; 1821 1822 codec_mach:codec_mach { 1823 compatible = "allwinner,sunxi-snd-mach"; 1824 soundcard-mach,name = "audiocodec"; 1825 soundcard-mach,playback-only; 1826 soundcard-mach,pin-switches = "LINEOUT"; 1827 soundcard-mach,routing = "LINEOUT", "LINEOUTL", 1828 "LINEOUT", "LINEOUTR"; 1829 status = "disabled"; 1830 soundcard-mach,cpu { 1831 sound-dai = <&codec_plat>; 1832 }; 1833 soundcard-mach,codec { 1834 sound-dai = <&codec>; 1835 soundcard-mach,pll-fs = <4>; 1836 }; 1837 }; 1838 1839 spdif_plat:spdif_plat@5093000 { 1840 #sound-dai-cells = <0>; 1841 compatible = "allwinner,sunxi-snd-plat-spdif"; 1842 reg = <0x0 0x05093000 0x0 0x40>; 1843 resets = <&ccu RST_BUS_SPDIF>; 1844 clocks = <&ccu CLK_PLL_AUDIO_4X>, 1845 <&ccu CLK_SPDIF>, 1846 <&ccu CLK_BUS_SPDIF>; 1847 clock-names = "clk_pll_audio_4x", 1848 "clk_spdif", 1849 "clk_bus_spdif"; 1850 pll-fs = <4>; 1851 dmas = <&dma 2>, <&dma 2>; 1852 dma-names = "tx", "rx"; 1853 playback_cma = <128>; 1854 capture_cma = <128>; 1855 tx_fifo_size = <128>; 1856 rx_fifo_size = <64>; 1857 status = "disabled"; 1858 }; 1859 1860 spdif_mach:spdif_mach { 1861 compatible = "allwinner,sunxi-snd-mach"; 1862 soundcard-mach,name = "sndspdif"; 1863 status = "disabled"; 1864 soundcard-mach,cpu { 1865 sound-dai = <&spdif_plat>; 1866 soundcard-mach,pll-fs = <4>; 1867 }; 1868 soundcard-mach,codec { 1869 }; 1870 }; 1871 1872 ahub_dam_plat:ahub_dam_plat@5097000 { 1873 #sound-dai-cells = <0>; 1874 compatible = "allwinner,sunxi-snd-plat-ahub_dam"; 1875 reg = <0x0 0x05097000 0x0 0xAEC>; 1876 resets = <&ccu RST_BUS_AUDIO_HUB>; 1877 clocks = <&ccu CLK_PLL_AUDIO>, 1878 <&ccu CLK_PLL_AUDIO_4X>, 1879 <&ccu CLK_AUDIO_HUB>, 1880 <&ccu CLK_BUS_AUDIO_HUB>; 1881 clock-names = "clk_pll_audio", 1882 "clk_pll_audio_4x", 1883 "clk_audio_hub", 1884 "clk_bus_audio_hub"; 1885 status = "disabled"; 1886 }; 1887 1888 ahub_dam_mach:ahub_dam_mach { 1889 compatible = "allwinner,sunxi-snd-mach"; 1890 soundcard-mach,name = "ahubdam"; 1891 status = "disabled"; 1892 soundcard-mach,cpu { 1893 sound-dai = <&ahub_dam_plat>; 1894 }; 1895 soundcard-mach,codec { 1896 }; 1897 }; 1898 1899 ahub0_plat:ahub0_plat { 1900 #sound-dai-cells = <0>; 1901 compatible = "allwinner,sunxi-snd-plat-ahub"; 1902 apb_num = <0>; 1903 dmas = <&dma 3>, <&dma 3>; 1904 dma-names = "tx", "rx"; 1905 playback_cma = <128>; 1906 capture_cma = <128>; 1907 tx_fifo_size = <128>; 1908 rx_fifo_size = <128>; 1909 status = "disabled"; 1910 }; 1911 1912 ahub1_plat:ahub1_plat { 1913 #sound-dai-cells = <0>; 1914 compatible = "allwinner,sunxi-snd-plat-ahub"; 1915 apb_num = <1>; 1916 dmas = <&dma 4>, <&dma 4>; 1917 dma-names = "tx", "rx"; 1918 playback_cma = <128>; 1919 capture_cma = <128>; 1920 tx_fifo_size = <128>; 1921 rx_fifo_size = <128>; 1922 status = "disabled"; 1923 }; 1924 1925 ahub2_plat:ahub2_plat { 1926 #sound-dai-cells = <0>; 1927 compatible = "allwinner,sunxi-snd-plat-ahub"; 1928 apb_num = <2>; 1929 dmas = <&dma 5>, <&dma 5>; 1930 dma-names = "tx", "rx"; 1931 playback_cma = <128>; 1932 capture_cma = <128>; 1933 tx_fifo_size = <128>; 1934 rx_fifo_size = <128>; 1935 status = "disabled"; 1936 }; 1937 1938 ahub3_plat:ahub3_plat { 1939 #sound-dai-cells = <0>; 1940 compatible = "allwinner,sunxi-snd-plat-ahub"; 1941 apb_num = <2>; 1942 dmas = <&dma 5>, <&dma 5>; 1943 dma-names = "tx", "rx"; 1944 playback_cma = <128>; 1945 capture_cma = <128>; 1946 tx_fifo_size = <128>; 1947 rx_fifo_size = <128>; 1948 status = "disabled"; 1949 }; 1950 1951 ahub0_mach:ahub0_mach { 1952 compatible = "allwinner,sunxi-snd-mach"; 1953 soundcard-mach,name = "ahubi2s0"; 1954 status = "disabled"; 1955 soundcard-mach,cpu { 1956 sound-dai = <&ahub0_plat>; 1957 }; 1958 soundcard-mach,codec { 1959 }; 1960 }; 1961 1962 ahub1_mach:ahub1_mach { 1963 compatible = "allwinner,sunxi-snd-mach"; 1964 soundcard-mach,name = "ahubhdmi"; 1965 status = "disabled"; 1966 soundcard-mach,cpu { 1967 sound-dai = <&ahub1_plat>; 1968 }; 1969 soundcard-mach,codec { 1970 }; 1971 }; 1972 1973 ahub2_mach:ahub2_mach { 1974 compatible = "allwinner,sunxi-snd-mach"; 1975 soundcard-mach,name = "ahubi2s2"; 1976 status = "disabled"; 1977 soundcard-mach,cpu { 1978 sound-dai = <&ahub2_plat>; 1979 }; 1980 soundcard-mach,codec { 1981 }; 1982 }; 1983 1984 ahub3_mach:ahub3_mach { 1985 compatible = "allwinner,sunxi-snd-mach"; 1986 soundcard-mach,name = "ahubi2s3"; 1987 status = "disabled"; 1988 soundcard-mach,cpu { 1989 sound-dai = <&ahub3_plat>; 1990 }; 1991 soundcard-mach,codec { 1992 }; 1993 }; 1994------------------------------------------------------------------------------*/ 1995 1996 gpio_para:gpio_para { 1997 device_type = "gpio_para"; 1998 compatible = "allwinner,sunxi-init-gpio"; 1999 status = "disabled"; 2000 }; 2001 2002 mdio0: mdio0@5020048 { 2003 compatible = "allwinner,sunxi-mdio"; 2004 #address-cells = <1>; 2005 #size-cells = <0>; 2006 reg = <0x0 0x05020048 0x0 0x8>; 2007 status = "okay"; 2008 gmac0_phy0: ethernet-phy@1 { 2009 /* RTL8211F (0x001cc916) */ 2010 reg = <1>; 2011 max-speed = <1000>; /* Max speed capability */ 2012 reset-gpios = <&pio PI 6 GPIO_ACTIVE_LOW>; 2013 /* PHY datasheet rst time */ 2014 reset-assert-us = <10000>; 2015 reset-deassert-us = <150000>; 2016 }; 2017 }; 2018 2019 gmac0: gmac0@5020000 { 2020 compatible = "allwinner,sunxi-gmac"; 2021 reg = <0x0 0x05020000 0x0 0x10000>, 2022 <0x0 0x03000030 0x0 0x4>; 2023 interrupts = <GIC_SPI 14 IRQ_TYPE_LEVEL_HIGH>; 2024 interrupt-names = "gmacirq"; 2025 clocks = <&ccu CLK_BUS_EMAC0>, <&ccu CLK_EMAC_25M>; 2026 clock-names = "gmac", "phy25m"; 2027 resets = <&ccu RST_BUS_EMAC0>; 2028 phy-handle = <&gmac0_phy0>; 2029 status = "disabled"; 2030 }; 2031 2032 usbc0: usbc0@0 { 2033 device_type = "usbc0"; 2034 compatible = "allwinner,sunxi-otg-manager"; 2035 usb_port_type = <2>; 2036 usb_detect_type = <1>; 2037 usb_detect_mode = <0>; 2038 usb_id_gpio; 2039 usb_det_vbus_gpio; 2040 usb_drv_vbus_gpio; 2041 usb_host_init_state = <0>; 2042 usb_regulator_io = "nocare"; 2043 usb_wakeup_suspend = <0>; 2044 usb_luns = <3>; 2045 usb_serial_unique = <0>; 2046 usb_serial_number = "20080411"; 2047 rndis_wceis = <1>; 2048 wakeup-source; 2049 }; 2050 2051 udc: udc-controller@5100000 { 2052 compatible = "allwinner,sunxi-udc"; 2053 reg = <0x0 0x05100000 0x0 0x1000>, 2054 <0x0 0x00000000 0x0 0x100>; 2055 interrupts = <GIC_SPI 25 IRQ_TYPE_LEVEL_HIGH>; 2056 interrupt-parent = <&gic>; 2057 clocks = <&ccu CLK_BUS_OTG>, <&ccu CLK_USB_PHY0>; 2058 clock-names = "bus_otg", "phy"; 2059 resets = <&ccu RST_BUS_OTG>, <&ccu RST_USB_PHY0>; 2060 reset-names = "otg", "phy"; 2061 }; 2062 2063 ehci0: ehci0-controller@5101000 { 2064 compatible = "allwinner,sunxi-ehci0"; 2065 reg = <0x0 0x05101000 0x0 0xFFF>, 2066 <0x0 0x00000000 0x0 0x100>, 2067 <0x0 0x05100000 0x0 0x1000>; 2068 interrupts = <GIC_SPI 26 IRQ_TYPE_LEVEL_HIGH>; 2069 clocks = <&ccu CLK_BUS_EHCI0>, <&ccu CLK_USB_PHY0>; 2070 clock-names = "bus_hci", "phy"; 2071 resets = <&ccu RST_BUS_EHCI0>, <&ccu RST_USB_PHY0>; 2072 reset-names = "hci", "phy"; 2073 hci_ctrl_no = <0>; 2074 }; 2075 2076 ohci0: ohci0-controller@5101400 { 2077 compatible = "allwinner,sunxi-ohci0"; 2078 reg = <0x0 0x05101400 0x0 0xFFF>, 2079 <0x0 0x00000000 0x0 0x100>, 2080 <0x0 0x05100000 0x0 0x1000>; 2081 interrupts = <GIC_SPI 27 IRQ_TYPE_LEVEL_HIGH>; 2082 clocks = <&ccu CLK_BUS_OHCI0>, <&ccu CLK_USB_OHCI0>, <&ccu CLK_USB_PHY0>; 2083 clock-names = "bus_hci", "ohci", "phy"; 2084 resets = <&ccu RST_BUS_OHCI0>, <&ccu RST_USB_PHY0>; 2085 reset-names = "hci", "phy"; 2086 hci_ctrl_no = <0>; 2087 }; 2088 2089 usbc1: usbc1@0 { 2090 device_type = "usbc1"; 2091 usb_drv_vbus_gpio; 2092 usb_host_init_state = <1>; 2093 usb_regulatior_io = "nocare"; 2094 usb_wakeup_suspend = <0>; 2095 wakeup-source; 2096 }; 2097 2098 ehci1: ehci1-controller@5200000 { 2099 compatible = "allwinner,sunxi-ehci1"; 2100 reg = <0x0 0x05200000 0x0 0xFFF>, 2101 <0x0 0x00000000 0x0 0x100>, 2102 <0x0 0x05100000 0x0 0x1000>; 2103 interrupts = <GIC_SPI 28 IRQ_TYPE_LEVEL_HIGH>; 2104 clocks = <&ccu CLK_BUS_EHCI1>, <&ccu CLK_USB_PHY1>; 2105 clock-names = "bus_hci", "phy"; 2106 resets = <&ccu RST_BUS_EHCI1>, <&ccu RST_USB_PHY1>; 2107 reset-names = "hci", "phy"; 2108 hci_ctrl_no = <1>; 2109 }; 2110 2111 ohci1: ohci1-controller@5200400 { 2112 compatible = "allwinner,sunxi-ohci1"; 2113 reg = <0x0 0x05200400 0x0 0xFFF>, 2114 <0x0 0x00000000 0x0 0x100>, 2115 <0x0 0x05100000 0x0 0x1000>; 2116 interrupts = <GIC_SPI 29 IRQ_TYPE_LEVEL_HIGH>; 2117 clocks = <&ccu CLK_BUS_OHCI1>, <&ccu CLK_USB_OHCI1>, <&ccu CLK_USB_PHY1>; 2118 clock-names = "bus_hci", "ohci", "phy"; 2119 resets = <&ccu RST_BUS_OHCI1>, <&ccu RST_USB_PHY1>; 2120 reset-names = "hci", "phy"; 2121 hci_ctrl_no = <1>; 2122 }; 2123 2124 usbc2: usbc2@0 { 2125 device_type = "usbc2"; 2126 usb_drv_vbus_gpio; 2127 usb_host_init_state = <1>; 2128 usb_regulatior_io = "nocare"; 2129 usb_wakeup_suspend = <0>; 2130 wakeup-source; 2131 }; 2132 2133 ehci2: ehci2-controller@5310000 { 2134 compatible = "allwinner,sunxi-ehci2"; 2135 reg = <0x0 0x05310000 0x0 0xFFF>, 2136 <0x0 0x00000000 0x0 0x100>, 2137 <0x0 0x05100000 0x0 0x1000>; 2138 interrupts = <GIC_SPI 30 IRQ_TYPE_LEVEL_HIGH>; 2139 clocks = <&ccu CLK_BUS_EHCI2>, <&ccu CLK_USB_PHY2>; 2140 clock-names = "bus_hci", "phy"; 2141 resets = <&ccu RST_BUS_EHCI2>, <&ccu RST_USB_PHY2>; 2142 reset-names = "hci", "phy"; 2143 hci_ctrl_no = <2>; 2144 }; 2145 2146 ohci2: ohci2-controller@5310400 { 2147 compatible = "allwinner,sunxi-ohci2"; 2148 reg = <0x0 0x05310400 0x0 0xFFF>, 2149 <0x0 0x00000000 0x0 0x100>, 2150 <0x0 0x05100000 0x0 0x1000>; 2151 interrupts = <GIC_SPI 31 IRQ_TYPE_LEVEL_HIGH>; 2152 clocks = <&ccu CLK_BUS_OHCI2>, <&ccu CLK_USB_OHCI2>, <&ccu CLK_USB_PHY2>; 2153 clock-names = "bus_hci", "ohci", "phy"; 2154 resets = <&ccu RST_BUS_OHCI2>, <&ccu RST_USB_PHY2>; 2155 reset-names = "hci", "phy"; 2156 hci_ctrl_no = <2>; 2157 }; 2158 2159 usbc3: usbc3@0 { 2160 device_type = "usbc3"; 2161 usb_drv_vbus_gpio; 2162 usb_host_init_state = <1>; 2163 usb_regulatior_io = "nocare"; 2164 usb_wakeup_suspend = <0>; 2165 wakeup-source; 2166 }; 2167 2168 ehci3: ehci3-controller@5311000 { 2169 compatible = "allwinner,sunxi-ehci3"; 2170 reg = <0x0 0x05311000 0x0 0xFFF>, 2171 <0x0 0x00000000 0x0 0x100>, 2172 <0x0 0x05100000 0x0 0x1000>; 2173 interrupts = <GIC_SPI 32 IRQ_TYPE_LEVEL_HIGH>; 2174 clocks = <&ccu CLK_BUS_EHCI3>, <&ccu CLK_USB_PHY3>; 2175 clock-names = "bus_hci", "phy"; 2176 resets = <&ccu RST_BUS_EHCI3>, <&ccu RST_USB_PHY3>; 2177 reset-names = "hci", "phy"; 2178 hci_ctrl_no = <3>; 2179 }; 2180 2181 ohci3: ohci3-controller@5311400 { 2182 compatible = "allwinner,sunxi-ohci3"; 2183 reg = <0x0 0x05311400 0x0 0xFFF>, 2184 <0x0 0x00000000 0x0 0x100>, 2185 <0x0 0x05100000 0x0 0x1000>; 2186 interrupts = <GIC_SPI 33 IRQ_TYPE_LEVEL_HIGH>; 2187 clocks = <&ccu CLK_BUS_OHCI3>, <&ccu CLK_USB_OHCI3>, <&ccu CLK_USB_PHY3>; 2188 clock-names = "bus_hci", "ohci", "phy"; 2189 resets = <&ccu RST_BUS_OHCI3>, <&ccu RST_USB_PHY3>; 2190 reset-names = "hci", "phy"; 2191 hci_ctrl_no = <3>; 2192 }; 2193 2194 hdmi: hdmi@6000000 { 2195 compatible = "allwinner,sunxi-hdmi"; 2196 reg = <0x0 0x06000000 0x0 0x100000>; 2197 interrupts = <GIC_SPI 63 IRQ_TYPE_LEVEL_HIGH>; 2198 clocks = <&ccu CLK_BUS_HDMI>, 2199 <&ccu CLK_HDMI>, 2200 <&ccu CLK_HDMI_SLOW>, 2201 <&ccu CLK_HDMI_CEC>, 2202 <&ccu CLK_BUS_HDMI_HDCP>, 2203 <&ccu CLK_HDMI_HDCP>, 2204 <&ccu CLK_TCON_TV0>; 2205 clock-names = "clk_bus_hdmi", 2206 "clk_hdmi", 2207 "clk_ddc", 2208 "clk_cec", 2209 "clk_bus_hdcp", 2210 "clk_hdcp", 2211 "clk_tcon_tv"; 2212 resets = <&ccu RST_BUS_HDMI_SUB>, 2213 <&ccu RST_BUS_HDMI_MAIN>, 2214 <&ccu RST_BUS_HDMI_HDCP>; 2215 reset-names = "rst_bus_sub", 2216 "rst_bus_main", 2217 "rst_bus_hdcp"; 2218 assigned-clocks = <&ccu CLK_HDMI>, 2219 <&ccu CLK_HDMI_HDCP>; 2220 assigned-clock-parents = <&ccu CLK_PLL_VIDEO2>, 2221 <&ccu CLK_PLL_PERIPH1>; 2222 assigned-clock-rates = <0>, <0>; 2223 2224 status = "okay"; 2225 }; 2226 2227 nmi_intc: interrupt-controller@7010320 { 2228 compatible = "allwinner,sun8i-nmi"; 2229 interrupt-controller; 2230 #interrupt-cells = <2>; 2231 reg = <0x0 0x07010320 0 0xc>; 2232 interrupts = <GIC_SPI 103 IRQ_TYPE_LEVEL_HIGH>; 2233 pad-control-v1 = <0x07000208>; 2234 }; 2235 2236 s_cir0: s_cir@7040000 { 2237 compatible = "allwinner,s_cir"; 2238 reg = <0x0 0x07040000 0x0 0x400>; 2239 interrupts = <GIC_SPI 106 IRQ_TYPE_LEVEL_HIGH>; 2240 clocks = <&r_ccu CLK_R_APB1_BUS_IR>, <&dcxo24M>, <&r_ccu CLK_R_APB1_IR>; 2241 clock-names = "bus", "pclk", "mclk"; 2242 resets = <&r_ccu RST_R_APB1_BUS_IR>; 2243 status = "disabled"; 2244 }; 2245 2246 rfkill: rfkill { 2247 compatible = "allwinner,sunxi-rfkill"; 2248 status = "disabled"; 2249 }; 2250 2251 addr_mgt: addr_mgt { 2252 compatible = "allwinner,sunxi-addr_mgt"; 2253 status = "disabled"; 2254 }; 2255 2256 btlpm: btlpm { 2257 compatible = "allwinner,sunxi-btlpm"; 2258 status = "disabled"; 2259 }; 2260 }; 2261 2262 uboot_disp: uboot_disp@1000000 { 2263 compatible = "allwinner,sunxi-disp"; 2264 reg = <0x0 0x01000000 0x0 0x01400000>, /* de */ 2265 <0x0 0x06510000 0x0 0x200>, /* display_if_top */ 2266 <0x0 0x06511000 0x0 0x1000>, /* tcon_lcd0 */ 2267 <0x0 0x06512000 0x0 0x1000>, /* tcon_lcd1 */ 2268 <0x0 0x06515000 0x0 0x1000>, /* tcon_tv0 */ 2269 <0x0 0x06516000 0x0 0x1000>; /* tcon_tv1 */ 2270 interrupts = <GIC_SPI 88 IRQ_TYPE_LEVEL_HIGH>, /* DE */ 2271 <GIC_SPI 64 IRQ_TYPE_LEVEL_HIGH>, /* tcon_lcd0 */ 2272 <GIC_SPI 65 IRQ_TYPE_LEVEL_HIGH>, /* tcon_lcd1 */ 2273 <GIC_SPI 66 IRQ_TYPE_LEVEL_HIGH>, /* tcon_tv0 */ 2274 <GIC_SPI 67 IRQ_TYPE_LEVEL_HIGH>; /* tcon_tv1 */ 2275 clocks = <&clk_de>, 2276 <&clk_display_top>, 2277 <&clk_tcon_lcd>, 2278 <&clk_tcon_lcd1>, 2279 <&clk_tcon_tv>, 2280 <&clk_tcon_tv1>, 2281 <&clk_lvds>; 2282 boot_disp = <0>; 2283 fb_base = <0>; 2284 }; 2285 2286 uboot_hdmi: uboot_hdmi@6000000 { 2287 compatible = "allwinner,sunxi-hdmi"; 2288 reg = <0x0 0x06000000 0x0 0x100000>; 2289 interrupts = <GIC_SPI 63 IRQ_TYPE_LEVEL_HIGH>; 2290 clocks = <&clk_hdmi>, <&clk_hdmi_slow>, 2291 <&clk_hdmi_hdcp>, <&clk_hdmi_cec>; 2292 }; 2293 2294 thermal-zones{ 2295 cpu_thermal_zone{ 2296 polling-delay-passive = <500>; 2297 polling-delay = <1000>; 2298 thermal-sensors = <&ths 2>; 2299 sustainable-power = <927>; 2300 2301 cpu_trips: trips{ 2302 cpu_threshold: trip-point@0 { 2303 temperature = <70000>; 2304 type = "passive"; 2305 hysteresis = <0>; 2306 }; 2307 cpu_target: trip-point@1 { 2308 temperature = <90000>; 2309 type = "passive"; 2310 hysteresis = <0>; 2311 }; 2312 }; 2313 2314 cooling-maps { 2315 map0 { 2316 trip = <&cpu_target>; 2317 cooling-device = <&cpu0 2318 THERMAL_NO_LIMIT 2319 THERMAL_NO_LIMIT>; 2320 contribution = <1024>; 2321 }; 2322 map1{ 2323 trip = <&cpu_target>; 2324 cooling-device = <&gpu 2325 THERMAL_NO_LIMIT 2326 THERMAL_NO_LIMIT>; 2327 contribution = <1024>; 2328 }; 2329 }; 2330 }; 2331 2332 ddr_thermal_zone { 2333 polling-delay-passive = <0>; 2334 polling-delay = <0>; 2335 thermal-sensors = <&ths 3>; 2336 }; 2337 2338 gpu_thermal_zone { 2339 polling-delay-passive = <500>; 2340 polling-delay = <1000>; 2341 thermal-sensors = <&ths 0>; 2342 sustainable-power = <1100>; 2343 }; 2344 2345 ve_thermal_zone { 2346 polling-delay-passive = <0>; 2347 polling-delay = <0>; 2348 thermal-sensors = <&ths 1>; 2349 }; 2350 }; 2351}; 2352