/* * Allwinner Technology CO., Ltd. sun8iw19p1 platform * * modify base on juno.dts */ /* kernel used */ #include #include #include "sun8iw21p1-clk.dtsi" #include "sun8iw21p1-pinctrl.dtsi" #include #include / { model = "sun8iw21"; compatible = "allwinner,sun8iw21p1"; interrupt-parent = <&wakeupgen>; #address-cells = <2>; #size-cells = <2>; firmware { optee { compatible = "linaro,optee-tz"; method = "smc"; }; }; reserved-memory { #address-cells = <2>; #size-cells = <2>; ranges; optee_reserve { reg = <0 0x41980000 0 0x00019000>; status = "okay"; }; /* npu_reserve { reg = <0 0x42000000 0 0x12C00000>; no-map; status = "okay"; }; */ }; aliases { pwm = &pwm; pwm0 = &pwm0; pwm1 = &pwm1; pwm2 = &pwm2; pwm3 = &pwm3; pwm4 = &pwm4; pwm5 = &pwm5; pwm6 = &pwm6; pwm7 = &pwm7; pwm8 = &pwm8; pwm9 = &pwm9; pwm10 = &pwm10; pwm11 = &pwm11; serial0 = &uart0; serial1 = &uart1; serial2 = &uart2; serial3 = &uart3; spi0 = &spi0; spi1 = &spi1; spi2 = &spi2; spi3 = &spi3; spif0 = &spif0; disp = &disp; lcd0 = &lcd0; mmc0 = &sdc0; mmc2 = &sdc2; twi0 = &twi0; twi1 = &twi1; twi2 = &twi2; twi3 = &twi3; twi4 = &twi4; gmac0 = &gmac0; }; chosen { bootargs = "earlyprintk=sunxi-uart,0x02500000 loglevel=8 initcall_debug=0 console=ttyS0 init=/init"; linux,initrd-start = <0x0 0x0>; linux,initrd-end = <0x0 0x0>; }; cpus { enable-method = "allwinner,sun8iw21p1"; #address-cells = <1>; #size-cells = <0>; cpu0: cpu@0 { device_type = "cpu"; compatible = "arm,cortex-a7"; reg = <0x0>; enable-method = "psci"; vf_tbl_sel = <0>; clocks = <&clk_pll_cpu>; clock-frequency = <1008000000>; clock-latency = <2000000>; /* if divide bin <&cpu_opp_l_table0 &cpu_opp_l_table1> */ operating-points-v2 = <&cpu_opp_l_table0>; cpu-idle-states = <&CPU_SLEEP_0 &CLUSTER_SLEEP_0 &SYS_SLEEP_0>; cooling-min-level = <5>; cooling-max-level = <0>; #cooling-cells = <2>; /* min followed by max */ dynamic-power-coefficient = <142>; }; idle-states { entry-method = "arm,psci"; CPU_SLEEP_0: cpu-sleep-0 { compatible = "arm,idle-state"; arm,psci-suspend-param = <0x0010000>; entry-latency-us = <45>; exit-latency-us = <90>; min-residency-us = <3000>; local-timer-stop; }; CLUSTER_SLEEP_0: cluster-sleep-0 { compatible = "arm,idle-state"; arm,psci-suspend-param = <0x1010000>; entry-latency-us = <55>; exit-latency-us = <570>; min-residency-us = <17000>; local-timer-stop; }; SYS_SLEEP_0: sys-sleep-0 { compatible = "arm,idle-state"; arm,psci-suspend-param = <0x2010000>; entry-latency-us = <0xffffffff>; exit-latency-us = <0xffffffff>; min-residency-us = <0xffffffff>; local-timer-stop; }; }; }; cpu_opp_l_table0: opp_l_table0 { /* compatible = "operating-points-v2"; */ compatible = "allwinner,sun50i-operating-points"; nvmem-cells = <&cpubin_efuse>; nvmem-cell-names = "bin"; opp-shared; /* compatible = "allwinner,opp_l_table0"; */ opp@408000000-92 { opp-hz = /bits/ 64 <408000000>; opp-microvolt = <920000>; clock-latency-ns = <244144>; /* 8 32k periods */ opp-supported-hw = <0x42B>; }; opp@408000000-96 { opp-hz = /bits/ 64 <408000000>; opp-microvolt = <960000>; clock-latency-ns = <244144>; /* 8 32k periods */ opp-supported-hw = <0xA54>; }; opp@408000000-100 { opp-hz = /bits/ 64 <408000000>; opp-microvolt = <1000000>; clock-latency-ns = <244144>; /* 8 32k periods */ opp-supported-hw = <0x80>; }; opp@408000000-105 { opp-hz = /bits/ 64 <408000000>; opp-microvolt = <1050000>; clock-latency-ns = <244144>; /* 8 32k periods */ opp-supported-hw = <0x100>; }; opp@600000000-92 { opp-hz = /bits/ 64 <600000000>; opp-microvolt = <920000>; clock-latency-ns = <244144>; /* 8 32k periods */ opp-supported-hw = <0x42B>; }; opp@600000000-96 { opp-hz = /bits/ 64 <600000000>; opp-microvolt = <960000>; clock-latency-ns = <244144>; /* 8 32k periods */ opp-supported-hw = <0xA54>; }; opp@600000000-100 { opp-hz = /bits/ 64 <600000000>; opp-microvolt = <1000000>; clock-latency-ns = <244144>; /* 8 32k periods */ opp-supported-hw = <0x80>; }; opp@600000000-105 { opp-hz = /bits/ 64 <600000000>; opp-microvolt = <1050000>; clock-latency-ns = <244144>; /* 8 32k periods */ opp-supported-hw = <0x100>; }; opp@720000000-92 { opp-hz = /bits/ 64 <720000000>; opp-microvolt = <920000>; clock-latency-ns = <244144>; /* 8 32k periods */ opp-supported-hw = <0x42B>; }; opp@720000000-96 { opp-hz = /bits/ 64 <720000000>; opp-microvolt = <960000>; clock-latency-ns = <244144>; /* 8 32k periods */ opp-supported-hw = <0xA54>; }; opp@720000000-100 { opp-hz = /bits/ 64 <720000000>; opp-microvolt = <1000000>; clock-latency-ns = <244144>; /* 8 32k periods */ opp-supported-hw = <0x80>; }; opp@720000000-105 { opp-hz = /bits/ 64 <720000000>; opp-microvolt = <1050000>; clock-latency-ns = <244144>; /* 8 32k periods */ opp-supported-hw = <0x100>; }; opp@900000000-92 { opp-hz = /bits/ 64 <900000000>; opp-microvolt = <920000>; clock-latency-ns = <244144>; /* 8 32k periods */ opp-supported-hw = <0x42B>; }; opp@900000000-96 { opp-hz = /bits/ 64 <900000000>; opp-microvolt = <960000>; clock-latency-ns = <244144>; /* 8 32k periods */ opp-supported-hw = <0xA54>; }; opp@900000000-100 { opp-hz = /bits/ 64 <900000000>; opp-microvolt = <1000000>; clock-latency-ns = <244144>; /* 8 32k periods */ opp-supported-hw = <0x80>; }; opp@900000000-105 { opp-hz = /bits/ 64 <900000000>; opp-microvolt = <1050000>; clock-latency-ns = <244144>; /* 8 32k periods */ opp-supported-hw = <0x100>; }; opp@1008000000-96 { opp-hz = /bits/ 64 <1008000000>; opp-microvolt = <960000>; clock-latency-ns = <244144>; /* 8 32k periods */ opp-supported-hw = <0xE54>; }; opp@1008000000-100 { opp-hz = /bits/ 64 <1008000000>; opp-microvolt = <1000000>; clock-latency-ns = <244144>; /* 8 32k periods */ opp-supported-hw = <0x80>; }; opp@1008000000-105 { opp-hz = /bits/ 64 <1008000000>; opp-microvolt = <1050000>; clock-latency-ns = <244144>; /* 8 32k periods */ opp-supported-hw = <0x100>; }; opp@1104000000-100 { opp-hz = /bits/ 64 <1104000000>; opp-microvolt = <1000000>; clock-latency-ns = <244144>; /* 8 32k periods */ opp-supported-hw = <0xC80>; }; opp@1104000000-105 { opp-hz = /bits/ 64 <1104000000>; opp-microvolt = <1050000>; clock-latency-ns = <244144>; /* 8 32k periods */ opp-supported-hw = <0x100>; }; opp@1200000000-100 { opp-hz = /bits/ 64 <1200000000>; opp-microvolt = <1000000>; clock-latency-ns = <244144>; /* 8 32k periods */ opp-supported-hw = <0x80>; }; opp@1200000000-105 { opp-hz = /bits/ 64 <1200000000>; opp-microvolt = <1050000>; clock-latency-ns = <244144>; /* 8 32k periods */ opp-supported-hw = <0x100>; }; }; psci { compatible = "arm,psci-1.0"; method = "smc"; }; e907_rproc: e907_rproc@0 { compatible = "allwinner,sun8iw21p1-e907-rproc"; clock-frequency = <600000000>; clocks = <&clk_pll_periph0600m>, <&clk_e907>, <&clk_e907_axi>, <&clk_e907_gate>, <&clk_msgbox1>; clock-names = "pll", "clk", "axi", "gate", "mbox"; reg = <0x0 0x06010204 0x0 0x04>; reg-names = "riscv-addr"; device_name = "e907_rproc@0"; mboxes = <&msgbox 0>; mbox-names = "mbox-chan"; core-name = "allwinner,riscv-e907"; firmware-name = "melis-elf"; status = "disabled"; }; ion { compatible = "allwinner,sunxi-ion"; /* *types list here: ION_HEAP_TYPE_SYSTEM = 0, ION_HEAP_TYPE_SYSTEM_CONTIG = 1, ION_HEAP_TYPE_CARVEOUT = 2, ION_HEAP_TYPE_CHUNK = 3, ION_HEAP_TYPE_DMA = 4, ION_HEAP_TYPE_SECURE = 6, **/ heap_sys_user@0{ compatible = "allwinner,sys_user"; heap-name = "sys_user"; heap-id = <0x0>; heap-base = <0x0>; heap-size = <0x0>; heap-type = "ion_system"; }; heap_cma@0{ compatible = "allwinner,cma"; heap-name = "cma"; heap-id = <0x4>; heap-base = <0x0>; heap-size = <0x0>; heap-type = "ion_cma"; }; }; memory@40000000 { device_type = "memory"; reg = <0x00000000 0x40000000 0x00000000 0x20000000>; }; gic: interrupt-controller@03020000 { compatible = "arm,cortex-a15-gic", "arm,cortex-a9-gic"; #interrupt-cells = <3>; #address-cells = <0>; device_type = "gic"; interrupt-controller; reg = <0x0 0x03021000 0 0x1000>, /* GIC Dist */ <0x0 0x03022000 0 0x2000>, /* GIC CPU */ <0x0 0x03024000 0 0x2000>, /* GIC VCPU Control */ <0x0 0x03026000 0 0x2000>; /* GIC VCPU */ interrupts = ; /* GIC Maintenence IRQ */ interrupt-parent = <&gic>; }; nmi_intc: intc-nmi@07010320 { compatible = "allwinner,sun8i-nmi"; interrupt-parent = <&gic>; #interrupt-cells = <2>; #address-cells = <0>; interrupt-controller; reg = <0x0 0x07010320 0 0xc>; pad-control-v2 = <0x07090230>; pad-control-offset = <30>; pad-control-en = <0>; interrupts = ; }; wakeupgen: interrupt-controller@0 { compatible = "allwinner,sunxi-wakeupgen"; interrupt-controller; #interrupt-cells = <3>; interrupt-parent = <&gic>; }; sram_ctrl { device_type = "sram_ctrl"; compatible = "allwinner,sram_ctrl"; reg = <0x0 0x03000000 0x0 0x100>; }; timer { compatible = "arm,armv7-timer"; interrupts = , /* Secure Phys IRQ */ , /* Non-secure Phys IRQ */ , /* Virt IRQ */ ; /* Hyp IRQ */ clock-frequency = <24000000>; arm,cpu-registers-not-fw-configured; interrupt-parent = <&gic>; arm,no-tick-in-suspend; }; ths: ths@02009400 { compatible = "allwinner,sun8iw21p1-ths"; reg = <0x0 0x02009400 0x0 0x400>; clocks = <&clk_ths>; clock-names = "bus"; nvmem-cells = <&ths_calib>; nvmem-cell-names = "calibration"; #thermal-sensor-cells = <1>; }; thermal-zones { cpu_thermal_zone { polling-delay-passive = <500>; polling-delay = <1000>; thermal-sensors = <&ths 2>; sustainable-power = <68>; cpu_trips: trips { cpu_threshold: trip-point@0 { temperature = <70000>; type = "passive"; hysteresis = <0>; }; cpu_target: trip-point@1 { temperature = <90000>; type = "passive"; hysteresis = <0>; }; cpu_crit: cpu_crit@0 { temperature = <110000>; type = "critical"; hysteresis = <0>; }; }; cooling-maps { map0 { trip = <&cpu_target>; cooling-device = <&cpu0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>; contribution = <1024>; }; }; }; npu_thermal_zone { polling-delay-passive = <0>; polling-delay = <0>; thermal-sensors = <&ths 0>; }; ve_thermal_zone { polling-delay-passive = <0>; polling-delay = <0>; thermal-sensors = <&ths 1>; }; }; pmu: power-management@ff000000 { compatible = "allwinner,v853-pmu", "syscon", "simple-mfd"; reg = <0x0 0x07001000 0x0 0x400>; pd: power-controller { compatible = "allwinner,v853-power-controller"; clocks = <&clk_cpurppu>; clock-names = "ppu"; #power-domain-cells = <1>; #address-cells = <1>; #size-cells = <0>; /* These power domains are grouped by VD_LOGIC */ pd_e907@V853_PD_E907 { reg = ; }; pd_npu@V853_PD_NPU { reg = ; }; pd_ve@V853_PD_VE { reg = ; }; }; }; soc: soc@03000000 { compatible = "simple-bus"; #address-cells = <2>; #size-cells = <2>; ranges; device_type = "soc"; isp_boot0_gpio:isp_boot0_gpio@0 { device_type = "isp_boot0_gpio"; /* port:0x3--D 0xFF--no use * pin:0x5--5 * mul_sel:0x1 * pull:0xffffffff -- default * drv_level:0xffffffff * data:0x0 */ camera0_cut0 = <0x54 0x3 0x12 0x1 0x0 0x1 0x0>; camera0_cut1 = <0x54 0x3 0x8 0x1 0x0 0x1 0x0>; camera0_led = <0x54 0xFF 0xFF 0x1 0x0 0x1 0x0>; camera1_cut0 = <0x54 0x3 0x12 0x1 0x0 0x1 0x0>; camera1_cut1 = <0x54 0x3 0x8 0x1 0x0 0x1 0x0>; camera1_led = <0x54 0xFF 0xFF 0x1 0x0 0x1 0x0>; }; soc_timer0: timer@02050000 { compatible = "allwinner,sun4i-a10-timer"; device_type = "soc_timer"; reg = <0x0 0x02050000 0x0 0x90>; interrupts = ; /* On FPGA, timer can only use the losc. * On IC, timer should use the hosc. */ clocks = <&clk_hosc>, <&clk_losc>; }; wdt: watchdog@20500a0 { compatible = "allwinner,sun8i-wdt"; reg = <0x0 0x020500a0 0x0 0x20>; interrupts = ; }; dump_reg:dump_reg@20000 { compatible = "allwinner,sunxi-dump-reg"; reg = <0x0 0x000020000 0x0 0x0004>; }; hwspinlock: hwspinlock@3005000 { compatible = "allwinner,sunxi-hwspinlock"; reg = <0x0 0x3005000 0x0 0x1000>; #hwlock-cells = <1>; clocks = <&clk_spinlock>; num-locks = <32>; status = "okay"; }; uart0: uart@2500000 { compatible = "allwinner,sun8i-uart"; device_type = "uart0"; reg = <0x0 0x02500000 0x0 0x400>; interrupts = ; clocks = <&clk_uart0>; sunxi,uart-fifosize = <64>; uart0_port = <0>; uart0_type = <2>; status = "disabled"; }; uart1: uart@2500400 { compatible = "allwinner,sun8i-uart"; device_type = "uart1"; reg = <0x0 0x02500400 0x0 0x400>; interrupts = ; clocks = <&clk_uart1>; sunxi,uart-fifosize = <128>; uart1_port = <1>; uart1_type = <4>; status = "disabled"; }; uart2: uart@2500800 { compatible = "allwinner,sun8i-uart"; device_type = "uart2"; reg = <0x0 0x02500800 0x0 0x400>; interrupts = ; clocks = <&clk_uart2>; sunxi,uart-fifosize = <128>; uart2_port = <2>; uart2_type = <4>; status = "disabled"; }; uart3: uart@2500c00 { compatible = "allwinner,sun8i-uart"; device_type = "uart3"; reg = <0x0 0x02500c00 0x0 0x400>; interrupts = ; clocks = <&clk_uart3>; sunxi,uart-fifosize = <128>; uart3_port = <3>; uart3_type = <4>; status = "disabled"; }; npu: npu@03050000 { compatible = "allwinner,npu"; reg = <0x0 0x03050000 0x0 0x1000>; device_type = "npu"; dev_name = "npu"; interrupts = ; clocks = <&clk_npu>, <&clk_pll_npux4>; clock-frequency = <504000000>; interrupt-names = "npu"; iommus = <&mmu_aw 6 1>; status = "okay"; power-domains = <&pd V853_PD_NPU>; }; pinctrl_test: pinctrl-test@0 { compatible = "allwinner,sun8i-pinctrl-test"; device_type = "pinctrl-test"; interrupt-parent = <&pio>; interrupts = ; /* bank offset type */ pinctrl-names = "default"; pinctrl-0 = <&test_pins_active>; test-gpios = <&pio PA 3 1 2 2 1>; status = "okay"; }; rt-media@01c0e000 { compatible = "allwinner,rt-media"; }; ve: ve@01c0e000 { compatible = "allwinner,sunxi-cedar-ve"; reg = <0x0 0x01c0e000 0x0 0x1000>,/*ve*/ <0x0 0x03000000 0x0 0x10>, /*sys_cfg*/ <0x0 0x02001000 0x0 0x800>, /*ccmu*/ <0x0 0x05830000 0x0 0x1000>,/*csi*/ <0x0 0x03006200 0x0 0x4>;/*ve ic markid*/ interrupts = ; clocks = <&clk_pll_periph0400m>, <&clk_ve>; iommus = <&mmu_aw 0 1>; power-domains = <&pd V853_PD_VE>; }; mmu_aw: iommu@02010000 { compatible = "allwinner,sunxi-iommu"; reg = <0x0 0x02010000 0x0 0x400>; interrupts = ; interrupt-names = "iommu-irq"; clocks = <&clk_iommu>; clock-names = "iommu"; iova-base = <0x48400000>; /*clock-frequency = <24000000>; */ #iommu-cells = <2>; status = "okay"; }; mbus0: mbus-controller@0x3102000 { compatible = "allwinner,sun8i-mbus"; reg = <0x0 0x03102000 0x0 0x1000>; #mbus-cells = <1>; }; cryptoengine: ce@03040000 { compatible = "allwinner,sunxi-ce"; device_name = "ce"; reg = <0x0 0x03040000 0x0 0xa0>, <0x0 0x03040800 0x0 0xa0>; /* Unused */ interrupts = , ; /* Unused */ clocks = <&clk_ce>, <&clk_pll_periph0400m>; }; spi0: spi@04025000 { #address-cells = <1>; #size-cells = <0>; compatible = "allwinner,sun8i-spi"; device_type = "spi0"; reg = <0x0 0x04025000 0x0 0x1000>; interrupts = ; clocks = <&clk_pll_periph0300m>, <&clk_spi0>; status = "disabled"; }; spi1: spi@04026000 { #address-cells = <1>; #size-cells = <0>; compatible = "allwinner,sun8i-spi"; device_type = "spi-dbi"; reg = <0x0 0x04026000 0x0 0x1000>; interrupts = ; clocks = <&clk_pll_periph0300m>, <&clk_spi1>; status = "disabled"; }; spi2: spi@04027000 { #address-cells = <1>; #size-cells = <0>; compatible = "allwinner,sun8i-spi"; device_type = "spi2"; reg = <0x0 0x04027000 0x0 0x1000>; interrupts = ; clocks = <&clk_pll_periph0300m>, <&clk_spi2>; status = "disabled"; }; spi3: spi@04028000 { #address-cells = <1>; #size-cells = <0>; compatible = "allwinner,sun8i-spi"; device_type = "spi3"; reg = <0x0 0x04028000 0x0 0x1000>; interrupts = ; clocks = <&clk_pll_periph0300m>, <&clk_spi3>; status = "disabled"; }; spif0: spif@04f00000 { #address-cells = <1>; #size-cells = <0>; compatible = "allwinner,sun8i-spif"; device_type = "spif"; reg = <0x0 0x04f00000 0x0 0x1000>; interrupts = ; clocks = <&clk_pll_periph0400m>, <&clk_spif>; clock-names = "pclk", "mclk"; status = "disabled"; }; msgbox: msgbox@3003000 { compatible = "allwinner,sunxi-msgbox"; #mbox-cells = <1>; reg = <0x0 0x03003000 0x0 0x1000>, <0x0 0x06020000 0x0 0x1000>; interrupts = , ; clocks = <&clk_msgbox0>; clock-names = "msgbox0"; local_id = <0>; status = "disabled"; }; twi0: twi@0x02502000{ #address-cells = <1>; #size-cells = <0>; compatible = "allwinner,sun8i-twi"; device_type = "twi0"; reg = <0x0 0x02502000 0x0 0x400>; interrupts = ; clocks = <&clk_twi0>; dmas = <&dma0 43>, <&dma0 43>; dma-name = "tx", "rx"; status = "disabled"; }; twi1: twi@0x02502400{ #address-cells = <1>; #size-cells = <0>; compatible = "allwinner,sun8i-twi"; device_type = "twi1"; reg = <0x0 0x02502400 0x0 0x400>; interrupts = ; clocks = <&clk_twi1>; dmas = <&dma0 44>, <&dma0 44>; dma-name = "tx", "rx"; status = "disabled"; }; twi2: twi@0x02502800{ #address-cells = <1>; #size-cells = <0>; compatible = "allwinner,sun50i-twi"; device_type = "twi2"; reg = <0x0 0x02502800 0x0 0x400>; interrupts = ; dmas = <&dma0 45>, <&dma0 45>; dma-name = "tx", "rx"; clocks = <&clk_twi2>; status = "disabled"; }; twi3: twi@0x02502c00{ #address-cells = <1>; #size-cells = <0>; compatible = "allwinner,sun8i-twi"; device_type = "twi3"; reg = <0x0 0x02502c00 0x0 0x400>; interrupts = ; dmas = <&dma0 46>, <&dma0 46>; dma-name = "tx", "rx"; clocks = <&clk_twi3>; status = "disabled"; }; twi4: twi@0x02503000{ #address-cells = <1>; #size-cells = <0>; compatible = "allwinner,sun8i-twi"; device_type = "twi4"; reg = <0x0 0x02503000 0x0 0x400>; interrupts = ; clocks = <&clk_twi4>; dmas = <&dma0 47>, <&dma0 47>; dma-name = "tx", "rx"; status = "disabled"; }; dma0: dma-controller@03002000 { compatible = "allwinner,sun8i-dma"; reg = <0x0 0x03002000 0x0 0x1000>; interrupts = ; #dma-cells = <1>; }; pwm: pwm@2000c00 { compatible = "allwinner,sunxi-pwm"; reg = <0x0 0x02000c00 0x0 0x3f0>; clocks = <&clk_pwm>; pwm-number = <12>; pwm-base = <0>; pwms = <&pwm0>, <&pwm1>, <&pwm2>, <&pwm3>, <&pwm4>, <&pwm5>, <&pwm6>, <&pwm7>, <&pwm8>, <&pwm9>, <&pwm10>, <&pwm11>; }; pwm0: pwm0@2000c10 { compatible = "allwinner,sunxi-pwm0"; reg = <0x0 0x02000c10 0x0 0x4>; reg_base = <0x02000c00>; }; pwm1: pwm1@2000c11 { compatible = "allwinner,sunxi-pwm1"; reg = <0x0 0x02000c11 0x0 0x4>; reg_base = <0x02000c00>; }; pwm2: pwm2@2000c12 { compatible = "allwinner,sunxi-pwm2"; reg = <0x0 0x02000c12 0x0 0x4>; reg_base = <0x02000c00>; }; pwm3: pwm3@2000c13 { compatible = "allwinner,sunxi-pwm3"; reg = <0x0 0x02000c13 0x0 0x4>; reg_base = <0x02000c00>; }; pwm4: pwm4@2000c14 { compatible = "allwinner,sunxi-pwm4"; reg = <0x0 0x02000c14 0x0 0x4>; reg_base = <0x02000c00>; }; pwm5: pwm5@2000c15 { compatible = "allwinner,sunxi-pwm5"; reg = <0x0 0x02000c15 0x0 0x4>; reg_base = <0x02000c00>; }; pwm6: pwm6@2000c16 { compatible = "allwinner,sunxi-pwm6"; reg = <0x0 0x02000c16 0x0 0x4>; reg_base = <0x02000c00>; }; pwm7: pwm7@2000c17 { compatible = "allwinner,sunxi-pwm7"; reg = <0x0 0x02000c17 0x0 0x4>; reg_base = <0x02000c00>; }; pwm8: pwm8@2000c18 { compatible = "allwinner,sunxi-pwm8"; reg = <0x0 0x02000c18 0x0 0x4>; reg_base = <0x02000c00>; }; pwm9: pwm9@2000c19 { compatible = "allwinner,sunxi-pwm9"; reg = <0x0 0x02000c19 0x0 0x4>; reg_base = <0x02000c00>; }; pwm10: pwm10@2000c1a { compatible = "allwinner,sunxi-pwm10"; reg = <0x0 0x02000c1a 0x0 0x4>; reg_base = <0x02000c00>; }; pwm11: pwm11@2000c1b { compatible = "allwinner,sunxi-pwm11"; reg = <0x0 0x02000c1b 0x0 0x4>; reg_base = <0x02000c00>; }; sid@3006000 { compatible = "allwinner,sun8iw21p1-sid", "allwinner,sunxi-sid"; reg = <0x0 0x03006000 0 0x1000>; #address-cells = <1>; #size-cells = <1>; ths_calib: calib@14 { reg = <0x14 8>; }; cpubin_efuse: bin@18 { reg = <0x18 4>; }; }; chipid: sunxi-chipid@03006200 { compatible = "allwinner,sunxi-chipid"; device_type = "chipid"; reg = <0x0 0x03006200 0 0xC0>; }; gpadc:gpadc@2009000 { compatible = "allwinner,sunxi-gpadc"; reg = <0x0 0x02009000 0x0 0x400>; interrupts = ; clocks = <&clk_gpadc>; status = "disabled"; }; sdc2: sdmmc@4022000 { compatible = "allwinner,sunxi-mmc-v4p6x"; device_type = "sdc2"; reg = <0x0 0x04022000 0x0 0x1000>; interrupts = ; clocks = <&clk_hosc>, <&clk_pll_periph0600m>, <&clk_sdmmc2_mod>, <&clk_sdmmc2_bus>, <&clk_sdmmc2_rst>; clock-names = "osc24m","pll_periph","mmc","ahb","rst"; pinctrl-names = "default","sleep"; pinctrl-0 = <&sdc2_pins_a &sdc2_pins_c>; pinctrl-1 = <&sdc2_pins_b>; bus-width = <8>; req-page-count = <2>; cap-mmc-highspeed; cap-cmd23; mmc-cache-ctrl; non-removable; /*max-frequency = <200000000>;*/ max-frequency = <50000000>; cap-erase; mmc-high-capacity-erase-size; no-sdio; no-sd; /*-- speed mode --*/ /*sm0: DS26_SDR12*/ /*sm1: HSSDR52_SDR25*/ /*sm2: HSDDR52_DDR50*/ /*sm3: HS200_SDR104*/ /*sm4: HS400*/ /*-- frequency point --*/ /*f0: CLK_400K*/ /*f1: CLK_25M*/ /*f2: CLK_50M*/ /*f3: CLK_100M*/ /*f4: CLK_150M*/ /*f5: CLK_200M*/ sdc_tm4_sm0_freq0 = <0>; sdc_tm4_sm0_freq1 = <0>; sdc_tm4_sm1_freq0 = <0x00000000>; sdc_tm4_sm1_freq1 = <0>; sdc_tm4_sm2_freq0 = <0x00000000>; sdc_tm4_sm2_freq1 = <0>; sdc_tm4_sm3_freq0 = <0x05000000>; sdc_tm4_sm3_freq1 = <0x00000005>; sdc_tm4_sm4_freq0 = <0x00050000>; sdc_tm4_sm4_freq1 = <0x00000004>; sdc_tm4_sm4_freq0_cmd = <0>; sdc_tm4_sm4_freq1_cmd = <0>; ctl-spec-caps = <0x308>; /*vmmc-supply = <®_3p3v>;*/ /*vqmc-supply = <®_3p3v>;*/ /*vdmc-supply = <®_3p3v>;*/ /*vmmc = "vcc-card";*/ /*vqmc = "";*/ /*vdmc = "";*/ /*sunxi-power-save-mode;*/ status = "disabled"; }; sdc0: sdmmc@4020000 { compatible = "allwinner,sunxi-mmc-v5p3x"; device_type = "sdc0"; reg = <0x0 0x04020000 0x0 0x1000>; interrupts = ; clocks = <&clk_hosc>, <&clk_pll_periph0300m>, <&clk_sdmmc0_mod>, <&clk_sdmmc0_bus>, <&clk_sdmmc0_rst>; clock-names = "osc24m","pll_periph","mmc","ahb","rst"; pinctrl-names = "default","sleep","uart_jtag"; pinctrl-0 = <&sdc0_pins_a>; pinctrl-1 = <&sdc0_pins_b>; pinctrl-2 = <&sdc0_pins_c>; max-frequency = <50000000>; bus-width = <4>; ctl-spec-caps = <0x8>; /*non-removable;*/ /*broken-cd;*/ /*cd-inverted*/ /*cd-gpios = <&pio PF 6 GPIO_ACTIVE_LOW>;*/ /* vmmc-supply = <®_3p3v>;*/ /* vqmc-supply = <®_3p3v>;*/ /* vdmc-supply = <®_3p3v>;*/ /*vmmc = "vcc-card";*/ /*vqmc = "";*/ /*vdmc = "";*/ cap-sd-highspeed; cap-wait-while-busy; no-sdio; no-mmc; /*sd-uhs-sdr50;*/ /*sd-uhs-ddr50;*/ /*cap-sdio-irq;*/ /*keep-power-in-suspend;*/ /*ignore-pm-notify;*/ /*sunxi-power-save-mode;*/ /*sunxi-dly-400k = <1 0 0 0>; */ /*sunxi-dly-26M = <1 0 0 0>;*/ /*sunxi-dly-52M = <1 0 0 0>;*/ /*sunxi-dly-52M-ddr4 = <1 0 0 0>;*/ /*sunxi-dly-52M-ddr8 = <1 0 0 0>;*/ /*sunxi-dly-104M = <1 0 0 0>;*/ sunxi-dly-208M = <1 1 0 0 0 0>; /*sunxi-dly-104M-ddr = <1 0 0 0>;*/ /*sunxi-dly-208M-ddr = <1 0 0 0>;*/ status = "disabled"; }; sdc1: sdmmc@04021000 { compatible = "allwinner,sunxi-mmc-v5p3x"; device_type = "sdc1"; reg = <0x0 0x04021000 0x0 0x1000>; interrupts = ; clocks = <&clk_hosc>, <&clk_pll_periph0300m>, <&clk_sdmmc1_mod>, <&clk_sdmmc1_bus>, <&clk_sdmmc1_rst>; clock-names = "osc24m","pll_periph","mmc","ahb","rst"; pinctrl-names = "default","sleep"; pinctrl-0 = <&sdc1_pins_a>; pinctrl-1 = <&sdc1_pins_b>; max-frequency = <50000000>; bus-width = <4>; ctl-spec-caps = <0x8>; /*broken-cd;*/ /*cd-inverted*/ /*cd-gpios = <&pio PG 6 6 1 2 0>;*/ /* vmmc-supply = <®_3p3v>;*/ /* vqmc-supply = <®_3p3v>;*/ /* vdmc-supply = <®_3p3v>;*/ /*vmmc = "vcc-card";*/ /*vqmc = "";*/ /*vdmc = "";*/ /*sd-uhs-sdr50;*/ /*sd-uhs-ddr50;*/ /*sd-uhs-sdr104;*/ cap-sd-highspeed; cap-mmc-highspeed; cap-wait-while-busy; /*cap-sdio-irq;*/ /*keep-power-in-suspend;*/ /*ignore-pm-notify;*/ /*sunxi-power-save-mode;*/ /*sunxi-dly-400k = <1 0 0 0 0>; */ /*sunxi-dly-26M = <1 0 0 0 0>;*/ /*sunxi-dly-52M = <1 0 0 0 0>;*/ sunxi-dly-52M-ddr4 = <1 0 0 0 2>; /*sunxi-dly-52M-ddr8 = <1 0 0 0 0>;*/ sunxi-dly-104M = <1 0 0 0 1>; /*sunxi-dly-208M = <1 1 0 0 0>;*/ sunxi-dly-208M = <1 1 0 0 0 0>; /*sunxi-dly-104M-ddr = <1 0 0 0 0>;*/ /*sunxi-dly-208M-ddr = <1 0 0 0 0>;*/ status = "disabled"; }; g2d: g2d@05410000 { compatible = "allwinner,sunxi-g2d"; reg = <0x0 0x05410000 0x0 0xbffff>; interrupts = ; clocks = <&clk_g2d>; iommus = <&mmu_aw 3 1>; status = "okay"; }; disp: disp@05000000 { compatible = "allwinner,sunxi-disp"; reg = <0x0 0x05000000 0x0 0x00300000>,/*de*/ <0x0 0x05460000 0x0 0xfff>,/*disp top*/ <0x0 0x05461000 0x0 0x07fc>,/*tcon0*/ <0x0 0x05450000 0x0 0x10fc>;/*dsi*/ interrupts = , ;/* for dsi */ clocks = <&clk_de>,<&clk_dpss_top>,<&clk_tcon_lcd>, <&clk_mipi_dsi>; iommus = <&mmu_aw 2 0>; boot_disp = <0>; fb_base = <0>; status = "okay"; }; lcd0: lcd0@05461000 { compatible = "allwinner,sunxi-lcd0"; pinctrl-names = "active","sleep"; status = "okay"; }; usbc0:usbc0@0 { device_type = "usbc0"; compatible = "allwinner,sunxi-otg-manager"; usb_port_type = <2>; usb_detect_type = <1>; usb_id_gpio; usb_det_vbus_gpio; usb_drv_vbus_gpio; usb_host_init_state = <0>; usb_regulator_io = "nocare"; usb_wakeup_suspend = <0>; usb_luns = <3>; usb_serial_unique = <0>; usb_serial_number = "20080411"; rndis_wceis = <1>; /* wakeup-source; */ status = "okay"; }; udc:udc-controller@0x4100000 { compatible = "allwinner,sunxi-udc"; reg = <0x0 0x04100000 0x0 0x1000>, <0x0 0x00000000 0x0 0x100>; interrupts = ; clocks = <&clk_usbphy0>, <&clk_usbotg>; status = "okay"; }; ehci0:ehci0-controller@0x4101000 { compatible = "allwinner,sunxi-ehci0"; reg = <0x0 0x04101000 0x0 0xFFF>, <0x0 0x00000000 0x0 0x100>, <0x0 0x04100000 0x0 0x1000>; interrupts = ; clocks = <&clk_usbphy0>, <&clk_usbehci0>; hci_ctrl_no = <0>; status = "okay"; }; ohci0:ohci0-controller@0x4101400 { compatible = "allwinner,sunxi-ohci0"; reg = <0x0 0x04101000 0x0 0xFFF>, <0x0 0x00000000 0x0 0x100>, <0x0 0x04100000 0x0 0x1000>; interrupts = ; clocks = <&clk_usbphy0>, <&clk_usbohci0>, <&clk_usbohci0_12m>, <&clk_osc48m>, <&clk_hosc>, <&clk_losc>; hci_ctrl_no = <0>; status = "okay"; }; rtc: rtc@7090000 { compatible = "allwinner,sunxi-rtc"; device_type = "rtc"; auto_switch; wakeup-source; reg = <0x0 0x07090000 0x0 0x1a0>; interrupts = ; gpr_offset = <0x100>; gpr_len = <8>; gpr_cur_pos = <6>; }; codec_has:codec_has@0x02030000 { #sound-dai-cells = <0>; compatible = "has,has-snd-codec"; reg = <0x0 0x02030000 0x0 0x34C>; clocks = <&clk_pll_audio>, <&clk_codec_dac>, <&clk_codec_adc>; status = "disabled"; }; /* audio dirver module -> audio codec */ codec:codec@0x02030000 { #sound-dai-cells = <0>; compatible = "allwinner,sunxi-snd-codec"; reg = <0x0 0x02030000 0x0 0x34C>; clocks = <&clk_pll_audio>, <&clk_codec_dac>, <&clk_codec_adc>; status = "disabled"; }; codec_plat:codec_plat { #sound-dai-cells = <0>; compatible = "allwinner,sunxi-snd-plat-aaudio"; playback-cma = <128>; capture-cma = <128>; tx-fifo-size = <128>; rx-fifo-size = <128>; dac-txdata = <0x02030020>; adc-txdata = <0x02030040>; status = "disabled"; }; codec_mach:codec_mach { compatible = "allwinner,sunxi-snd-mach"; soundcard-mach,name = "audiocodec"; soundcard-mach,pin-switches = "MIC1", "MIC2", "LINEIN", "LINEOUT", "SPK"; soundcard-mach,routing = "MIC1_PIN", "MIC1", "MIC2_PIN", "MIC2", "LINEINL_PIN", "LINEIN", "LINEINR_PIN", "LINEIN", "LINEOUT", "LINEOUTL_PIN", "SPK", "LINEOUTL_PIN"; status = "disabled"; soundcard-mach,cpu { sound-dai = <&codec_plat>; }; soundcard-mach,codec { /* pll freq = 24.576M or 22.5792M * pll-fs */ soundcard-mach,pll-fs = <1>; sound-dai = <&codec>; }; }; /* audio dirver module -> DMIC */ dmic_plat:dmic_plat@0x02031000 { #sound-dai-cells = <0>; compatible = "allwinner,sunxi-snd-plat-dmic"; reg = <0x0 0x02031000 0x0 0x50>; clocks = <&clk_pll_audio>, <&clk_dmic>; capture-cma = <128>; rx_fifo-size = <128>; status = "disabled"; }; dmic_mach:dmic_mach{ compatible = "allwinner,sunxi-snd-mach"; soundcard-mach,name = "snddmic"; soundcard-mach,capture-only; status = "disabled"; soundcard-mach,cpu { sound-dai = <&dmic_plat>; }; soundcard-mach,codec { }; }; /* audio dirver module -> I2S/PCM */ daudio0_plat:daudio0_plat@0x02032000 { #sound-dai-cells = <0>; compatible = "allwinner,sunxi-snd-plat-daudio"; reg = <0x0 0x02032000 0x0 0x7c>; clocks = <&clk_pll_audio>, <&clk_i2s0>; playback-cma = <128>; capture-cma = <128>; tx-fifo-size = <128>; rx-fifo-size = <128>; status = "disabled"; }; daudio0_mach:daudio0_mach{ compatible = "allwinner,sunxi-snd-mach"; soundcard-mach,format = "i2s"; soundcard-mach,name = "snddaudio0"; status = "disabled"; soundcard-mach,cpu { sound-dai = <&daudio0_plat>; }; soundcard-mach,codec { }; }; daudio1_plat:daudio1_plat@0x02033000 { #sound-dai-cells = <0>; compatible = "allwinner,sunxi-snd-plat-daudio"; reg = <0x0 0x02033000 0x0 0x7c>; clocks = <&clk_pll_audio>, <&clk_i2s1>; playback-cma = <128>; capture-cma = <128>; tx-fifo-size = <128>; rx-fifo-size = <128>; status = "disabled"; }; daudio1_mach:daudio1_mach{ compatible = "allwinner,sunxi-snd-mach"; soundcard-mach,format = "i2s"; soundcard-mach,name = "snddaudio1"; status = "disabled"; soundcard-mach,cpu { sound-dai = <&daudio1_plat>; }; soundcard-mach,codec { }; }; /* audio dirver module -> END */ wiegand:wiegand@0x02020000 { compatible = "allwinner,sunxi-wiegand"; reg = <0x0 0x02020000 0x0 0x200>; interrupts = ; clocks = <&clk_wiegand>,<&clk_apb0>; clock-names = "pclk", "wclk"; status = "disabled"; }; gmac0: eth@4500000 { compatible = "allwinner,sunxi-gmac"; reg = <0x0 0x04500000 0x0 0x10000>, <0x0 0x03000030 0x0 0x4>; interrupts = ; interrupt-names = "gmacirq"; clocks = <&clk_gmac>, <&clk_gmac_25m>; clock-names = "gmac", "ephy"; device_type = "gmac0"; gmac-power0; gmac-power1; gmac-power2; status = "okay"; }; vind0:vind@0 { compatible = "allwinner,sunxi-vin-media", "simple-bus"; #address-cells = <2>; #size-cells = <2>; ranges; device_id = <0>; vind0_clk = <300000000>; reg = <0x0 0x05800800 0x0 0x200>, <0x0 0x05800000 0x0 0x800>, <0x0 0x05810000 0x0 0x100>; interrupts = ; clocks = <&clk_csi_top>, <&clk_pll_csix4>, <&clk_csi_master0>, <&clk_hosc>, <&clk_pll_csix4>, <&clk_csi_master1>, <&clk_hosc>, <&clk_pll_csix4>, <&clk_csi_master2>, <&clk_hosc>, <&clk_pll_csix4>, <&clk_isp>, <&clk_pll_periph0300m>, <&clk_pll_periph0400m>; pinctrl-names = "mclk0-default","mclk0-sleep", "mclk1-default","mclk1-sleep", "mclk2-default","mclk2-sleep"; pinctrl-0 = <&csi_mclk0_pins_a>; pinctrl-1 = <&csi_mclk0_pins_b>; pinctrl-2 = <&csi_mclk1_pins_a>; pinctrl-3 = <&csi_mclk1_pins_b>; pinctrl-4 = <&csi_mclk2_pins_a>; pinctrl-5 = <&csi_mclk2_pins_b>; status = "okay"; csi0:csi@0 { device_type = "csi0"; compatible = "allwinner,sunxi-csi"; reg = <0x0 0x05820000 0x0 0x1000>; interrupts = ; device_id = <0>; status = "okay"; }; csi1:csi@1 { device_type = "csi1"; compatible = "allwinner,sunxi-csi"; reg = <0x0 0x05821000 0x0 0x1000>; interrupts = ; device_id = <1>; status = "okay"; }; csi2:csi@2 { device_type = "csi2"; compatible = "allwinner,sunxi-csi"; reg = <0x0 0x05822000 0x0 0x1000>; interrupts = ; pinctrl-names = "default","sleep"; pinctrl-0 = <&ncsi_pins_a>; pinctrl-1 = <&ncsi_pins_b>; device_id = <2>; status = "okay"; }; mipi0:mipi@0 { compatible = "allwinner,sunxi-mipi"; reg = <0x0 0x05810100 0x0 0x100>, <0x0 0x05811000 0x0 0x400>; interrupts = ; pinctrl-names = "mipi0-default","mipi0-sleep", "mipi1-4lane-default","mipi1-4lane-sleep"; pinctrl-0 = <&mipia_pins_a>; pinctrl-1 = <&mipia_pins_b>; pinctrl-2 = <&mipib_4lane_pins_a>; pinctrl-3 = <&mipib_4lane_pins_b>; device_id = <0>; status = "okay"; }; mipi1:mipi@1 { compatible = "allwinner,sunxi-mipi"; reg = <0x0 0x05810200 0x0 0x100>, <0x0 0x05811400 0x0 0x400>; pinctrl-names = "mipi1-default","mipi1-sleep"; pinctrl-0 = <&mipib_pins_a>; pinctrl-1 = <&mipib_pins_b>; device_id = <1>; status = "okay"; }; tdm0:tdm@0 { compatible = "allwinner,sunxi-tdm"; reg = <0x0 0x05908000 0x0 0x340>; interrupts = ; device_id = <0>; work_mode = <0>; iommus = <&mmu_aw 4 1>; status = "okay"; }; isp00:isp@0 { compatible = "allwinner,sunxi-isp"; reg = <0x0 0x05900000 0x0 0x1300>, <0x0 0x03000000 0x0 0x10>; interrupts = ; work_mode = <0>; device_id = <0>; iommus = <&mmu_aw 4 1>; status = "okay"; }; isp01:isp@1 { compatible = "allwinner,sunxi-isp"; reg = <0x0 0x058ffffc 0x0 0x1304>; interrupts = ; work_mode = <0xff>; device_id = <1>; iommus = <&mmu_aw 4 1>; status = "okay"; }; isp02:isp@2 { compatible = "allwinner,sunxi-isp"; reg = <0x0 0x058ffff8 0x0 0x1308>; interrupts = ; work_mode = <0xff>; device_id = <2>; iommus = <&mmu_aw 4 1>; status = "okay"; }; isp03:isp@3 { compatible = "allwinner,sunxi-isp"; reg = <0x0 0x058ffff4 0x0 0x130c>; interrupts = ; work_mode = <0xff>; device_id = <3>; iommus = <&mmu_aw 4 1>; status = "okay"; }; isp10:isp@4 { compatible = "allwinner,sunxi-isp"; device_id = <4>; iommus = <&mmu_aw 4 1>; status = "okay"; }; scaler00:scaler@0 { compatible = "allwinner,sunxi-scaler"; reg = <0x0 0x05910000 0x0 0x400>; interrupts = ; work_mode = <0>; device_id = <0>; iommus = <&mmu_aw 1 1>; status = "okay"; }; scaler01:scaler@1 { compatible = "allwinner,sunxi-scaler"; reg = <0x0 0x0590fffc 0x0 0x404>; work_mode = <0xff>; device_id = <1>; iommus = <&mmu_aw 1 1>; status = "okay"; }; scaler02:scaler@2 { compatible = "allwinner,sunxi-scaler"; reg = <0x0 0x0590fff8 0x0 0x408>; work_mode = <0xff>; device_id = <2>; iommus = <&mmu_aw 1 1>; status = "okay"; }; scaler03:scaler@3 { compatible = "allwinner,sunxi-scaler"; reg = <0x0 0x0590fff4 0x0 0x40c>; work_mode = <0xff>; device_id = <3>; iommus = <&mmu_aw 1 1>; status = "okay"; }; scaler10:scaler@4 { compatible = "allwinner,sunxi-scaler"; reg = <0x0 0x05910400 0x0 0x400>; interrupts = ; work_mode = <0>; device_id = <4>; iommus = <&mmu_aw 1 1>; status = "okay"; }; scaler11:scaler@5 { compatible = "allwinner,sunxi-scaler"; reg = <0x0 0x059103fc 0x0 0x404>; work_mode = <0xff>; device_id = <5>; iommus = <&mmu_aw 1 1>; status = "okay"; }; scaler12:scaler@6 { compatible = "allwinner,sunxi-scaler"; reg = <0x0 0x059103f8 0x0 0x408>; work_mode = <0xff>; device_id = <6>; iommus = <&mmu_aw 1 1>; status = "okay"; }; scaler13:scaler@7 { compatible = "allwinner,sunxi-scaler"; reg = <0x0 0x059103f4 0x0 0x40c>; work_mode = <0xff>; device_id = <7>; iommus = <&mmu_aw 1 1>; status = "okay"; }; scaler20:scaler@8 { compatible = "allwinner,sunxi-scaler"; reg = <0x0 0x05910800 0x0 0x400>; interrupts = ; work_mode = <0>; device_id = <8>; iommus = <&mmu_aw 1 1>; status = "okay"; }; scaler21:scaler@9 { compatible = "allwinner,sunxi-scaler"; reg = <0x0 0x059107fc 0x0 0x404>; work_mode = <0xff>; device_id = <9>; iommus = <&mmu_aw 1 1>; status = "okay"; }; scaler22:scaler@10 { compatible = "allwinner,sunxi-scaler"; reg = <0x0 0x059107f8 0x0 0x408>; work_mode = <0xff>; device_id = <10>; iommus = <&mmu_aw 1 1>; status = "okay"; }; scaler23:scaler@11 { compatible = "allwinner,sunxi-scaler"; reg = <0x0 0x059107f4 0x0 0x40c>; work_mode = <0xff>; device_id = <11>; iommus = <&mmu_aw 1 1>; status = "okay"; }; scaler30:scaler@12 { compatible = "allwinner,sunxi-scaler"; reg = <0x0 0x05910c00 0x0 0x400>; interrupts = ; work_mode = <0>; device_id = <12>; iommus = <&mmu_aw 1 1>; status = "okay"; }; scaler31:scaler@13 { compatible = "allwinner,sunxi-scaler"; reg = <0x0 0x05910bfc 0x0 0x404>; work_mode = <0xff>; device_id = <13>; iommus = <&mmu_aw 1 1>; status = "okay"; }; scaler32:scaler@14 { compatible = "allwinner,sunxi-scaler"; reg = <0x0 0x05910bf8 0x0 0x408>; work_mode = <0xff>; device_id = <14>; iommus = <&mmu_aw 1 1>; status = "okay"; }; scaler33:scaler@15 { compatible = "allwinner,sunxi-scaler"; reg = <0x0 0x05910bf4 0x0 0x40c>; work_mode = <0xff>; device_id = <15>; iommus = <&mmu_aw 1 1>; status = "okay"; }; actuator0:actuator@0 { device_type = "actuator0"; compatible = "allwinner,sunxi-actuator"; actuator0_name = "ad5820_act"; actuator0_slave = <0x18>; actuator0_af_pwdn = <>; actuator0_afvdd = "afvcc-csi"; actuator0_afvdd_vol = <2800000>; status = "disabled"; }; flash0:flash@0 { device_type = "flash0"; compatible = "allwinner,sunxi-flash"; flash0_type = <2>; flash0_en = <>; flash0_mode = <>; flash0_flvdd = ""; flash0_flvdd_vol = <>; device_id = <0>; status = "disabled"; }; sensor0:sensor@0 { device_type = "sensor0"; compatible = "allwinner,sunxi-sensor"; sensor0_mname = "gc2053_mipi"; sensor0_twi_cci_id = <1>; sensor0_twi_addr = <0x6e>; sensor0_mclk_id = <0>; sensor0_pos = "rear"; sensor0_isp_used = <1>; sensor0_fmt = <1>; sensor0_stby_mode = <0>; sensor0_vflip = <0>; sensor0_hflip = <0>; sensor0_iovdd-supply = <>; sensor0_iovdd_vol = <1800000>; sensor0_avdd-supply = <>; sensor0_avdd_vol = <2800000>; sensor0_dvdd-supply = <>; sensor0_dvdd_vol = <1200000>; sensor0_power_en = <>; sensor0_reset = <>; sensor0_pwdn = <>; sensor0_sm_hs = <>; sensor0_sm_vs = <>; flash_handle = <&flash0>; act_handle = <&actuator0>; device_id = <0>; status = "okay"; }; sensor1:sensor@1 { device_type = "sensor1"; compatible = "allwinner,sunxi-sensor"; sensor1_mname = "ov5647"; sensor1_twi_cci_id = <1>; sensor1_twi_addr = <0x6c>; sensor1_mclk_id = <3>; sensor1_pos = "front"; sensor1_isp_used = <0>; sensor1_fmt = <0>; sensor1_stby_mode = <0>; sensor1_vflip = <0>; sensor1_hflip = <0>; sensor1_iovdd-supply = <>; sensor1_iovdd_vol = <1800000>; sensor1_avdd-supply = <>; sensor1_avdd_vol = <2800000>; sensor1_dvdd-supply = <>; sensor1_dvdd_vol = <1200000>; sensor1_power_en = <>; sensor1_reset = <>; sensor1_pwdn = <>; sensor1_sm_hs = <>; sensor1_sm_vs = <>; flash_handle = <>; act_handle = <>; device_id = <1>; status = "okay"; }; vinc00:vinc@0 { device_type = "vinc0"; compatible = "allwinner,sunxi-vin-core"; reg = <0x0 0x05830000 0x0 0x1000>; interrupts = ; vinc0_csi_sel = <0>; vinc0_mipi_sel = <0>; vinc0_isp_sel = <0>; vinc0_isp_tx_ch = <0>; vinc0_tdm_rx_sel = <0>; vinc0_rear_sensor_sel = <0>; vinc0_front_sensor_sel = <0>; vinc0_sensor_list = <0>; device_id = <0>; work_mode = <0x0>; iommus = <&mmu_aw 1 1>; status = "okay"; }; vinc01:vinc@1 { device_type = "vinc1"; compatible = "allwinner,sunxi-vin-core"; reg = <0x0 0x0582fffc 0x0 0x1004>; vinc1_csi_sel = <2>; vinc1_mipi_sel = <0xff>; vinc1_isp_sel = <1>; vinc1_isp_tx_ch = <1>; vinc1_tdm_rx_sel = <1>; vinc1_rear_sensor_sel = <0>; vinc1_front_sensor_sel = <0>; vinc1_sensor_list = <0>; device_id = <1>; work_mode = <0xff>; iommus = <&mmu_aw 1 1>; status = "disabled"; }; vinc02:vinc@2 { device_type = "vinc2"; compatible = "allwinner,sunxi-vin-core"; reg = <0x0 0x0582fff8 0x0 0x1008>; vinc2_csi_sel = <2>; vinc2_mipi_sel = <0xff>; vinc2_isp_sel = <2>; vinc2_isp_tx_ch = <2>; vinc2_tdm_rx_sel = <2>; vinc2_rear_sensor_sel = <0>; vinc2_front_sensor_sel = <0>; vinc2_sensor_list = <0>; device_id = <2>; work_mode = <0xff>; iommus = <&mmu_aw 1 1>; status = "disabled"; }; vinc03:vinc@3 { device_type = "vinc3"; compatible = "allwinner,sunxi-vin-core"; reg = <0x0 0x0582fff4 0x0 0x100c>; vinc3_csi_sel = <0>; vinc3_mipi_sel = <0xff>; vinc3_isp_sel = <0>; vinc3_isp_tx_ch = <0>; vinc3_tdm_rx_sel = <0>; vinc3_rear_sensor_sel = <1>; vinc3_front_sensor_sel = <1>; vinc3_sensor_list = <0>; device_id = <3>; work_mode = <0xff>; iommus = <&mmu_aw 1 1>; status = "disabled"; }; vinc10:vinc@4 { device_type = "vinc4"; compatible = "allwinner,sunxi-vin-core"; reg = <0x0 0x05831000 0x0 0x1000>; interrupts = ; vinc4_csi_sel = <0>; vinc4_mipi_sel = <0xff>; vinc4_isp_sel = <0>; vinc4_isp_tx_ch = <0>; vinc4_tdm_rx_sel = <0>; vinc4_rear_sensor_sel = <1>; vinc4_front_sensor_sel = <1>; vinc4_sensor_list = <0>; device_id = <4>; work_mode = <0x0>; iommus = <&mmu_aw 1 1>; status = "disabled"; }; vinc11:vinc@5 { device_type = "vinc5"; compatible = "allwinner,sunxi-vin-core"; reg = <0x0 0x05830ffc 0x0 0x1004>; vinc5_csi_sel = <2>; vinc5_mipi_sel = <0xff>; vinc5_isp_sel = <1>; vinc5_isp_tx_ch = <1>; vinc5_tdm_rx_sel = <1>; vinc5_rear_sensor_sel = <0>; vinc5_front_sensor_sel = <0>; vinc5_sensor_list = <0>; device_id = <5>; work_mode = <0xff>; iommus = <&mmu_aw 1 1>; status = "disabled"; }; vinc12:vinc@6 { device_type = "vinc6"; compatible = "allwinner,sunxi-vin-core"; reg = <0x0 0x05830ff8 0x0 0x1008>; vinc6_csi_sel = <2>; vinc6_mipi_sel = <0xff>; vinc6_isp_sel = <0>; vinc6_isp_tx_ch = <0>; vinc6_tdm_rx_sel = <0>; vinc6_rear_sensor_sel = <0>; vinc6_front_sensor_sel = <0>; vinc6_sensor_list = <0>; device_id = <6>; work_mode = <0xff>; iommus = <&mmu_aw 1 1>; status = "disabled"; }; vinc13:vinc@7 { device_type = "vinc7"; compatible = "allwinner,sunxi-vin-core"; reg = <0x0 0x05830ff4 0x0 0x100c>; vinc7_csi_sel = <2>; vinc7_mipi_sel = <0xff>; vinc7_isp_sel = <0>; vinc7_isp_tx_ch = <0>; vinc7_tdm_rx_sel = <0>; vinc7_rear_sensor_sel = <0>; vinc7_front_sensor_sel = <0>; vinc7_sensor_list = <0>; device_id = <7>; work_mode = <0xff>; iommus = <&mmu_aw 1 1>; status = "disabled"; }; vinc20:vinc@8 { device_type = "vinc8"; compatible = "allwinner,sunxi-vin-core"; reg = <0x0 0x05832000 0x0 0x1000>; interrupts = ; vinc8_csi_sel = <2>; vinc8_mipi_sel = <0xff>; vinc8_isp_sel = <4>; vinc8_isp_tx_ch = <3>; vinc8_tdm_rx_sel = <3>; vinc8_rear_sensor_sel = <0>; vinc8_front_sensor_sel = <0>; vinc8_sensor_list = <0>; device_id = <8>; work_mode = <0x0>; iommus = <&mmu_aw 1 1>; status = "disabled"; }; vinc21:vinc@9 { device_type = "vinc9"; compatible = "allwinner,sunxi-vin-core"; reg = <0x0 0x05831ffc 0x0 0x1004>; vinc9_csi_sel = <2>; vinc9_mipi_sel = <0xff>; vinc9_isp_sel = <0>; vinc9_isp_tx_ch = <0>; vinc9_tdm_rx_sel = <0>; vinc9_rear_sensor_sel = <0>; vinc9_front_sensor_sel = <0>; vinc9_sensor_list = <0>; device_id = <9>; work_mode = <0xff>; iommus = <&mmu_aw 1 1>; status = "disabled"; }; vinc22:vinc@10 { device_type = "vinc10"; compatible = "allwinner,sunxi-vin-core"; reg = <0x0 0x05831ff8 0x0 0x1008>; vinc10_csi_sel = <2>; vinc10_mipi_sel = <0xff>; vinc10_isp_sel = <0>; vinc10_isp_tx_ch = <0>; vinc10_tdm_rx_sel = <0>; vinc10_rear_sensor_sel = <0>; vinc10_front_sensor_sel = <0>; vinc10_sensor_list = <0>; device_id = <10>; work_mode = <0xff>; iommus = <&mmu_aw 1 1>; status = "disabled"; }; vinc23:vinc@11 { device_type = "vinc11"; compatible = "allwinner,sunxi-vin-core"; reg = <0x0 0x05831ff4 0x0 0x100c>; vinc11_csi_sel = <2>; vinc11_mipi_sel = <0xff>; vinc11_isp_sel = <0>; vinc11_isp_tx_ch = <0>; vinc11_tdm_rx_sel = <0>; vinc11_rear_sensor_sel = <0>; vinc11_front_sensor_sel = <0>; vinc11_sensor_list = <0>; device_id = <11>; work_mode = <0xff>; iommus = <&mmu_aw 1 1>; status = "disabled"; }; vinc30:vinc@12 { device_type = "vinc12"; compatible = "allwinner,sunxi-vin-core"; reg = <0x0 0x05833000 0x0 0x1000>; interrupts = ; vinc12_csi_sel = <2>; vinc12_mipi_sel = <0xff>; vinc12_isp_sel = <0>; vinc12_isp_tx_ch = <0>; vinc12_tdm_rx_sel = <0>; vinc12_rear_sensor_sel = <0>; vinc12_front_sensor_sel = <0>; vinc12_sensor_list = <0>; device_id = <12>; work_mode = <0x0>; iommus = <&mmu_aw 1 1>; status = "disabled"; }; vinc31:vinc@13 { device_type = "vinc13"; compatible = "allwinner,sunxi-vin-core"; reg = <0x0 0x05832ffc 0x0 0x1004>; vinc13_csi_sel = <2>; vinc13_mipi_sel = <0xff>; vinc13_isp_sel = <0>; vinc13_isp_tx_ch = <0>; vinc13_tdm_rx_sel = <0>; vinc13_rear_sensor_sel = <0>; vinc13_front_sensor_sel = <0>; vinc13_sensor_list = <0>; device_id = <13>; work_mode = <0xff>; iommus = <&mmu_aw 1 1>; status = "disabled"; }; vinc32:vinc@14 { device_type = "vinc14"; compatible = "allwinner,sunxi-vin-core"; reg = <0x0 0x05832ff8 0x0 0x1008>; vinc14_csi_sel = <2>; vinc14_mipi_sel = <0xff>; vinc14_isp_sel = <0>; vinc14_isp_tx_ch = <0>; vinc14_tdm_rx_sel = <0>; vinc14_rear_sensor_sel = <0>; vinc14_front_sensor_sel = <0>; vinc14_sensor_list = <0>; device_id = <14>; work_mode = <0xff>; iommus = <&mmu_aw 1 1>; status = "disabled"; }; vinc33:vinc@15 { device_type = "vinc15"; compatible = "allwinner,sunxi-vin-core"; reg = <0x0 0x05832ff4 0x0 0x100c>; vinc15_csi_sel = <2>; vinc15_mipi_sel = <0xff>; vinc15_isp_sel = <0>; vinc15_isp_tx_ch = <0>; vinc15_tdm_rx_sel = <0>; vinc15_rear_sensor_sel = <0>; vinc15_front_sensor_sel = <0>; vinc15_sensor_list = <0>; device_id = <15>; work_mode = <0xff>; iommus = <&mmu_aw 1 1>; status = "disabled"; }; }; e907_standby: e907_standby@0 { compatible = "allwinner,sunxi-e907-standby"; firmware = "riscv.fex"; mboxes = <&msgbox 1>; mbox-names = "mbox-chan"; power-domains = <&pd V853_PD_E907>; status = "disabled"; }; }; };