162306a36Sopenharmony_ci/* 262306a36Sopenharmony_ci * Copyright (C) 2016 Icenowy Zheng <icenowy@aosc.xyz> 362306a36Sopenharmony_ci * Copyright (C) 2021 Tobias Schramm <t.schramm@manjaro.org> 462306a36Sopenharmony_ci * 562306a36Sopenharmony_ci * This file is dual-licensed: you can use it either under the terms 662306a36Sopenharmony_ci * of the GPL or the X11 license, at your option. Note that this dual 762306a36Sopenharmony_ci * licensing only applies to this file, and not this project as a 862306a36Sopenharmony_ci * whole. 962306a36Sopenharmony_ci * 1062306a36Sopenharmony_ci * a) This file is free software; you can redistribute it and/or 1162306a36Sopenharmony_ci * modify it under the terms of the GNU General Public License as 1262306a36Sopenharmony_ci * published by the Free Software Foundation; either version 2 of the 1362306a36Sopenharmony_ci * License, or (at your option) any later version. 1462306a36Sopenharmony_ci * 1562306a36Sopenharmony_ci * This file is distributed in the hope that it will be useful, 1662306a36Sopenharmony_ci * but WITHOUT ANY WARRANTY; without even the implied warranty of 1762306a36Sopenharmony_ci * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 1862306a36Sopenharmony_ci * GNU General Public License for more details. 1962306a36Sopenharmony_ci * 2062306a36Sopenharmony_ci * Or, alternatively, 2162306a36Sopenharmony_ci * 2262306a36Sopenharmony_ci * b) Permission is hereby granted, free of charge, to any person 2362306a36Sopenharmony_ci * obtaining a copy of this software and associated documentation 2462306a36Sopenharmony_ci * files (the "Software"), to deal in the Software without 2562306a36Sopenharmony_ci * restriction, including without limitation the rights to use, 2662306a36Sopenharmony_ci * copy, modify, merge, publish, distribute, sublicense, and/or 2762306a36Sopenharmony_ci * sell copies of the Software, and to permit persons to whom the 2862306a36Sopenharmony_ci * Software is furnished to do so, subject to the following 2962306a36Sopenharmony_ci * conditions: 3062306a36Sopenharmony_ci * 3162306a36Sopenharmony_ci * The above copyright notice and this permission notice shall be 3262306a36Sopenharmony_ci * included in all copies or substantial portions of the Software. 3362306a36Sopenharmony_ci * 3462306a36Sopenharmony_ci * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 3562306a36Sopenharmony_ci * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES 3662306a36Sopenharmony_ci * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 3762306a36Sopenharmony_ci * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT 3862306a36Sopenharmony_ci * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, 3962306a36Sopenharmony_ci * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 4062306a36Sopenharmony_ci * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 4162306a36Sopenharmony_ci * OTHER DEALINGS IN THE SOFTWARE. 4262306a36Sopenharmony_ci */ 4362306a36Sopenharmony_ci 4462306a36Sopenharmony_ci#include <dt-bindings/interrupt-controller/arm-gic.h> 4562306a36Sopenharmony_ci#include <dt-bindings/clock/sun6i-rtc.h> 4662306a36Sopenharmony_ci#include <dt-bindings/clock/sun8i-v3s-ccu.h> 4762306a36Sopenharmony_ci#include <dt-bindings/reset/sun8i-v3s-ccu.h> 4862306a36Sopenharmony_ci#include <dt-bindings/clock/sun8i-de2.h> 4962306a36Sopenharmony_ci 5062306a36Sopenharmony_ci/ { 5162306a36Sopenharmony_ci #address-cells = <1>; 5262306a36Sopenharmony_ci #size-cells = <1>; 5362306a36Sopenharmony_ci interrupt-parent = <&gic>; 5462306a36Sopenharmony_ci 5562306a36Sopenharmony_ci chosen { 5662306a36Sopenharmony_ci #address-cells = <1>; 5762306a36Sopenharmony_ci #size-cells = <1>; 5862306a36Sopenharmony_ci ranges; 5962306a36Sopenharmony_ci 6062306a36Sopenharmony_ci framebuffer-lcd { 6162306a36Sopenharmony_ci compatible = "allwinner,simple-framebuffer", 6262306a36Sopenharmony_ci "simple-framebuffer"; 6362306a36Sopenharmony_ci allwinner,pipeline = "mixer0-lcd0"; 6462306a36Sopenharmony_ci clocks = <&display_clocks CLK_MIXER0>, 6562306a36Sopenharmony_ci <&ccu CLK_TCON0>; 6662306a36Sopenharmony_ci status = "disabled"; 6762306a36Sopenharmony_ci }; 6862306a36Sopenharmony_ci }; 6962306a36Sopenharmony_ci 7062306a36Sopenharmony_ci cpus { 7162306a36Sopenharmony_ci #address-cells = <1>; 7262306a36Sopenharmony_ci #size-cells = <0>; 7362306a36Sopenharmony_ci 7462306a36Sopenharmony_ci cpu@0 { 7562306a36Sopenharmony_ci compatible = "arm,cortex-a7"; 7662306a36Sopenharmony_ci device_type = "cpu"; 7762306a36Sopenharmony_ci reg = <0>; 7862306a36Sopenharmony_ci clocks = <&ccu CLK_CPU>; 7962306a36Sopenharmony_ci }; 8062306a36Sopenharmony_ci }; 8162306a36Sopenharmony_ci 8262306a36Sopenharmony_ci de: display-engine { 8362306a36Sopenharmony_ci compatible = "allwinner,sun8i-v3s-display-engine"; 8462306a36Sopenharmony_ci allwinner,pipelines = <&mixer0>; 8562306a36Sopenharmony_ci status = "disabled"; 8662306a36Sopenharmony_ci }; 8762306a36Sopenharmony_ci 8862306a36Sopenharmony_ci timer { 8962306a36Sopenharmony_ci compatible = "arm,armv7-timer"; 9062306a36Sopenharmony_ci interrupts = <GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>, 9162306a36Sopenharmony_ci <GIC_PPI 14 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>, 9262306a36Sopenharmony_ci <GIC_PPI 11 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>, 9362306a36Sopenharmony_ci <GIC_PPI 10 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>; 9462306a36Sopenharmony_ci }; 9562306a36Sopenharmony_ci 9662306a36Sopenharmony_ci clocks { 9762306a36Sopenharmony_ci #address-cells = <1>; 9862306a36Sopenharmony_ci #size-cells = <1>; 9962306a36Sopenharmony_ci ranges; 10062306a36Sopenharmony_ci 10162306a36Sopenharmony_ci osc24M: osc24M_clk { 10262306a36Sopenharmony_ci #clock-cells = <0>; 10362306a36Sopenharmony_ci compatible = "fixed-clock"; 10462306a36Sopenharmony_ci clock-frequency = <24000000>; 10562306a36Sopenharmony_ci clock-accuracy = <50000>; 10662306a36Sopenharmony_ci clock-output-names = "osc24M"; 10762306a36Sopenharmony_ci }; 10862306a36Sopenharmony_ci 10962306a36Sopenharmony_ci osc32k: osc32k_clk { 11062306a36Sopenharmony_ci #clock-cells = <0>; 11162306a36Sopenharmony_ci compatible = "fixed-clock"; 11262306a36Sopenharmony_ci clock-frequency = <32768>; 11362306a36Sopenharmony_ci clock-accuracy = <50000>; 11462306a36Sopenharmony_ci clock-output-names = "ext-osc32k"; 11562306a36Sopenharmony_ci }; 11662306a36Sopenharmony_ci }; 11762306a36Sopenharmony_ci 11862306a36Sopenharmony_ci soc { 11962306a36Sopenharmony_ci compatible = "simple-bus"; 12062306a36Sopenharmony_ci #address-cells = <1>; 12162306a36Sopenharmony_ci #size-cells = <1>; 12262306a36Sopenharmony_ci ranges; 12362306a36Sopenharmony_ci 12462306a36Sopenharmony_ci display_clocks: clock@1000000 { 12562306a36Sopenharmony_ci compatible = "allwinner,sun8i-v3s-de2-clk"; 12662306a36Sopenharmony_ci reg = <0x01000000 0x10000>; 12762306a36Sopenharmony_ci clocks = <&ccu CLK_BUS_DE>, 12862306a36Sopenharmony_ci <&ccu CLK_DE>; 12962306a36Sopenharmony_ci clock-names = "bus", 13062306a36Sopenharmony_ci "mod"; 13162306a36Sopenharmony_ci resets = <&ccu RST_BUS_DE>; 13262306a36Sopenharmony_ci #clock-cells = <1>; 13362306a36Sopenharmony_ci #reset-cells = <1>; 13462306a36Sopenharmony_ci }; 13562306a36Sopenharmony_ci 13662306a36Sopenharmony_ci mixer0: mixer@1100000 { 13762306a36Sopenharmony_ci compatible = "allwinner,sun8i-v3s-de2-mixer"; 13862306a36Sopenharmony_ci reg = <0x01100000 0x100000>; 13962306a36Sopenharmony_ci clocks = <&display_clocks 0>, 14062306a36Sopenharmony_ci <&display_clocks 6>; 14162306a36Sopenharmony_ci clock-names = "bus", 14262306a36Sopenharmony_ci "mod"; 14362306a36Sopenharmony_ci resets = <&display_clocks 0>; 14462306a36Sopenharmony_ci 14562306a36Sopenharmony_ci ports { 14662306a36Sopenharmony_ci #address-cells = <1>; 14762306a36Sopenharmony_ci #size-cells = <0>; 14862306a36Sopenharmony_ci 14962306a36Sopenharmony_ci mixer0_out: port@1 { 15062306a36Sopenharmony_ci reg = <1>; 15162306a36Sopenharmony_ci 15262306a36Sopenharmony_ci mixer0_out_tcon0: endpoint { 15362306a36Sopenharmony_ci remote-endpoint = <&tcon0_in_mixer0>; 15462306a36Sopenharmony_ci }; 15562306a36Sopenharmony_ci }; 15662306a36Sopenharmony_ci }; 15762306a36Sopenharmony_ci }; 15862306a36Sopenharmony_ci 15962306a36Sopenharmony_ci syscon: system-control@1c00000 { 16062306a36Sopenharmony_ci compatible = "allwinner,sun8i-v3s-system-control", 16162306a36Sopenharmony_ci "allwinner,sun8i-h3-system-control"; 16262306a36Sopenharmony_ci reg = <0x01c00000 0xd0>; 16362306a36Sopenharmony_ci #address-cells = <1>; 16462306a36Sopenharmony_ci #size-cells = <1>; 16562306a36Sopenharmony_ci ranges; 16662306a36Sopenharmony_ci }; 16762306a36Sopenharmony_ci 16862306a36Sopenharmony_ci nmi_intc: interrupt-controller@1c000d0 { 16962306a36Sopenharmony_ci compatible = "allwinner,sun8i-v3s-nmi", 17062306a36Sopenharmony_ci "allwinner,sun9i-a80-nmi"; 17162306a36Sopenharmony_ci interrupt-controller; 17262306a36Sopenharmony_ci #interrupt-cells = <2>; 17362306a36Sopenharmony_ci reg = <0x01c000d0 0x0c>; 17462306a36Sopenharmony_ci interrupts = <GIC_SPI 32 IRQ_TYPE_LEVEL_HIGH>; 17562306a36Sopenharmony_ci }; 17662306a36Sopenharmony_ci 17762306a36Sopenharmony_ci dma: dma-controller@1c02000 { 17862306a36Sopenharmony_ci compatible = "allwinner,sun8i-v3s-dma"; 17962306a36Sopenharmony_ci reg = <0x01c02000 0x1000>; 18062306a36Sopenharmony_ci interrupts = <GIC_SPI 50 IRQ_TYPE_LEVEL_HIGH>; 18162306a36Sopenharmony_ci clocks = <&ccu CLK_BUS_DMA>; 18262306a36Sopenharmony_ci resets = <&ccu RST_BUS_DMA>; 18362306a36Sopenharmony_ci #dma-cells = <1>; 18462306a36Sopenharmony_ci }; 18562306a36Sopenharmony_ci 18662306a36Sopenharmony_ci tcon0: lcd-controller@1c0c000 { 18762306a36Sopenharmony_ci compatible = "allwinner,sun8i-v3s-tcon"; 18862306a36Sopenharmony_ci reg = <0x01c0c000 0x1000>; 18962306a36Sopenharmony_ci interrupts = <GIC_SPI 86 IRQ_TYPE_LEVEL_HIGH>; 19062306a36Sopenharmony_ci clocks = <&ccu CLK_BUS_TCON0>, 19162306a36Sopenharmony_ci <&ccu CLK_TCON0>; 19262306a36Sopenharmony_ci clock-names = "ahb", 19362306a36Sopenharmony_ci "tcon-ch0"; 19462306a36Sopenharmony_ci clock-output-names = "tcon-data-clock"; 19562306a36Sopenharmony_ci #clock-cells = <0>; 19662306a36Sopenharmony_ci resets = <&ccu RST_BUS_TCON0>; 19762306a36Sopenharmony_ci reset-names = "lcd"; 19862306a36Sopenharmony_ci status = "disabled"; 19962306a36Sopenharmony_ci 20062306a36Sopenharmony_ci ports { 20162306a36Sopenharmony_ci #address-cells = <1>; 20262306a36Sopenharmony_ci #size-cells = <0>; 20362306a36Sopenharmony_ci 20462306a36Sopenharmony_ci tcon0_in: port@0 { 20562306a36Sopenharmony_ci reg = <0>; 20662306a36Sopenharmony_ci 20762306a36Sopenharmony_ci tcon0_in_mixer0: endpoint { 20862306a36Sopenharmony_ci remote-endpoint = <&mixer0_out_tcon0>; 20962306a36Sopenharmony_ci }; 21062306a36Sopenharmony_ci }; 21162306a36Sopenharmony_ci 21262306a36Sopenharmony_ci tcon0_out: port@1 { 21362306a36Sopenharmony_ci #address-cells = <1>; 21462306a36Sopenharmony_ci #size-cells = <0>; 21562306a36Sopenharmony_ci reg = <1>; 21662306a36Sopenharmony_ci }; 21762306a36Sopenharmony_ci }; 21862306a36Sopenharmony_ci }; 21962306a36Sopenharmony_ci 22062306a36Sopenharmony_ci 22162306a36Sopenharmony_ci mmc0: mmc@1c0f000 { 22262306a36Sopenharmony_ci compatible = "allwinner,sun7i-a20-mmc"; 22362306a36Sopenharmony_ci reg = <0x01c0f000 0x1000>; 22462306a36Sopenharmony_ci clocks = <&ccu CLK_BUS_MMC0>, 22562306a36Sopenharmony_ci <&ccu CLK_MMC0>, 22662306a36Sopenharmony_ci <&ccu CLK_MMC0_OUTPUT>, 22762306a36Sopenharmony_ci <&ccu CLK_MMC0_SAMPLE>; 22862306a36Sopenharmony_ci clock-names = "ahb", 22962306a36Sopenharmony_ci "mmc", 23062306a36Sopenharmony_ci "output", 23162306a36Sopenharmony_ci "sample"; 23262306a36Sopenharmony_ci resets = <&ccu RST_BUS_MMC0>; 23362306a36Sopenharmony_ci reset-names = "ahb"; 23462306a36Sopenharmony_ci interrupts = <GIC_SPI 60 IRQ_TYPE_LEVEL_HIGH>; 23562306a36Sopenharmony_ci pinctrl-names = "default"; 23662306a36Sopenharmony_ci pinctrl-0 = <&mmc0_pins>; 23762306a36Sopenharmony_ci status = "disabled"; 23862306a36Sopenharmony_ci #address-cells = <1>; 23962306a36Sopenharmony_ci #size-cells = <0>; 24062306a36Sopenharmony_ci }; 24162306a36Sopenharmony_ci 24262306a36Sopenharmony_ci mmc1: mmc@1c10000 { 24362306a36Sopenharmony_ci compatible = "allwinner,sun7i-a20-mmc"; 24462306a36Sopenharmony_ci reg = <0x01c10000 0x1000>; 24562306a36Sopenharmony_ci clocks = <&ccu CLK_BUS_MMC1>, 24662306a36Sopenharmony_ci <&ccu CLK_MMC1>, 24762306a36Sopenharmony_ci <&ccu CLK_MMC1_OUTPUT>, 24862306a36Sopenharmony_ci <&ccu CLK_MMC1_SAMPLE>; 24962306a36Sopenharmony_ci clock-names = "ahb", 25062306a36Sopenharmony_ci "mmc", 25162306a36Sopenharmony_ci "output", 25262306a36Sopenharmony_ci "sample"; 25362306a36Sopenharmony_ci resets = <&ccu RST_BUS_MMC1>; 25462306a36Sopenharmony_ci reset-names = "ahb"; 25562306a36Sopenharmony_ci interrupts = <GIC_SPI 61 IRQ_TYPE_LEVEL_HIGH>; 25662306a36Sopenharmony_ci pinctrl-names = "default"; 25762306a36Sopenharmony_ci pinctrl-0 = <&mmc1_pins>; 25862306a36Sopenharmony_ci status = "disabled"; 25962306a36Sopenharmony_ci #address-cells = <1>; 26062306a36Sopenharmony_ci #size-cells = <0>; 26162306a36Sopenharmony_ci }; 26262306a36Sopenharmony_ci 26362306a36Sopenharmony_ci mmc2: mmc@1c11000 { 26462306a36Sopenharmony_ci compatible = "allwinner,sun7i-a20-mmc"; 26562306a36Sopenharmony_ci reg = <0x01c11000 0x1000>; 26662306a36Sopenharmony_ci clocks = <&ccu CLK_BUS_MMC2>, 26762306a36Sopenharmony_ci <&ccu CLK_MMC2>, 26862306a36Sopenharmony_ci <&ccu CLK_MMC2_OUTPUT>, 26962306a36Sopenharmony_ci <&ccu CLK_MMC2_SAMPLE>; 27062306a36Sopenharmony_ci clock-names = "ahb", 27162306a36Sopenharmony_ci "mmc", 27262306a36Sopenharmony_ci "output", 27362306a36Sopenharmony_ci "sample"; 27462306a36Sopenharmony_ci resets = <&ccu RST_BUS_MMC2>; 27562306a36Sopenharmony_ci reset-names = "ahb"; 27662306a36Sopenharmony_ci interrupts = <GIC_SPI 62 IRQ_TYPE_LEVEL_HIGH>; 27762306a36Sopenharmony_ci status = "disabled"; 27862306a36Sopenharmony_ci #address-cells = <1>; 27962306a36Sopenharmony_ci #size-cells = <0>; 28062306a36Sopenharmony_ci }; 28162306a36Sopenharmony_ci 28262306a36Sopenharmony_ci crypto@1c15000 { 28362306a36Sopenharmony_ci compatible = "allwinner,sun8i-v3s-crypto", 28462306a36Sopenharmony_ci "allwinner,sun8i-a33-crypto"; 28562306a36Sopenharmony_ci reg = <0x01c15000 0x1000>; 28662306a36Sopenharmony_ci interrupts = <GIC_SPI 80 IRQ_TYPE_LEVEL_HIGH>; 28762306a36Sopenharmony_ci clocks = <&ccu CLK_BUS_CE>, <&ccu CLK_CE>; 28862306a36Sopenharmony_ci clock-names = "ahb", "mod"; 28962306a36Sopenharmony_ci dmas = <&dma 16>, <&dma 16>; 29062306a36Sopenharmony_ci dma-names = "rx", "tx"; 29162306a36Sopenharmony_ci resets = <&ccu RST_BUS_CE>; 29262306a36Sopenharmony_ci reset-names = "ahb"; 29362306a36Sopenharmony_ci }; 29462306a36Sopenharmony_ci 29562306a36Sopenharmony_ci usb_otg: usb@1c19000 { 29662306a36Sopenharmony_ci compatible = "allwinner,sun8i-h3-musb"; 29762306a36Sopenharmony_ci reg = <0x01c19000 0x0400>; 29862306a36Sopenharmony_ci clocks = <&ccu CLK_BUS_OTG>; 29962306a36Sopenharmony_ci resets = <&ccu RST_BUS_OTG>; 30062306a36Sopenharmony_ci interrupts = <GIC_SPI 71 IRQ_TYPE_LEVEL_HIGH>; 30162306a36Sopenharmony_ci interrupt-names = "mc"; 30262306a36Sopenharmony_ci phys = <&usbphy 0>; 30362306a36Sopenharmony_ci phy-names = "usb"; 30462306a36Sopenharmony_ci extcon = <&usbphy 0>; 30562306a36Sopenharmony_ci status = "disabled"; 30662306a36Sopenharmony_ci }; 30762306a36Sopenharmony_ci 30862306a36Sopenharmony_ci usbphy: phy@1c19400 { 30962306a36Sopenharmony_ci compatible = "allwinner,sun8i-v3s-usb-phy"; 31062306a36Sopenharmony_ci reg = <0x01c19400 0x2c>, 31162306a36Sopenharmony_ci <0x01c1a800 0x4>; 31262306a36Sopenharmony_ci reg-names = "phy_ctrl", 31362306a36Sopenharmony_ci "pmu0"; 31462306a36Sopenharmony_ci clocks = <&ccu CLK_USB_PHY0>; 31562306a36Sopenharmony_ci clock-names = "usb0_phy"; 31662306a36Sopenharmony_ci resets = <&ccu RST_USB_PHY0>; 31762306a36Sopenharmony_ci reset-names = "usb0_reset"; 31862306a36Sopenharmony_ci status = "disabled"; 31962306a36Sopenharmony_ci #phy-cells = <1>; 32062306a36Sopenharmony_ci }; 32162306a36Sopenharmony_ci 32262306a36Sopenharmony_ci ccu: clock@1c20000 { 32362306a36Sopenharmony_ci compatible = "allwinner,sun8i-v3s-ccu"; 32462306a36Sopenharmony_ci reg = <0x01c20000 0x400>; 32562306a36Sopenharmony_ci clocks = <&osc24M>, <&rtc CLK_OSC32K>; 32662306a36Sopenharmony_ci clock-names = "hosc", "losc"; 32762306a36Sopenharmony_ci #clock-cells = <1>; 32862306a36Sopenharmony_ci #reset-cells = <1>; 32962306a36Sopenharmony_ci }; 33062306a36Sopenharmony_ci 33162306a36Sopenharmony_ci rtc: rtc@1c20400 { 33262306a36Sopenharmony_ci #clock-cells = <1>; 33362306a36Sopenharmony_ci compatible = "allwinner,sun8i-v3-rtc"; 33462306a36Sopenharmony_ci reg = <0x01c20400 0x54>; 33562306a36Sopenharmony_ci interrupts = <GIC_SPI 40 IRQ_TYPE_LEVEL_HIGH>, 33662306a36Sopenharmony_ci <GIC_SPI 41 IRQ_TYPE_LEVEL_HIGH>; 33762306a36Sopenharmony_ci clocks = <&osc32k>; 33862306a36Sopenharmony_ci clock-output-names = "osc32k", "osc32k-out"; 33962306a36Sopenharmony_ci }; 34062306a36Sopenharmony_ci 34162306a36Sopenharmony_ci pio: pinctrl@1c20800 { 34262306a36Sopenharmony_ci compatible = "allwinner,sun8i-v3s-pinctrl"; 34362306a36Sopenharmony_ci reg = <0x01c20800 0x400>; 34462306a36Sopenharmony_ci interrupts = <GIC_SPI 15 IRQ_TYPE_LEVEL_HIGH>, 34562306a36Sopenharmony_ci <GIC_SPI 17 IRQ_TYPE_LEVEL_HIGH>; 34662306a36Sopenharmony_ci clocks = <&ccu CLK_BUS_PIO>, <&osc24M>, 34762306a36Sopenharmony_ci <&rtc CLK_OSC32K>; 34862306a36Sopenharmony_ci clock-names = "apb", "hosc", "losc"; 34962306a36Sopenharmony_ci gpio-controller; 35062306a36Sopenharmony_ci #gpio-cells = <3>; 35162306a36Sopenharmony_ci interrupt-controller; 35262306a36Sopenharmony_ci #interrupt-cells = <3>; 35362306a36Sopenharmony_ci 35462306a36Sopenharmony_ci /omit-if-no-ref/ 35562306a36Sopenharmony_ci csi0_mclk_pin: csi0-mclk-pin { 35662306a36Sopenharmony_ci pins = "PE20"; 35762306a36Sopenharmony_ci function = "csi_mipi"; 35862306a36Sopenharmony_ci }; 35962306a36Sopenharmony_ci 36062306a36Sopenharmony_ci /omit-if-no-ref/ 36162306a36Sopenharmony_ci csi1_8bit_pins: csi1-8bit-pins { 36262306a36Sopenharmony_ci pins = "PE0", "PE2", "PE3", "PE8", "PE9", 36362306a36Sopenharmony_ci "PE10", "PE11", "PE12", "PE13", "PE14", 36462306a36Sopenharmony_ci "PE15"; 36562306a36Sopenharmony_ci function = "csi"; 36662306a36Sopenharmony_ci }; 36762306a36Sopenharmony_ci 36862306a36Sopenharmony_ci /omit-if-no-ref/ 36962306a36Sopenharmony_ci csi1_mclk_pin: csi1-mclk-pin { 37062306a36Sopenharmony_ci pins = "PE1"; 37162306a36Sopenharmony_ci function = "csi"; 37262306a36Sopenharmony_ci }; 37362306a36Sopenharmony_ci 37462306a36Sopenharmony_ci i2c0_pins: i2c0-pins { 37562306a36Sopenharmony_ci pins = "PB6", "PB7"; 37662306a36Sopenharmony_ci function = "i2c0"; 37762306a36Sopenharmony_ci }; 37862306a36Sopenharmony_ci 37962306a36Sopenharmony_ci /omit-if-no-ref/ 38062306a36Sopenharmony_ci i2c1_pb_pins: i2c1-pb-pins { 38162306a36Sopenharmony_ci pins = "PB8", "PB9"; 38262306a36Sopenharmony_ci function = "i2c1"; 38362306a36Sopenharmony_ci }; 38462306a36Sopenharmony_ci 38562306a36Sopenharmony_ci /omit-if-no-ref/ 38662306a36Sopenharmony_ci i2c1_pe_pins: i2c1-pe-pins { 38762306a36Sopenharmony_ci pins = "PE21", "PE22"; 38862306a36Sopenharmony_ci function = "i2c1"; 38962306a36Sopenharmony_ci }; 39062306a36Sopenharmony_ci 39162306a36Sopenharmony_ci uart0_pb_pins: uart0-pb-pins { 39262306a36Sopenharmony_ci pins = "PB8", "PB9"; 39362306a36Sopenharmony_ci function = "uart0"; 39462306a36Sopenharmony_ci }; 39562306a36Sopenharmony_ci 39662306a36Sopenharmony_ci uart2_pins: uart2-pins { 39762306a36Sopenharmony_ci pins = "PB0", "PB1"; 39862306a36Sopenharmony_ci function = "uart2"; 39962306a36Sopenharmony_ci }; 40062306a36Sopenharmony_ci 40162306a36Sopenharmony_ci mmc0_pins: mmc0-pins { 40262306a36Sopenharmony_ci pins = "PF0", "PF1", "PF2", "PF3", 40362306a36Sopenharmony_ci "PF4", "PF5"; 40462306a36Sopenharmony_ci function = "mmc0"; 40562306a36Sopenharmony_ci drive-strength = <30>; 40662306a36Sopenharmony_ci bias-pull-up; 40762306a36Sopenharmony_ci }; 40862306a36Sopenharmony_ci 40962306a36Sopenharmony_ci mmc1_pins: mmc1-pins { 41062306a36Sopenharmony_ci pins = "PG0", "PG1", "PG2", "PG3", 41162306a36Sopenharmony_ci "PG4", "PG5"; 41262306a36Sopenharmony_ci function = "mmc1"; 41362306a36Sopenharmony_ci drive-strength = <30>; 41462306a36Sopenharmony_ci bias-pull-up; 41562306a36Sopenharmony_ci }; 41662306a36Sopenharmony_ci 41762306a36Sopenharmony_ci spi0_pins: spi0-pins { 41862306a36Sopenharmony_ci pins = "PC0", "PC1", "PC2", "PC3"; 41962306a36Sopenharmony_ci function = "spi0"; 42062306a36Sopenharmony_ci }; 42162306a36Sopenharmony_ci }; 42262306a36Sopenharmony_ci 42362306a36Sopenharmony_ci timer@1c20c00 { 42462306a36Sopenharmony_ci compatible = "allwinner,sun8i-v3s-timer"; 42562306a36Sopenharmony_ci reg = <0x01c20c00 0xa0>; 42662306a36Sopenharmony_ci interrupts = <GIC_SPI 18 IRQ_TYPE_LEVEL_HIGH>, 42762306a36Sopenharmony_ci <GIC_SPI 19 IRQ_TYPE_LEVEL_HIGH>, 42862306a36Sopenharmony_ci <GIC_SPI 20 IRQ_TYPE_LEVEL_HIGH>; 42962306a36Sopenharmony_ci clocks = <&osc24M>; 43062306a36Sopenharmony_ci }; 43162306a36Sopenharmony_ci 43262306a36Sopenharmony_ci wdt0: watchdog@1c20ca0 { 43362306a36Sopenharmony_ci compatible = "allwinner,sun6i-a31-wdt"; 43462306a36Sopenharmony_ci reg = <0x01c20ca0 0x20>; 43562306a36Sopenharmony_ci interrupts = <GIC_SPI 25 IRQ_TYPE_LEVEL_HIGH>; 43662306a36Sopenharmony_ci clocks = <&osc24M>; 43762306a36Sopenharmony_ci }; 43862306a36Sopenharmony_ci 43962306a36Sopenharmony_ci pwm: pwm@1c21400 { 44062306a36Sopenharmony_ci compatible = "allwinner,sun8i-v3s-pwm", 44162306a36Sopenharmony_ci "allwinner,sun7i-a20-pwm"; 44262306a36Sopenharmony_ci reg = <0x01c21400 0xc>; 44362306a36Sopenharmony_ci clocks = <&osc24M>; 44462306a36Sopenharmony_ci #pwm-cells = <3>; 44562306a36Sopenharmony_ci status = "disabled"; 44662306a36Sopenharmony_ci }; 44762306a36Sopenharmony_ci 44862306a36Sopenharmony_ci lradc: lradc@1c22800 { 44962306a36Sopenharmony_ci compatible = "allwinner,sun4i-a10-lradc-keys"; 45062306a36Sopenharmony_ci reg = <0x01c22800 0x400>; 45162306a36Sopenharmony_ci interrupts = <GIC_SPI 30 IRQ_TYPE_LEVEL_HIGH>; 45262306a36Sopenharmony_ci status = "disabled"; 45362306a36Sopenharmony_ci }; 45462306a36Sopenharmony_ci 45562306a36Sopenharmony_ci codec: codec@1c22c00 { 45662306a36Sopenharmony_ci #sound-dai-cells = <0>; 45762306a36Sopenharmony_ci compatible = "allwinner,sun8i-v3s-codec"; 45862306a36Sopenharmony_ci reg = <0x01c22c00 0x400>; 45962306a36Sopenharmony_ci interrupts = <GIC_SPI 29 IRQ_TYPE_LEVEL_HIGH>; 46062306a36Sopenharmony_ci clocks = <&ccu CLK_BUS_CODEC>, <&ccu CLK_AC_DIG>; 46162306a36Sopenharmony_ci clock-names = "apb", "codec"; 46262306a36Sopenharmony_ci resets = <&ccu RST_BUS_CODEC>; 46362306a36Sopenharmony_ci dmas = <&dma 15>, <&dma 15>; 46462306a36Sopenharmony_ci dma-names = "rx", "tx"; 46562306a36Sopenharmony_ci allwinner,codec-analog-controls = <&codec_analog>; 46662306a36Sopenharmony_ci status = "disabled"; 46762306a36Sopenharmony_ci }; 46862306a36Sopenharmony_ci 46962306a36Sopenharmony_ci codec_analog: codec-analog@1c23000 { 47062306a36Sopenharmony_ci compatible = "allwinner,sun8i-v3s-codec-analog"; 47162306a36Sopenharmony_ci reg = <0x01c23000 0x4>; 47262306a36Sopenharmony_ci }; 47362306a36Sopenharmony_ci 47462306a36Sopenharmony_ci uart0: serial@1c28000 { 47562306a36Sopenharmony_ci compatible = "snps,dw-apb-uart"; 47662306a36Sopenharmony_ci reg = <0x01c28000 0x400>; 47762306a36Sopenharmony_ci interrupts = <GIC_SPI 0 IRQ_TYPE_LEVEL_HIGH>; 47862306a36Sopenharmony_ci reg-shift = <2>; 47962306a36Sopenharmony_ci reg-io-width = <4>; 48062306a36Sopenharmony_ci clocks = <&ccu CLK_BUS_UART0>; 48162306a36Sopenharmony_ci dmas = <&dma 6>, <&dma 6>; 48262306a36Sopenharmony_ci dma-names = "tx", "rx"; 48362306a36Sopenharmony_ci resets = <&ccu RST_BUS_UART0>; 48462306a36Sopenharmony_ci status = "disabled"; 48562306a36Sopenharmony_ci }; 48662306a36Sopenharmony_ci 48762306a36Sopenharmony_ci uart1: serial@1c28400 { 48862306a36Sopenharmony_ci compatible = "snps,dw-apb-uart"; 48962306a36Sopenharmony_ci reg = <0x01c28400 0x400>; 49062306a36Sopenharmony_ci interrupts = <GIC_SPI 1 IRQ_TYPE_LEVEL_HIGH>; 49162306a36Sopenharmony_ci reg-shift = <2>; 49262306a36Sopenharmony_ci reg-io-width = <4>; 49362306a36Sopenharmony_ci clocks = <&ccu CLK_BUS_UART1>; 49462306a36Sopenharmony_ci dmas = <&dma 7>, <&dma 7>; 49562306a36Sopenharmony_ci dma-names = "tx", "rx"; 49662306a36Sopenharmony_ci resets = <&ccu RST_BUS_UART1>; 49762306a36Sopenharmony_ci status = "disabled"; 49862306a36Sopenharmony_ci }; 49962306a36Sopenharmony_ci 50062306a36Sopenharmony_ci uart2: serial@1c28800 { 50162306a36Sopenharmony_ci compatible = "snps,dw-apb-uart"; 50262306a36Sopenharmony_ci reg = <0x01c28800 0x400>; 50362306a36Sopenharmony_ci interrupts = <GIC_SPI 2 IRQ_TYPE_LEVEL_HIGH>; 50462306a36Sopenharmony_ci reg-shift = <2>; 50562306a36Sopenharmony_ci reg-io-width = <4>; 50662306a36Sopenharmony_ci clocks = <&ccu CLK_BUS_UART2>; 50762306a36Sopenharmony_ci dmas = <&dma 8>, <&dma 8>; 50862306a36Sopenharmony_ci dma-names = "tx", "rx"; 50962306a36Sopenharmony_ci resets = <&ccu RST_BUS_UART2>; 51062306a36Sopenharmony_ci pinctrl-0 = <&uart2_pins>; 51162306a36Sopenharmony_ci pinctrl-names = "default"; 51262306a36Sopenharmony_ci status = "disabled"; 51362306a36Sopenharmony_ci }; 51462306a36Sopenharmony_ci 51562306a36Sopenharmony_ci i2c0: i2c@1c2ac00 { 51662306a36Sopenharmony_ci compatible = "allwinner,sun6i-a31-i2c"; 51762306a36Sopenharmony_ci reg = <0x01c2ac00 0x400>; 51862306a36Sopenharmony_ci interrupts = <GIC_SPI 6 IRQ_TYPE_LEVEL_HIGH>; 51962306a36Sopenharmony_ci clocks = <&ccu CLK_BUS_I2C0>; 52062306a36Sopenharmony_ci resets = <&ccu RST_BUS_I2C0>; 52162306a36Sopenharmony_ci pinctrl-names = "default"; 52262306a36Sopenharmony_ci pinctrl-0 = <&i2c0_pins>; 52362306a36Sopenharmony_ci status = "disabled"; 52462306a36Sopenharmony_ci #address-cells = <1>; 52562306a36Sopenharmony_ci #size-cells = <0>; 52662306a36Sopenharmony_ci }; 52762306a36Sopenharmony_ci 52862306a36Sopenharmony_ci i2c1: i2c@1c2b000 { 52962306a36Sopenharmony_ci compatible = "allwinner,sun6i-a31-i2c"; 53062306a36Sopenharmony_ci reg = <0x01c2b000 0x400>; 53162306a36Sopenharmony_ci interrupts = <GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH>; 53262306a36Sopenharmony_ci clocks = <&ccu CLK_BUS_I2C1>; 53362306a36Sopenharmony_ci resets = <&ccu RST_BUS_I2C1>; 53462306a36Sopenharmony_ci status = "disabled"; 53562306a36Sopenharmony_ci #address-cells = <1>; 53662306a36Sopenharmony_ci #size-cells = <0>; 53762306a36Sopenharmony_ci }; 53862306a36Sopenharmony_ci 53962306a36Sopenharmony_ci emac: ethernet@1c30000 { 54062306a36Sopenharmony_ci compatible = "allwinner,sun8i-v3s-emac"; 54162306a36Sopenharmony_ci syscon = <&syscon>; 54262306a36Sopenharmony_ci reg = <0x01c30000 0x10000>; 54362306a36Sopenharmony_ci interrupts = <GIC_SPI 82 IRQ_TYPE_LEVEL_HIGH>; 54462306a36Sopenharmony_ci interrupt-names = "macirq"; 54562306a36Sopenharmony_ci resets = <&ccu RST_BUS_EMAC>; 54662306a36Sopenharmony_ci reset-names = "stmmaceth"; 54762306a36Sopenharmony_ci clocks = <&ccu CLK_BUS_EMAC>; 54862306a36Sopenharmony_ci clock-names = "stmmaceth"; 54962306a36Sopenharmony_ci phy-handle = <&int_mii_phy>; 55062306a36Sopenharmony_ci phy-mode = "mii"; 55162306a36Sopenharmony_ci status = "disabled"; 55262306a36Sopenharmony_ci 55362306a36Sopenharmony_ci mdio: mdio { 55462306a36Sopenharmony_ci #address-cells = <1>; 55562306a36Sopenharmony_ci #size-cells = <0>; 55662306a36Sopenharmony_ci compatible = "snps,dwmac-mdio"; 55762306a36Sopenharmony_ci }; 55862306a36Sopenharmony_ci 55962306a36Sopenharmony_ci mdio_mux: mdio-mux { 56062306a36Sopenharmony_ci compatible = "allwinner,sun8i-h3-mdio-mux"; 56162306a36Sopenharmony_ci #address-cells = <1>; 56262306a36Sopenharmony_ci #size-cells = <0>; 56362306a36Sopenharmony_ci 56462306a36Sopenharmony_ci mdio-parent-bus = <&mdio>; 56562306a36Sopenharmony_ci /* Only one MDIO is usable at the time */ 56662306a36Sopenharmony_ci internal_mdio: mdio@1 { 56762306a36Sopenharmony_ci compatible = "allwinner,sun8i-h3-mdio-internal"; 56862306a36Sopenharmony_ci reg = <1>; 56962306a36Sopenharmony_ci #address-cells = <1>; 57062306a36Sopenharmony_ci #size-cells = <0>; 57162306a36Sopenharmony_ci 57262306a36Sopenharmony_ci int_mii_phy: ethernet-phy@1 { 57362306a36Sopenharmony_ci compatible = "ethernet-phy-ieee802.3-c22"; 57462306a36Sopenharmony_ci reg = <1>; 57562306a36Sopenharmony_ci clocks = <&ccu CLK_BUS_EPHY>; 57662306a36Sopenharmony_ci resets = <&ccu RST_BUS_EPHY>; 57762306a36Sopenharmony_ci }; 57862306a36Sopenharmony_ci }; 57962306a36Sopenharmony_ci }; 58062306a36Sopenharmony_ci }; 58162306a36Sopenharmony_ci 58262306a36Sopenharmony_ci spi0: spi@1c68000 { 58362306a36Sopenharmony_ci compatible = "allwinner,sun8i-h3-spi"; 58462306a36Sopenharmony_ci reg = <0x01c68000 0x1000>; 58562306a36Sopenharmony_ci interrupts = <GIC_SPI 65 IRQ_TYPE_LEVEL_HIGH>; 58662306a36Sopenharmony_ci clocks = <&ccu CLK_BUS_SPI0>, <&ccu CLK_SPI0>; 58762306a36Sopenharmony_ci clock-names = "ahb", "mod"; 58862306a36Sopenharmony_ci dmas = <&dma 23>, <&dma 23>; 58962306a36Sopenharmony_ci dma-names = "rx", "tx"; 59062306a36Sopenharmony_ci pinctrl-names = "default"; 59162306a36Sopenharmony_ci pinctrl-0 = <&spi0_pins>; 59262306a36Sopenharmony_ci resets = <&ccu RST_BUS_SPI0>; 59362306a36Sopenharmony_ci status = "disabled"; 59462306a36Sopenharmony_ci #address-cells = <1>; 59562306a36Sopenharmony_ci #size-cells = <0>; 59662306a36Sopenharmony_ci }; 59762306a36Sopenharmony_ci 59862306a36Sopenharmony_ci gic: interrupt-controller@1c81000 { 59962306a36Sopenharmony_ci compatible = "arm,gic-400"; 60062306a36Sopenharmony_ci reg = <0x01c81000 0x1000>, 60162306a36Sopenharmony_ci <0x01c82000 0x2000>, 60262306a36Sopenharmony_ci <0x01c84000 0x2000>, 60362306a36Sopenharmony_ci <0x01c86000 0x2000>; 60462306a36Sopenharmony_ci interrupt-controller; 60562306a36Sopenharmony_ci #interrupt-cells = <3>; 60662306a36Sopenharmony_ci interrupts = <GIC_PPI 9 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>; 60762306a36Sopenharmony_ci }; 60862306a36Sopenharmony_ci 60962306a36Sopenharmony_ci csi1: camera@1cb4000 { 61062306a36Sopenharmony_ci compatible = "allwinner,sun8i-v3s-csi"; 61162306a36Sopenharmony_ci reg = <0x01cb4000 0x3000>; 61262306a36Sopenharmony_ci interrupts = <GIC_SPI 84 IRQ_TYPE_LEVEL_HIGH>; 61362306a36Sopenharmony_ci clocks = <&ccu CLK_BUS_CSI>, 61462306a36Sopenharmony_ci <&ccu CLK_CSI1_SCLK>, 61562306a36Sopenharmony_ci <&ccu CLK_DRAM_CSI>; 61662306a36Sopenharmony_ci clock-names = "bus", "mod", "ram"; 61762306a36Sopenharmony_ci resets = <&ccu RST_BUS_CSI>; 61862306a36Sopenharmony_ci status = "disabled"; 61962306a36Sopenharmony_ci }; 62062306a36Sopenharmony_ci }; 62162306a36Sopenharmony_ci}; 622