1724ba675SRob Herring/* 2724ba675SRob Herring * Copyright (C) 2016 Icenowy Zheng <icenowy@aosc.xyz> 3724ba675SRob Herring * Copyright (C) 2021 Tobias Schramm <t.schramm@manjaro.org> 4724ba675SRob Herring * 5724ba675SRob Herring * This file is dual-licensed: you can use it either under the terms 6724ba675SRob Herring * of the GPL or the X11 license, at your option. Note that this dual 7724ba675SRob Herring * licensing only applies to this file, and not this project as a 8724ba675SRob Herring * whole. 9724ba675SRob Herring * 10724ba675SRob Herring * a) This file is free software; you can redistribute it and/or 11724ba675SRob Herring * modify it under the terms of the GNU General Public License as 12724ba675SRob Herring * published by the Free Software Foundation; either version 2 of the 13724ba675SRob Herring * License, or (at your option) any later version. 14724ba675SRob Herring * 15724ba675SRob Herring * This file is distributed in the hope that it will be useful, 16724ba675SRob Herring * but WITHOUT ANY WARRANTY; without even the implied warranty of 17724ba675SRob Herring * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 18724ba675SRob Herring * GNU General Public License for more details. 19724ba675SRob Herring * 20724ba675SRob Herring * Or, alternatively, 21724ba675SRob Herring * 22724ba675SRob Herring * b) Permission is hereby granted, free of charge, to any person 23724ba675SRob Herring * obtaining a copy of this software and associated documentation 24724ba675SRob Herring * files (the "Software"), to deal in the Software without 25724ba675SRob Herring * restriction, including without limitation the rights to use, 26724ba675SRob Herring * copy, modify, merge, publish, distribute, sublicense, and/or 27724ba675SRob Herring * sell copies of the Software, and to permit persons to whom the 28724ba675SRob Herring * Software is furnished to do so, subject to the following 29724ba675SRob Herring * conditions: 30724ba675SRob Herring * 31724ba675SRob Herring * The above copyright notice and this permission notice shall be 32724ba675SRob Herring * included in all copies or substantial portions of the Software. 33724ba675SRob Herring * 34724ba675SRob Herring * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 35724ba675SRob Herring * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES 36724ba675SRob Herring * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 37724ba675SRob Herring * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT 38724ba675SRob Herring * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, 39724ba675SRob Herring * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 40724ba675SRob Herring * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 41724ba675SRob Herring * OTHER DEALINGS IN THE SOFTWARE. 42724ba675SRob Herring */ 43724ba675SRob Herring 44724ba675SRob Herring#include <dt-bindings/interrupt-controller/arm-gic.h> 45724ba675SRob Herring#include <dt-bindings/clock/sun6i-rtc.h> 46724ba675SRob Herring#include <dt-bindings/clock/sun8i-v3s-ccu.h> 47724ba675SRob Herring#include <dt-bindings/reset/sun8i-v3s-ccu.h> 48724ba675SRob Herring#include <dt-bindings/clock/sun8i-de2.h> 49724ba675SRob Herring 50724ba675SRob Herring/ { 51724ba675SRob Herring #address-cells = <1>; 52724ba675SRob Herring #size-cells = <1>; 53724ba675SRob Herring interrupt-parent = <&gic>; 54724ba675SRob Herring 55724ba675SRob Herring chosen { 56724ba675SRob Herring #address-cells = <1>; 57724ba675SRob Herring #size-cells = <1>; 58724ba675SRob Herring ranges; 59724ba675SRob Herring 60724ba675SRob Herring framebuffer-lcd { 61724ba675SRob Herring compatible = "allwinner,simple-framebuffer", 62724ba675SRob Herring "simple-framebuffer"; 63724ba675SRob Herring allwinner,pipeline = "mixer0-lcd0"; 64724ba675SRob Herring clocks = <&display_clocks CLK_MIXER0>, 65724ba675SRob Herring <&ccu CLK_TCON0>; 66724ba675SRob Herring status = "disabled"; 67724ba675SRob Herring }; 68724ba675SRob Herring }; 69724ba675SRob Herring 70724ba675SRob Herring cpus { 71724ba675SRob Herring #address-cells = <1>; 72724ba675SRob Herring #size-cells = <0>; 73724ba675SRob Herring 74724ba675SRob Herring cpu@0 { 75724ba675SRob Herring compatible = "arm,cortex-a7"; 76724ba675SRob Herring device_type = "cpu"; 77724ba675SRob Herring reg = <0>; 78724ba675SRob Herring clocks = <&ccu CLK_CPU>; 79724ba675SRob Herring }; 80724ba675SRob Herring }; 81724ba675SRob Herring 82724ba675SRob Herring de: display-engine { 83724ba675SRob Herring compatible = "allwinner,sun8i-v3s-display-engine"; 84724ba675SRob Herring allwinner,pipelines = <&mixer0>; 85724ba675SRob Herring status = "disabled"; 86724ba675SRob Herring }; 87724ba675SRob Herring 88724ba675SRob Herring timer { 89724ba675SRob Herring compatible = "arm,armv7-timer"; 90724ba675SRob Herring interrupts = <GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>, 91724ba675SRob Herring <GIC_PPI 14 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>, 92724ba675SRob Herring <GIC_PPI 11 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>, 93724ba675SRob Herring <GIC_PPI 10 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>; 94724ba675SRob Herring }; 95724ba675SRob Herring 96724ba675SRob Herring clocks { 97724ba675SRob Herring #address-cells = <1>; 98724ba675SRob Herring #size-cells = <1>; 99724ba675SRob Herring ranges; 100724ba675SRob Herring 101*0f47ef3fSKrzysztof Kozlowski osc24M: osc24M-clk { 102724ba675SRob Herring #clock-cells = <0>; 103724ba675SRob Herring compatible = "fixed-clock"; 104724ba675SRob Herring clock-frequency = <24000000>; 105724ba675SRob Herring clock-accuracy = <50000>; 106724ba675SRob Herring clock-output-names = "osc24M"; 107724ba675SRob Herring }; 108724ba675SRob Herring 109*0f47ef3fSKrzysztof Kozlowski osc32k: osc32k-clk { 110724ba675SRob Herring #clock-cells = <0>; 111724ba675SRob Herring compatible = "fixed-clock"; 112724ba675SRob Herring clock-frequency = <32768>; 113724ba675SRob Herring clock-accuracy = <50000>; 114724ba675SRob Herring clock-output-names = "ext-osc32k"; 115724ba675SRob Herring }; 116724ba675SRob Herring }; 117724ba675SRob Herring 118724ba675SRob Herring soc { 119724ba675SRob Herring compatible = "simple-bus"; 120724ba675SRob Herring #address-cells = <1>; 121724ba675SRob Herring #size-cells = <1>; 122724ba675SRob Herring ranges; 123724ba675SRob Herring 124724ba675SRob Herring display_clocks: clock@1000000 { 125724ba675SRob Herring compatible = "allwinner,sun8i-v3s-de2-clk"; 126724ba675SRob Herring reg = <0x01000000 0x10000>; 127724ba675SRob Herring clocks = <&ccu CLK_BUS_DE>, 128724ba675SRob Herring <&ccu CLK_DE>; 129724ba675SRob Herring clock-names = "bus", 130724ba675SRob Herring "mod"; 131724ba675SRob Herring resets = <&ccu RST_BUS_DE>; 132724ba675SRob Herring #clock-cells = <1>; 133724ba675SRob Herring #reset-cells = <1>; 134724ba675SRob Herring }; 135724ba675SRob Herring 136724ba675SRob Herring mixer0: mixer@1100000 { 137724ba675SRob Herring compatible = "allwinner,sun8i-v3s-de2-mixer"; 138724ba675SRob Herring reg = <0x01100000 0x100000>; 139724ba675SRob Herring clocks = <&display_clocks 0>, 140724ba675SRob Herring <&display_clocks 6>; 141724ba675SRob Herring clock-names = "bus", 142724ba675SRob Herring "mod"; 143724ba675SRob Herring resets = <&display_clocks 0>; 144724ba675SRob Herring 145724ba675SRob Herring ports { 146724ba675SRob Herring #address-cells = <1>; 147724ba675SRob Herring #size-cells = <0>; 148724ba675SRob Herring 149724ba675SRob Herring mixer0_out: port@1 { 150724ba675SRob Herring reg = <1>; 151724ba675SRob Herring 152724ba675SRob Herring mixer0_out_tcon0: endpoint { 153724ba675SRob Herring remote-endpoint = <&tcon0_in_mixer0>; 154724ba675SRob Herring }; 155724ba675SRob Herring }; 156724ba675SRob Herring }; 157724ba675SRob Herring }; 158724ba675SRob Herring 159724ba675SRob Herring syscon: system-control@1c00000 { 160724ba675SRob Herring compatible = "allwinner,sun8i-v3s-system-control", 161724ba675SRob Herring "allwinner,sun8i-h3-system-control"; 162724ba675SRob Herring reg = <0x01c00000 0xd0>; 163724ba675SRob Herring #address-cells = <1>; 164724ba675SRob Herring #size-cells = <1>; 165724ba675SRob Herring ranges; 166724ba675SRob Herring }; 167724ba675SRob Herring 168724ba675SRob Herring nmi_intc: interrupt-controller@1c000d0 { 169724ba675SRob Herring compatible = "allwinner,sun8i-v3s-nmi", 170724ba675SRob Herring "allwinner,sun9i-a80-nmi"; 171724ba675SRob Herring interrupt-controller; 172724ba675SRob Herring #interrupt-cells = <2>; 173724ba675SRob Herring reg = <0x01c000d0 0x0c>; 174724ba675SRob Herring interrupts = <GIC_SPI 32 IRQ_TYPE_LEVEL_HIGH>; 175724ba675SRob Herring }; 176724ba675SRob Herring 177724ba675SRob Herring dma: dma-controller@1c02000 { 178724ba675SRob Herring compatible = "allwinner,sun8i-v3s-dma"; 179724ba675SRob Herring reg = <0x01c02000 0x1000>; 180724ba675SRob Herring interrupts = <GIC_SPI 50 IRQ_TYPE_LEVEL_HIGH>; 181724ba675SRob Herring clocks = <&ccu CLK_BUS_DMA>; 182724ba675SRob Herring resets = <&ccu RST_BUS_DMA>; 183724ba675SRob Herring #dma-cells = <1>; 184724ba675SRob Herring }; 185724ba675SRob Herring 186724ba675SRob Herring tcon0: lcd-controller@1c0c000 { 187724ba675SRob Herring compatible = "allwinner,sun8i-v3s-tcon"; 188724ba675SRob Herring reg = <0x01c0c000 0x1000>; 189724ba675SRob Herring interrupts = <GIC_SPI 86 IRQ_TYPE_LEVEL_HIGH>; 190724ba675SRob Herring clocks = <&ccu CLK_BUS_TCON0>, 191724ba675SRob Herring <&ccu CLK_TCON0>; 192724ba675SRob Herring clock-names = "ahb", 193724ba675SRob Herring "tcon-ch0"; 194724ba675SRob Herring clock-output-names = "tcon-data-clock"; 195724ba675SRob Herring #clock-cells = <0>; 196724ba675SRob Herring resets = <&ccu RST_BUS_TCON0>; 197724ba675SRob Herring reset-names = "lcd"; 198724ba675SRob Herring status = "disabled"; 199724ba675SRob Herring 200724ba675SRob Herring ports { 201724ba675SRob Herring #address-cells = <1>; 202724ba675SRob Herring #size-cells = <0>; 203724ba675SRob Herring 204724ba675SRob Herring tcon0_in: port@0 { 205724ba675SRob Herring reg = <0>; 206724ba675SRob Herring 207724ba675SRob Herring tcon0_in_mixer0: endpoint { 208724ba675SRob Herring remote-endpoint = <&mixer0_out_tcon0>; 209724ba675SRob Herring }; 210724ba675SRob Herring }; 211724ba675SRob Herring 212724ba675SRob Herring tcon0_out: port@1 { 213724ba675SRob Herring #address-cells = <1>; 214724ba675SRob Herring #size-cells = <0>; 215724ba675SRob Herring reg = <1>; 216724ba675SRob Herring }; 217724ba675SRob Herring }; 218724ba675SRob Herring }; 219724ba675SRob Herring 220724ba675SRob Herring 221724ba675SRob Herring mmc0: mmc@1c0f000 { 222724ba675SRob Herring compatible = "allwinner,sun7i-a20-mmc"; 223724ba675SRob Herring reg = <0x01c0f000 0x1000>; 224724ba675SRob Herring clocks = <&ccu CLK_BUS_MMC0>, 225724ba675SRob Herring <&ccu CLK_MMC0>, 226724ba675SRob Herring <&ccu CLK_MMC0_OUTPUT>, 227724ba675SRob Herring <&ccu CLK_MMC0_SAMPLE>; 228724ba675SRob Herring clock-names = "ahb", 229724ba675SRob Herring "mmc", 230724ba675SRob Herring "output", 231724ba675SRob Herring "sample"; 232724ba675SRob Herring resets = <&ccu RST_BUS_MMC0>; 233724ba675SRob Herring reset-names = "ahb"; 234724ba675SRob Herring interrupts = <GIC_SPI 60 IRQ_TYPE_LEVEL_HIGH>; 235724ba675SRob Herring pinctrl-names = "default"; 236724ba675SRob Herring pinctrl-0 = <&mmc0_pins>; 237724ba675SRob Herring status = "disabled"; 238724ba675SRob Herring #address-cells = <1>; 239724ba675SRob Herring #size-cells = <0>; 240724ba675SRob Herring }; 241724ba675SRob Herring 242724ba675SRob Herring mmc1: mmc@1c10000 { 243724ba675SRob Herring compatible = "allwinner,sun7i-a20-mmc"; 244724ba675SRob Herring reg = <0x01c10000 0x1000>; 245724ba675SRob Herring clocks = <&ccu CLK_BUS_MMC1>, 246724ba675SRob Herring <&ccu CLK_MMC1>, 247724ba675SRob Herring <&ccu CLK_MMC1_OUTPUT>, 248724ba675SRob Herring <&ccu CLK_MMC1_SAMPLE>; 249724ba675SRob Herring clock-names = "ahb", 250724ba675SRob Herring "mmc", 251724ba675SRob Herring "output", 252724ba675SRob Herring "sample"; 253724ba675SRob Herring resets = <&ccu RST_BUS_MMC1>; 254724ba675SRob Herring reset-names = "ahb"; 255724ba675SRob Herring interrupts = <GIC_SPI 61 IRQ_TYPE_LEVEL_HIGH>; 256724ba675SRob Herring pinctrl-names = "default"; 257724ba675SRob Herring pinctrl-0 = <&mmc1_pins>; 258724ba675SRob Herring status = "disabled"; 259724ba675SRob Herring #address-cells = <1>; 260724ba675SRob Herring #size-cells = <0>; 261724ba675SRob Herring }; 262724ba675SRob Herring 263724ba675SRob Herring mmc2: mmc@1c11000 { 264724ba675SRob Herring compatible = "allwinner,sun7i-a20-mmc"; 265724ba675SRob Herring reg = <0x01c11000 0x1000>; 266724ba675SRob Herring clocks = <&ccu CLK_BUS_MMC2>, 267724ba675SRob Herring <&ccu CLK_MMC2>, 268724ba675SRob Herring <&ccu CLK_MMC2_OUTPUT>, 269724ba675SRob Herring <&ccu CLK_MMC2_SAMPLE>; 270724ba675SRob Herring clock-names = "ahb", 271724ba675SRob Herring "mmc", 272724ba675SRob Herring "output", 273724ba675SRob Herring "sample"; 274724ba675SRob Herring resets = <&ccu RST_BUS_MMC2>; 275724ba675SRob Herring reset-names = "ahb"; 276724ba675SRob Herring interrupts = <GIC_SPI 62 IRQ_TYPE_LEVEL_HIGH>; 277724ba675SRob Herring status = "disabled"; 278724ba675SRob Herring #address-cells = <1>; 279724ba675SRob Herring #size-cells = <0>; 280724ba675SRob Herring }; 281724ba675SRob Herring 282724ba675SRob Herring crypto@1c15000 { 283724ba675SRob Herring compatible = "allwinner,sun8i-v3s-crypto", 284724ba675SRob Herring "allwinner,sun8i-a33-crypto"; 285724ba675SRob Herring reg = <0x01c15000 0x1000>; 286724ba675SRob Herring interrupts = <GIC_SPI 80 IRQ_TYPE_LEVEL_HIGH>; 287724ba675SRob Herring clocks = <&ccu CLK_BUS_CE>, <&ccu CLK_CE>; 288724ba675SRob Herring clock-names = "ahb", "mod"; 289724ba675SRob Herring dmas = <&dma 16>, <&dma 16>; 290724ba675SRob Herring dma-names = "rx", "tx"; 291724ba675SRob Herring resets = <&ccu RST_BUS_CE>; 292724ba675SRob Herring reset-names = "ahb"; 293724ba675SRob Herring }; 294724ba675SRob Herring 295724ba675SRob Herring usb_otg: usb@1c19000 { 296724ba675SRob Herring compatible = "allwinner,sun8i-h3-musb"; 297724ba675SRob Herring reg = <0x01c19000 0x0400>; 298724ba675SRob Herring clocks = <&ccu CLK_BUS_OTG>; 299724ba675SRob Herring resets = <&ccu RST_BUS_OTG>; 300724ba675SRob Herring interrupts = <GIC_SPI 71 IRQ_TYPE_LEVEL_HIGH>; 301724ba675SRob Herring interrupt-names = "mc"; 302724ba675SRob Herring phys = <&usbphy 0>; 303724ba675SRob Herring phy-names = "usb"; 304724ba675SRob Herring extcon = <&usbphy 0>; 305724ba675SRob Herring status = "disabled"; 306724ba675SRob Herring }; 307724ba675SRob Herring 308724ba675SRob Herring usbphy: phy@1c19400 { 309724ba675SRob Herring compatible = "allwinner,sun8i-v3s-usb-phy"; 310724ba675SRob Herring reg = <0x01c19400 0x2c>, 311724ba675SRob Herring <0x01c1a800 0x4>; 312724ba675SRob Herring reg-names = "phy_ctrl", 313724ba675SRob Herring "pmu0"; 314724ba675SRob Herring clocks = <&ccu CLK_USB_PHY0>; 315724ba675SRob Herring clock-names = "usb0_phy"; 316724ba675SRob Herring resets = <&ccu RST_USB_PHY0>; 317724ba675SRob Herring reset-names = "usb0_reset"; 318724ba675SRob Herring status = "disabled"; 319724ba675SRob Herring #phy-cells = <1>; 320724ba675SRob Herring }; 321724ba675SRob Herring 32204aff09cSChris Morgan ehci: usb@1c1a000 { 32304aff09cSChris Morgan compatible = "allwinner,sun8i-v3s-ehci", "generic-ehci"; 32404aff09cSChris Morgan reg = <0x01c1a000 0x100>; 32504aff09cSChris Morgan interrupts = <GIC_SPI 72 IRQ_TYPE_LEVEL_HIGH>; 32604aff09cSChris Morgan clocks = <&ccu CLK_BUS_EHCI0>, <&ccu CLK_BUS_OHCI0>; 32704aff09cSChris Morgan resets = <&ccu RST_BUS_EHCI0>, <&ccu RST_BUS_OHCI0>; 32804aff09cSChris Morgan phys = <&usbphy 0>; 32904aff09cSChris Morgan phy-names = "usb"; 33004aff09cSChris Morgan status = "disabled"; 33104aff09cSChris Morgan }; 33204aff09cSChris Morgan 33304aff09cSChris Morgan ohci: usb@1c1a400 { 33404aff09cSChris Morgan compatible = "allwinner,sun8i-v3s-ohci", "generic-ohci"; 33504aff09cSChris Morgan reg = <0x01c1a400 0x100>; 33604aff09cSChris Morgan interrupts = <GIC_SPI 73 IRQ_TYPE_LEVEL_HIGH>; 33704aff09cSChris Morgan clocks = <&ccu CLK_BUS_EHCI0>, <&ccu CLK_BUS_OHCI0>, 33804aff09cSChris Morgan <&ccu CLK_USB_OHCI0>; 33904aff09cSChris Morgan resets = <&ccu RST_BUS_EHCI0>, <&ccu RST_BUS_OHCI0>; 34004aff09cSChris Morgan phys = <&usbphy 0>; 34104aff09cSChris Morgan phy-names = "usb"; 34204aff09cSChris Morgan status = "disabled"; 34304aff09cSChris Morgan }; 34404aff09cSChris Morgan 345724ba675SRob Herring ccu: clock@1c20000 { 346724ba675SRob Herring compatible = "allwinner,sun8i-v3s-ccu"; 347724ba675SRob Herring reg = <0x01c20000 0x400>; 348724ba675SRob Herring clocks = <&osc24M>, <&rtc CLK_OSC32K>; 349724ba675SRob Herring clock-names = "hosc", "losc"; 350724ba675SRob Herring #clock-cells = <1>; 351724ba675SRob Herring #reset-cells = <1>; 352724ba675SRob Herring }; 353724ba675SRob Herring 354724ba675SRob Herring rtc: rtc@1c20400 { 355724ba675SRob Herring #clock-cells = <1>; 356724ba675SRob Herring compatible = "allwinner,sun8i-v3-rtc"; 357724ba675SRob Herring reg = <0x01c20400 0x54>; 358724ba675SRob Herring interrupts = <GIC_SPI 40 IRQ_TYPE_LEVEL_HIGH>, 359724ba675SRob Herring <GIC_SPI 41 IRQ_TYPE_LEVEL_HIGH>; 360724ba675SRob Herring clocks = <&osc32k>; 361724ba675SRob Herring clock-output-names = "osc32k", "osc32k-out"; 362724ba675SRob Herring }; 363724ba675SRob Herring 364724ba675SRob Herring pio: pinctrl@1c20800 { 365724ba675SRob Herring compatible = "allwinner,sun8i-v3s-pinctrl"; 366724ba675SRob Herring reg = <0x01c20800 0x400>; 367724ba675SRob Herring interrupts = <GIC_SPI 15 IRQ_TYPE_LEVEL_HIGH>, 368724ba675SRob Herring <GIC_SPI 17 IRQ_TYPE_LEVEL_HIGH>; 369724ba675SRob Herring clocks = <&ccu CLK_BUS_PIO>, <&osc24M>, 370724ba675SRob Herring <&rtc CLK_OSC32K>; 371724ba675SRob Herring clock-names = "apb", "hosc", "losc"; 372724ba675SRob Herring gpio-controller; 373724ba675SRob Herring #gpio-cells = <3>; 374724ba675SRob Herring interrupt-controller; 375724ba675SRob Herring #interrupt-cells = <3>; 376724ba675SRob Herring 377724ba675SRob Herring /omit-if-no-ref/ 378724ba675SRob Herring csi0_mclk_pin: csi0-mclk-pin { 379724ba675SRob Herring pins = "PE20"; 380724ba675SRob Herring function = "csi_mipi"; 381724ba675SRob Herring }; 382724ba675SRob Herring 383724ba675SRob Herring /omit-if-no-ref/ 384724ba675SRob Herring csi1_8bit_pins: csi1-8bit-pins { 385724ba675SRob Herring pins = "PE0", "PE2", "PE3", "PE8", "PE9", 386724ba675SRob Herring "PE10", "PE11", "PE12", "PE13", "PE14", 387724ba675SRob Herring "PE15"; 388724ba675SRob Herring function = "csi"; 389724ba675SRob Herring }; 390724ba675SRob Herring 391724ba675SRob Herring /omit-if-no-ref/ 392724ba675SRob Herring csi1_mclk_pin: csi1-mclk-pin { 393724ba675SRob Herring pins = "PE1"; 394724ba675SRob Herring function = "csi"; 395724ba675SRob Herring }; 396724ba675SRob Herring 397724ba675SRob Herring i2c0_pins: i2c0-pins { 398724ba675SRob Herring pins = "PB6", "PB7"; 399724ba675SRob Herring function = "i2c0"; 400724ba675SRob Herring }; 401724ba675SRob Herring 402724ba675SRob Herring /omit-if-no-ref/ 403724ba675SRob Herring i2c1_pb_pins: i2c1-pb-pins { 404724ba675SRob Herring pins = "PB8", "PB9"; 405724ba675SRob Herring function = "i2c1"; 406724ba675SRob Herring }; 407724ba675SRob Herring 408724ba675SRob Herring /omit-if-no-ref/ 409724ba675SRob Herring i2c1_pe_pins: i2c1-pe-pins { 410724ba675SRob Herring pins = "PE21", "PE22"; 411724ba675SRob Herring function = "i2c1"; 412724ba675SRob Herring }; 413724ba675SRob Herring 414724ba675SRob Herring uart0_pb_pins: uart0-pb-pins { 415724ba675SRob Herring pins = "PB8", "PB9"; 416724ba675SRob Herring function = "uart0"; 417724ba675SRob Herring }; 418724ba675SRob Herring 419724ba675SRob Herring uart2_pins: uart2-pins { 420724ba675SRob Herring pins = "PB0", "PB1"; 421724ba675SRob Herring function = "uart2"; 422724ba675SRob Herring }; 423724ba675SRob Herring 424724ba675SRob Herring mmc0_pins: mmc0-pins { 425724ba675SRob Herring pins = "PF0", "PF1", "PF2", "PF3", 426724ba675SRob Herring "PF4", "PF5"; 427724ba675SRob Herring function = "mmc0"; 428724ba675SRob Herring drive-strength = <30>; 429724ba675SRob Herring bias-pull-up; 430724ba675SRob Herring }; 431724ba675SRob Herring 432724ba675SRob Herring mmc1_pins: mmc1-pins { 433724ba675SRob Herring pins = "PG0", "PG1", "PG2", "PG3", 434724ba675SRob Herring "PG4", "PG5"; 435724ba675SRob Herring function = "mmc1"; 436724ba675SRob Herring drive-strength = <30>; 437724ba675SRob Herring bias-pull-up; 438724ba675SRob Herring }; 439724ba675SRob Herring 44041192b67SChris Morgan /omit-if-no-ref/ 44141192b67SChris Morgan pwm0_pin: pwm0-pin { 44241192b67SChris Morgan pins = "PB4"; 44341192b67SChris Morgan function = "pwm0"; 44441192b67SChris Morgan }; 44541192b67SChris Morgan 44641192b67SChris Morgan /omit-if-no-ref/ 44741192b67SChris Morgan pwm1_pin: pwm1-pin { 44841192b67SChris Morgan pins = "PB5"; 44941192b67SChris Morgan function = "pwm1"; 45041192b67SChris Morgan }; 45141192b67SChris Morgan 452724ba675SRob Herring spi0_pins: spi0-pins { 453724ba675SRob Herring pins = "PC0", "PC1", "PC2", "PC3"; 454724ba675SRob Herring function = "spi0"; 455724ba675SRob Herring }; 456724ba675SRob Herring }; 457724ba675SRob Herring 458724ba675SRob Herring timer@1c20c00 { 459724ba675SRob Herring compatible = "allwinner,sun8i-v3s-timer"; 460724ba675SRob Herring reg = <0x01c20c00 0xa0>; 461724ba675SRob Herring interrupts = <GIC_SPI 18 IRQ_TYPE_LEVEL_HIGH>, 462724ba675SRob Herring <GIC_SPI 19 IRQ_TYPE_LEVEL_HIGH>, 463724ba675SRob Herring <GIC_SPI 20 IRQ_TYPE_LEVEL_HIGH>; 464724ba675SRob Herring clocks = <&osc24M>; 465724ba675SRob Herring }; 466724ba675SRob Herring 467724ba675SRob Herring wdt0: watchdog@1c20ca0 { 468724ba675SRob Herring compatible = "allwinner,sun6i-a31-wdt"; 469724ba675SRob Herring reg = <0x01c20ca0 0x20>; 470724ba675SRob Herring interrupts = <GIC_SPI 25 IRQ_TYPE_LEVEL_HIGH>; 471724ba675SRob Herring clocks = <&osc24M>; 472724ba675SRob Herring }; 473724ba675SRob Herring 474724ba675SRob Herring pwm: pwm@1c21400 { 475724ba675SRob Herring compatible = "allwinner,sun8i-v3s-pwm", 476724ba675SRob Herring "allwinner,sun7i-a20-pwm"; 477724ba675SRob Herring reg = <0x01c21400 0xc>; 478724ba675SRob Herring clocks = <&osc24M>; 479724ba675SRob Herring #pwm-cells = <3>; 480724ba675SRob Herring status = "disabled"; 481724ba675SRob Herring }; 482724ba675SRob Herring 483724ba675SRob Herring lradc: lradc@1c22800 { 484724ba675SRob Herring compatible = "allwinner,sun4i-a10-lradc-keys"; 485724ba675SRob Herring reg = <0x01c22800 0x400>; 486724ba675SRob Herring interrupts = <GIC_SPI 30 IRQ_TYPE_LEVEL_HIGH>; 487724ba675SRob Herring status = "disabled"; 488724ba675SRob Herring }; 489724ba675SRob Herring 490724ba675SRob Herring codec: codec@1c22c00 { 491724ba675SRob Herring #sound-dai-cells = <0>; 492724ba675SRob Herring compatible = "allwinner,sun8i-v3s-codec"; 493724ba675SRob Herring reg = <0x01c22c00 0x400>; 494724ba675SRob Herring interrupts = <GIC_SPI 29 IRQ_TYPE_LEVEL_HIGH>; 495724ba675SRob Herring clocks = <&ccu CLK_BUS_CODEC>, <&ccu CLK_AC_DIG>; 496724ba675SRob Herring clock-names = "apb", "codec"; 497724ba675SRob Herring resets = <&ccu RST_BUS_CODEC>; 498724ba675SRob Herring dmas = <&dma 15>, <&dma 15>; 499724ba675SRob Herring dma-names = "rx", "tx"; 500724ba675SRob Herring allwinner,codec-analog-controls = <&codec_analog>; 501724ba675SRob Herring status = "disabled"; 502724ba675SRob Herring }; 503724ba675SRob Herring 504724ba675SRob Herring codec_analog: codec-analog@1c23000 { 505724ba675SRob Herring compatible = "allwinner,sun8i-v3s-codec-analog"; 506724ba675SRob Herring reg = <0x01c23000 0x4>; 507724ba675SRob Herring }; 508724ba675SRob Herring 509724ba675SRob Herring uart0: serial@1c28000 { 510724ba675SRob Herring compatible = "snps,dw-apb-uart"; 511724ba675SRob Herring reg = <0x01c28000 0x400>; 512724ba675SRob Herring interrupts = <GIC_SPI 0 IRQ_TYPE_LEVEL_HIGH>; 513724ba675SRob Herring reg-shift = <2>; 514724ba675SRob Herring reg-io-width = <4>; 515724ba675SRob Herring clocks = <&ccu CLK_BUS_UART0>; 516724ba675SRob Herring dmas = <&dma 6>, <&dma 6>; 517724ba675SRob Herring dma-names = "tx", "rx"; 518724ba675SRob Herring resets = <&ccu RST_BUS_UART0>; 519724ba675SRob Herring status = "disabled"; 520724ba675SRob Herring }; 521724ba675SRob Herring 522724ba675SRob Herring uart1: serial@1c28400 { 523724ba675SRob Herring compatible = "snps,dw-apb-uart"; 524724ba675SRob Herring reg = <0x01c28400 0x400>; 525724ba675SRob Herring interrupts = <GIC_SPI 1 IRQ_TYPE_LEVEL_HIGH>; 526724ba675SRob Herring reg-shift = <2>; 527724ba675SRob Herring reg-io-width = <4>; 528724ba675SRob Herring clocks = <&ccu CLK_BUS_UART1>; 529724ba675SRob Herring dmas = <&dma 7>, <&dma 7>; 530724ba675SRob Herring dma-names = "tx", "rx"; 531724ba675SRob Herring resets = <&ccu RST_BUS_UART1>; 532724ba675SRob Herring status = "disabled"; 533724ba675SRob Herring }; 534724ba675SRob Herring 535724ba675SRob Herring uart2: serial@1c28800 { 536724ba675SRob Herring compatible = "snps,dw-apb-uart"; 537724ba675SRob Herring reg = <0x01c28800 0x400>; 538724ba675SRob Herring interrupts = <GIC_SPI 2 IRQ_TYPE_LEVEL_HIGH>; 539724ba675SRob Herring reg-shift = <2>; 540724ba675SRob Herring reg-io-width = <4>; 541724ba675SRob Herring clocks = <&ccu CLK_BUS_UART2>; 542724ba675SRob Herring dmas = <&dma 8>, <&dma 8>; 543724ba675SRob Herring dma-names = "tx", "rx"; 544724ba675SRob Herring resets = <&ccu RST_BUS_UART2>; 545724ba675SRob Herring pinctrl-0 = <&uart2_pins>; 546724ba675SRob Herring pinctrl-names = "default"; 547724ba675SRob Herring status = "disabled"; 548724ba675SRob Herring }; 549724ba675SRob Herring 550724ba675SRob Herring i2c0: i2c@1c2ac00 { 551724ba675SRob Herring compatible = "allwinner,sun6i-a31-i2c"; 552724ba675SRob Herring reg = <0x01c2ac00 0x400>; 553724ba675SRob Herring interrupts = <GIC_SPI 6 IRQ_TYPE_LEVEL_HIGH>; 554724ba675SRob Herring clocks = <&ccu CLK_BUS_I2C0>; 555724ba675SRob Herring resets = <&ccu RST_BUS_I2C0>; 556724ba675SRob Herring pinctrl-names = "default"; 557724ba675SRob Herring pinctrl-0 = <&i2c0_pins>; 558724ba675SRob Herring status = "disabled"; 559724ba675SRob Herring #address-cells = <1>; 560724ba675SRob Herring #size-cells = <0>; 561724ba675SRob Herring }; 562724ba675SRob Herring 563724ba675SRob Herring i2c1: i2c@1c2b000 { 564724ba675SRob Herring compatible = "allwinner,sun6i-a31-i2c"; 565724ba675SRob Herring reg = <0x01c2b000 0x400>; 566724ba675SRob Herring interrupts = <GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH>; 567724ba675SRob Herring clocks = <&ccu CLK_BUS_I2C1>; 568724ba675SRob Herring resets = <&ccu RST_BUS_I2C1>; 569724ba675SRob Herring status = "disabled"; 570724ba675SRob Herring #address-cells = <1>; 571724ba675SRob Herring #size-cells = <0>; 572724ba675SRob Herring }; 573724ba675SRob Herring 574724ba675SRob Herring emac: ethernet@1c30000 { 575724ba675SRob Herring compatible = "allwinner,sun8i-v3s-emac"; 576724ba675SRob Herring syscon = <&syscon>; 577724ba675SRob Herring reg = <0x01c30000 0x10000>; 578724ba675SRob Herring interrupts = <GIC_SPI 82 IRQ_TYPE_LEVEL_HIGH>; 579724ba675SRob Herring interrupt-names = "macirq"; 580724ba675SRob Herring resets = <&ccu RST_BUS_EMAC>; 581724ba675SRob Herring reset-names = "stmmaceth"; 582724ba675SRob Herring clocks = <&ccu CLK_BUS_EMAC>; 583724ba675SRob Herring clock-names = "stmmaceth"; 584724ba675SRob Herring phy-handle = <&int_mii_phy>; 585724ba675SRob Herring phy-mode = "mii"; 586724ba675SRob Herring status = "disabled"; 587724ba675SRob Herring 588724ba675SRob Herring mdio: mdio { 589724ba675SRob Herring #address-cells = <1>; 590724ba675SRob Herring #size-cells = <0>; 591724ba675SRob Herring compatible = "snps,dwmac-mdio"; 592724ba675SRob Herring }; 593724ba675SRob Herring 594724ba675SRob Herring mdio_mux: mdio-mux { 595724ba675SRob Herring compatible = "allwinner,sun8i-h3-mdio-mux"; 596724ba675SRob Herring #address-cells = <1>; 597724ba675SRob Herring #size-cells = <0>; 598724ba675SRob Herring 599724ba675SRob Herring mdio-parent-bus = <&mdio>; 600724ba675SRob Herring /* Only one MDIO is usable at the time */ 601724ba675SRob Herring internal_mdio: mdio@1 { 602724ba675SRob Herring compatible = "allwinner,sun8i-h3-mdio-internal"; 603724ba675SRob Herring reg = <1>; 604724ba675SRob Herring #address-cells = <1>; 605724ba675SRob Herring #size-cells = <0>; 606724ba675SRob Herring 607724ba675SRob Herring int_mii_phy: ethernet-phy@1 { 608724ba675SRob Herring compatible = "ethernet-phy-ieee802.3-c22"; 609724ba675SRob Herring reg = <1>; 610724ba675SRob Herring clocks = <&ccu CLK_BUS_EPHY>; 611724ba675SRob Herring resets = <&ccu RST_BUS_EPHY>; 612724ba675SRob Herring }; 613724ba675SRob Herring }; 614724ba675SRob Herring }; 615724ba675SRob Herring }; 616724ba675SRob Herring 617724ba675SRob Herring spi0: spi@1c68000 { 618724ba675SRob Herring compatible = "allwinner,sun8i-h3-spi"; 619724ba675SRob Herring reg = <0x01c68000 0x1000>; 620724ba675SRob Herring interrupts = <GIC_SPI 65 IRQ_TYPE_LEVEL_HIGH>; 621724ba675SRob Herring clocks = <&ccu CLK_BUS_SPI0>, <&ccu CLK_SPI0>; 622724ba675SRob Herring clock-names = "ahb", "mod"; 623724ba675SRob Herring dmas = <&dma 23>, <&dma 23>; 624724ba675SRob Herring dma-names = "rx", "tx"; 625724ba675SRob Herring pinctrl-names = "default"; 626724ba675SRob Herring pinctrl-0 = <&spi0_pins>; 627724ba675SRob Herring resets = <&ccu RST_BUS_SPI0>; 628724ba675SRob Herring status = "disabled"; 629724ba675SRob Herring #address-cells = <1>; 630724ba675SRob Herring #size-cells = <0>; 631724ba675SRob Herring }; 632724ba675SRob Herring 633724ba675SRob Herring gic: interrupt-controller@1c81000 { 634724ba675SRob Herring compatible = "arm,gic-400"; 635724ba675SRob Herring reg = <0x01c81000 0x1000>, 636724ba675SRob Herring <0x01c82000 0x2000>, 637724ba675SRob Herring <0x01c84000 0x2000>, 638724ba675SRob Herring <0x01c86000 0x2000>; 639724ba675SRob Herring interrupt-controller; 640724ba675SRob Herring #interrupt-cells = <3>; 641724ba675SRob Herring interrupts = <GIC_PPI 9 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>; 642724ba675SRob Herring }; 643724ba675SRob Herring 644724ba675SRob Herring csi1: camera@1cb4000 { 645724ba675SRob Herring compatible = "allwinner,sun8i-v3s-csi"; 646724ba675SRob Herring reg = <0x01cb4000 0x3000>; 647724ba675SRob Herring interrupts = <GIC_SPI 84 IRQ_TYPE_LEVEL_HIGH>; 648724ba675SRob Herring clocks = <&ccu CLK_BUS_CSI>, 649724ba675SRob Herring <&ccu CLK_CSI1_SCLK>, 650724ba675SRob Herring <&ccu CLK_DRAM_CSI>; 651724ba675SRob Herring clock-names = "bus", "mod", "ram"; 652724ba675SRob Herring resets = <&ccu RST_BUS_CSI>; 653724ba675SRob Herring status = "disabled"; 654724ba675SRob Herring }; 655724ba675SRob Herring }; 656724ba675SRob Herring}; 657