1f126890aSEmmanuel Vadot/* 2f126890aSEmmanuel Vadot * Copyright (C) 2015 Jens Kuske <jenskuske@gmail.com> 3f126890aSEmmanuel Vadot * 4f126890aSEmmanuel Vadot * This file is dual-licensed: you can use it either under the terms 5f126890aSEmmanuel Vadot * of the GPL or the X11 license, at your option. Note that this dual 6f126890aSEmmanuel Vadot * licensing only applies to this file, and not this project as a 7f126890aSEmmanuel Vadot * whole. 8f126890aSEmmanuel Vadot * 9f126890aSEmmanuel Vadot * a) This file is free software; you can redistribute it and/or 10f126890aSEmmanuel Vadot * modify it under the terms of the GNU General Public License as 11f126890aSEmmanuel Vadot * published by the Free Software Foundation; either version 2 of the 12f126890aSEmmanuel Vadot * License, or (at your option) any later version. 13f126890aSEmmanuel Vadot * 14f126890aSEmmanuel Vadot * This file is distributed in the hope that it will be useful, 15f126890aSEmmanuel Vadot * but WITHOUT ANY WARRANTY; without even the implied warranty of 16f126890aSEmmanuel Vadot * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 17f126890aSEmmanuel Vadot * GNU General Public License for more details. 18f126890aSEmmanuel Vadot * 19f126890aSEmmanuel Vadot * Or, alternatively, 20f126890aSEmmanuel Vadot * 21f126890aSEmmanuel Vadot * b) Permission is hereby granted, free of charge, to any person 22f126890aSEmmanuel Vadot * obtaining a copy of this software and associated documentation 23f126890aSEmmanuel Vadot * files (the "Software"), to deal in the Software without 24f126890aSEmmanuel Vadot * restriction, including without limitation the rights to use, 25f126890aSEmmanuel Vadot * copy, modify, merge, publish, distribute, sublicense, and/or 26f126890aSEmmanuel Vadot * sell copies of the Software, and to permit persons to whom the 27f126890aSEmmanuel Vadot * Software is furnished to do so, subject to the following 28f126890aSEmmanuel Vadot * conditions: 29f126890aSEmmanuel Vadot * 30f126890aSEmmanuel Vadot * The above copyright notice and this permission notice shall be 31f126890aSEmmanuel Vadot * included in all copies or substantial portions of the Software. 32f126890aSEmmanuel Vadot * 33f126890aSEmmanuel Vadot * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 34f126890aSEmmanuel Vadot * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES 35f126890aSEmmanuel Vadot * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 36f126890aSEmmanuel Vadot * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT 37f126890aSEmmanuel Vadot * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, 38f126890aSEmmanuel Vadot * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 39f126890aSEmmanuel Vadot * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 40f126890aSEmmanuel Vadot * OTHER DEALINGS IN THE SOFTWARE. 41f126890aSEmmanuel Vadot */ 42f126890aSEmmanuel Vadot 43f126890aSEmmanuel Vadot#include <dt-bindings/clock/sun6i-rtc.h> 44f126890aSEmmanuel Vadot#include <dt-bindings/clock/sun8i-de2.h> 45f126890aSEmmanuel Vadot#include <dt-bindings/clock/sun8i-h3-ccu.h> 46f126890aSEmmanuel Vadot#include <dt-bindings/clock/sun8i-r-ccu.h> 47f126890aSEmmanuel Vadot#include <dt-bindings/interrupt-controller/arm-gic.h> 48f126890aSEmmanuel Vadot#include <dt-bindings/reset/sun8i-de2.h> 49f126890aSEmmanuel Vadot#include <dt-bindings/reset/sun8i-h3-ccu.h> 50f126890aSEmmanuel Vadot#include <dt-bindings/reset/sun8i-r-ccu.h> 51f126890aSEmmanuel Vadot 52f126890aSEmmanuel Vadot/ { 53f126890aSEmmanuel Vadot interrupt-parent = <&gic>; 54f126890aSEmmanuel Vadot #address-cells = <1>; 55f126890aSEmmanuel Vadot #size-cells = <1>; 56f126890aSEmmanuel Vadot 57f126890aSEmmanuel Vadot chosen { 58f126890aSEmmanuel Vadot #address-cells = <1>; 59f126890aSEmmanuel Vadot #size-cells = <1>; 60f126890aSEmmanuel Vadot ranges; 61f126890aSEmmanuel Vadot 62f126890aSEmmanuel Vadot framebuffer-hdmi { 63f126890aSEmmanuel Vadot compatible = "allwinner,simple-framebuffer", 64f126890aSEmmanuel Vadot "simple-framebuffer"; 65f126890aSEmmanuel Vadot allwinner,pipeline = "mixer0-lcd0-hdmi"; 66f126890aSEmmanuel Vadot clocks = <&display_clocks CLK_MIXER0>, 67f126890aSEmmanuel Vadot <&ccu CLK_TCON0>, <&ccu CLK_HDMI>; 68f126890aSEmmanuel Vadot status = "disabled"; 69f126890aSEmmanuel Vadot }; 70f126890aSEmmanuel Vadot 71f126890aSEmmanuel Vadot framebuffer-tve { 72f126890aSEmmanuel Vadot compatible = "allwinner,simple-framebuffer", 73f126890aSEmmanuel Vadot "simple-framebuffer"; 74f126890aSEmmanuel Vadot allwinner,pipeline = "mixer1-lcd1-tve"; 75f126890aSEmmanuel Vadot clocks = <&display_clocks CLK_MIXER1>, 76f126890aSEmmanuel Vadot <&ccu CLK_TVE>; 77f126890aSEmmanuel Vadot status = "disabled"; 78f126890aSEmmanuel Vadot }; 79f126890aSEmmanuel Vadot }; 80f126890aSEmmanuel Vadot 81f126890aSEmmanuel Vadot clocks { 82f126890aSEmmanuel Vadot #address-cells = <1>; 83f126890aSEmmanuel Vadot #size-cells = <1>; 84f126890aSEmmanuel Vadot ranges; 85f126890aSEmmanuel Vadot 86*7d0873ebSEmmanuel Vadot osc24M: osc24M-clk { 87f126890aSEmmanuel Vadot #clock-cells = <0>; 88f126890aSEmmanuel Vadot compatible = "fixed-clock"; 89f126890aSEmmanuel Vadot clock-frequency = <24000000>; 90f126890aSEmmanuel Vadot clock-accuracy = <50000>; 91f126890aSEmmanuel Vadot clock-output-names = "osc24M"; 92f126890aSEmmanuel Vadot }; 93f126890aSEmmanuel Vadot 94*7d0873ebSEmmanuel Vadot osc32k: osc32k-clk { 95f126890aSEmmanuel Vadot #clock-cells = <0>; 96f126890aSEmmanuel Vadot compatible = "fixed-clock"; 97f126890aSEmmanuel Vadot clock-frequency = <32768>; 98f126890aSEmmanuel Vadot clock-accuracy = <50000>; 99f126890aSEmmanuel Vadot clock-output-names = "ext_osc32k"; 100f126890aSEmmanuel Vadot }; 101f126890aSEmmanuel Vadot }; 102f126890aSEmmanuel Vadot 103f126890aSEmmanuel Vadot de: display-engine { 104f126890aSEmmanuel Vadot compatible = "allwinner,sun8i-h3-display-engine"; 105f126890aSEmmanuel Vadot allwinner,pipelines = <&mixer0>; 106f126890aSEmmanuel Vadot status = "disabled"; 107f126890aSEmmanuel Vadot }; 108f126890aSEmmanuel Vadot 109f126890aSEmmanuel Vadot soc { 110f126890aSEmmanuel Vadot compatible = "simple-bus"; 111f126890aSEmmanuel Vadot #address-cells = <1>; 112f126890aSEmmanuel Vadot #size-cells = <1>; 113f126890aSEmmanuel Vadot dma-ranges; 114f126890aSEmmanuel Vadot ranges; 115f126890aSEmmanuel Vadot 116f126890aSEmmanuel Vadot display_clocks: clock@1000000 { 117f126890aSEmmanuel Vadot /* compatible is in per SoC .dtsi file */ 118f126890aSEmmanuel Vadot reg = <0x01000000 0x10000>; 119f126890aSEmmanuel Vadot clocks = <&ccu CLK_BUS_DE>, 120f126890aSEmmanuel Vadot <&ccu CLK_DE>; 121f126890aSEmmanuel Vadot clock-names = "bus", 122f126890aSEmmanuel Vadot "mod"; 123f126890aSEmmanuel Vadot resets = <&ccu RST_BUS_DE>; 124f126890aSEmmanuel Vadot #clock-cells = <1>; 125f126890aSEmmanuel Vadot #reset-cells = <1>; 126f126890aSEmmanuel Vadot }; 127f126890aSEmmanuel Vadot 128f126890aSEmmanuel Vadot mixer0: mixer@1100000 { 129f126890aSEmmanuel Vadot compatible = "allwinner,sun8i-h3-de2-mixer-0"; 130f126890aSEmmanuel Vadot reg = <0x01100000 0x100000>; 131f126890aSEmmanuel Vadot clocks = <&display_clocks CLK_BUS_MIXER0>, 132f126890aSEmmanuel Vadot <&display_clocks CLK_MIXER0>; 133f126890aSEmmanuel Vadot clock-names = "bus", 134f126890aSEmmanuel Vadot "mod"; 135f126890aSEmmanuel Vadot resets = <&display_clocks RST_MIXER0>; 136f126890aSEmmanuel Vadot 137f126890aSEmmanuel Vadot ports { 138f126890aSEmmanuel Vadot #address-cells = <1>; 139f126890aSEmmanuel Vadot #size-cells = <0>; 140f126890aSEmmanuel Vadot 141f126890aSEmmanuel Vadot mixer0_out: port@1 { 142f126890aSEmmanuel Vadot reg = <1>; 143f126890aSEmmanuel Vadot 144f126890aSEmmanuel Vadot mixer0_out_tcon0: endpoint { 145f126890aSEmmanuel Vadot remote-endpoint = <&tcon0_in_mixer0>; 146f126890aSEmmanuel Vadot }; 147f126890aSEmmanuel Vadot }; 148f126890aSEmmanuel Vadot }; 149f126890aSEmmanuel Vadot }; 150f126890aSEmmanuel Vadot 151f126890aSEmmanuel Vadot dma: dma-controller@1c02000 { 152f126890aSEmmanuel Vadot compatible = "allwinner,sun8i-h3-dma"; 153f126890aSEmmanuel Vadot reg = <0x01c02000 0x1000>; 154f126890aSEmmanuel Vadot interrupts = <GIC_SPI 50 IRQ_TYPE_LEVEL_HIGH>; 155f126890aSEmmanuel Vadot clocks = <&ccu CLK_BUS_DMA>; 156f126890aSEmmanuel Vadot resets = <&ccu RST_BUS_DMA>; 157f126890aSEmmanuel Vadot #dma-cells = <1>; 158f126890aSEmmanuel Vadot }; 159f126890aSEmmanuel Vadot 160f126890aSEmmanuel Vadot tcon0: lcd-controller@1c0c000 { 161f126890aSEmmanuel Vadot compatible = "allwinner,sun8i-h3-tcon-tv", 162f126890aSEmmanuel Vadot "allwinner,sun8i-a83t-tcon-tv"; 163f126890aSEmmanuel Vadot reg = <0x01c0c000 0x1000>; 164f126890aSEmmanuel Vadot interrupts = <GIC_SPI 86 IRQ_TYPE_LEVEL_HIGH>; 165f126890aSEmmanuel Vadot clocks = <&ccu CLK_BUS_TCON0>, <&ccu CLK_TCON0>; 166f126890aSEmmanuel Vadot clock-names = "ahb", "tcon-ch1"; 167f126890aSEmmanuel Vadot resets = <&ccu RST_BUS_TCON0>; 168f126890aSEmmanuel Vadot reset-names = "lcd"; 169f126890aSEmmanuel Vadot 170f126890aSEmmanuel Vadot ports { 171f126890aSEmmanuel Vadot #address-cells = <1>; 172f126890aSEmmanuel Vadot #size-cells = <0>; 173f126890aSEmmanuel Vadot 174f126890aSEmmanuel Vadot tcon0_in: port@0 { 175f126890aSEmmanuel Vadot reg = <0>; 176f126890aSEmmanuel Vadot 177f126890aSEmmanuel Vadot tcon0_in_mixer0: endpoint { 178f126890aSEmmanuel Vadot remote-endpoint = <&mixer0_out_tcon0>; 179f126890aSEmmanuel Vadot }; 180f126890aSEmmanuel Vadot }; 181f126890aSEmmanuel Vadot 182f126890aSEmmanuel Vadot tcon0_out: port@1 { 183f126890aSEmmanuel Vadot #address-cells = <1>; 184f126890aSEmmanuel Vadot #size-cells = <0>; 185f126890aSEmmanuel Vadot reg = <1>; 186f126890aSEmmanuel Vadot 187f126890aSEmmanuel Vadot tcon0_out_hdmi: endpoint@1 { 188f126890aSEmmanuel Vadot reg = <1>; 189f126890aSEmmanuel Vadot remote-endpoint = <&hdmi_in_tcon0>; 190f126890aSEmmanuel Vadot }; 191f126890aSEmmanuel Vadot }; 192f126890aSEmmanuel Vadot }; 193f126890aSEmmanuel Vadot }; 194f126890aSEmmanuel Vadot 195f126890aSEmmanuel Vadot mmc0: mmc@1c0f000 { 196f126890aSEmmanuel Vadot /* compatible and clocks are in per SoC .dtsi file */ 197f126890aSEmmanuel Vadot reg = <0x01c0f000 0x1000>; 198f126890aSEmmanuel Vadot pinctrl-names = "default"; 199f126890aSEmmanuel Vadot pinctrl-0 = <&mmc0_pins>; 200f126890aSEmmanuel Vadot resets = <&ccu RST_BUS_MMC0>; 201f126890aSEmmanuel Vadot reset-names = "ahb"; 202f126890aSEmmanuel Vadot interrupts = <GIC_SPI 60 IRQ_TYPE_LEVEL_HIGH>; 203f126890aSEmmanuel Vadot status = "disabled"; 204f126890aSEmmanuel Vadot #address-cells = <1>; 205f126890aSEmmanuel Vadot #size-cells = <0>; 206f126890aSEmmanuel Vadot }; 207f126890aSEmmanuel Vadot 208f126890aSEmmanuel Vadot mmc1: mmc@1c10000 { 209f126890aSEmmanuel Vadot /* compatible and clocks are in per SoC .dtsi file */ 210f126890aSEmmanuel Vadot reg = <0x01c10000 0x1000>; 211f126890aSEmmanuel Vadot pinctrl-names = "default"; 212f126890aSEmmanuel Vadot pinctrl-0 = <&mmc1_pins>; 213f126890aSEmmanuel Vadot resets = <&ccu RST_BUS_MMC1>; 214f126890aSEmmanuel Vadot reset-names = "ahb"; 215f126890aSEmmanuel Vadot interrupts = <GIC_SPI 61 IRQ_TYPE_LEVEL_HIGH>; 216f126890aSEmmanuel Vadot status = "disabled"; 217f126890aSEmmanuel Vadot #address-cells = <1>; 218f126890aSEmmanuel Vadot #size-cells = <0>; 219f126890aSEmmanuel Vadot }; 220f126890aSEmmanuel Vadot 221f126890aSEmmanuel Vadot mmc2: mmc@1c11000 { 222f126890aSEmmanuel Vadot /* compatible and clocks are in per SoC .dtsi file */ 223f126890aSEmmanuel Vadot reg = <0x01c11000 0x1000>; 224f126890aSEmmanuel Vadot resets = <&ccu RST_BUS_MMC2>; 225f126890aSEmmanuel Vadot reset-names = "ahb"; 226f126890aSEmmanuel Vadot interrupts = <GIC_SPI 62 IRQ_TYPE_LEVEL_HIGH>; 227f126890aSEmmanuel Vadot status = "disabled"; 228f126890aSEmmanuel Vadot #address-cells = <1>; 229f126890aSEmmanuel Vadot #size-cells = <0>; 230f126890aSEmmanuel Vadot }; 231f126890aSEmmanuel Vadot 232f126890aSEmmanuel Vadot sid: eeprom@1c14000 { 233f126890aSEmmanuel Vadot /* compatible is in per SoC .dtsi file */ 234f126890aSEmmanuel Vadot reg = <0x1c14000 0x400>; 235f126890aSEmmanuel Vadot #address-cells = <1>; 236f126890aSEmmanuel Vadot #size-cells = <1>; 237f126890aSEmmanuel Vadot 238f126890aSEmmanuel Vadot ths_calibration: thermal-sensor-calibration@34 { 239f126890aSEmmanuel Vadot reg = <0x34 4>; 240f126890aSEmmanuel Vadot }; 241f126890aSEmmanuel Vadot }; 242f126890aSEmmanuel Vadot 243f126890aSEmmanuel Vadot msgbox: mailbox@1c17000 { 244f126890aSEmmanuel Vadot compatible = "allwinner,sun8i-h3-msgbox", 245f126890aSEmmanuel Vadot "allwinner,sun6i-a31-msgbox"; 246f126890aSEmmanuel Vadot reg = <0x01c17000 0x1000>; 247f126890aSEmmanuel Vadot clocks = <&ccu CLK_BUS_MSGBOX>; 248f126890aSEmmanuel Vadot resets = <&ccu RST_BUS_MSGBOX>; 249f126890aSEmmanuel Vadot interrupts = <GIC_SPI 49 IRQ_TYPE_LEVEL_HIGH>; 250f126890aSEmmanuel Vadot #mbox-cells = <1>; 251f126890aSEmmanuel Vadot }; 252f126890aSEmmanuel Vadot 253f126890aSEmmanuel Vadot usb_otg: usb@1c19000 { 254f126890aSEmmanuel Vadot compatible = "allwinner,sun8i-h3-musb"; 255f126890aSEmmanuel Vadot reg = <0x01c19000 0x400>; 256f126890aSEmmanuel Vadot clocks = <&ccu CLK_BUS_OTG>; 257f126890aSEmmanuel Vadot resets = <&ccu RST_BUS_OTG>; 258f126890aSEmmanuel Vadot interrupts = <GIC_SPI 71 IRQ_TYPE_LEVEL_HIGH>; 259f126890aSEmmanuel Vadot interrupt-names = "mc"; 260f126890aSEmmanuel Vadot phys = <&usbphy 0>; 261f126890aSEmmanuel Vadot phy-names = "usb"; 262f126890aSEmmanuel Vadot extcon = <&usbphy 0>; 263f126890aSEmmanuel Vadot dr_mode = "otg"; 264f126890aSEmmanuel Vadot status = "disabled"; 265f126890aSEmmanuel Vadot }; 266f126890aSEmmanuel Vadot 267f126890aSEmmanuel Vadot usbphy: phy@1c19400 { 268f126890aSEmmanuel Vadot compatible = "allwinner,sun8i-h3-usb-phy"; 269f126890aSEmmanuel Vadot reg = <0x01c19400 0x2c>, 270f126890aSEmmanuel Vadot <0x01c1a800 0x4>, 271f126890aSEmmanuel Vadot <0x01c1b800 0x4>, 272f126890aSEmmanuel Vadot <0x01c1c800 0x4>, 273f126890aSEmmanuel Vadot <0x01c1d800 0x4>; 274f126890aSEmmanuel Vadot reg-names = "phy_ctrl", 275f126890aSEmmanuel Vadot "pmu0", 276f126890aSEmmanuel Vadot "pmu1", 277f126890aSEmmanuel Vadot "pmu2", 278f126890aSEmmanuel Vadot "pmu3"; 279f126890aSEmmanuel Vadot clocks = <&ccu CLK_USB_PHY0>, 280f126890aSEmmanuel Vadot <&ccu CLK_USB_PHY1>, 281f126890aSEmmanuel Vadot <&ccu CLK_USB_PHY2>, 282f126890aSEmmanuel Vadot <&ccu CLK_USB_PHY3>; 283f126890aSEmmanuel Vadot clock-names = "usb0_phy", 284f126890aSEmmanuel Vadot "usb1_phy", 285f126890aSEmmanuel Vadot "usb2_phy", 286f126890aSEmmanuel Vadot "usb3_phy"; 287f126890aSEmmanuel Vadot resets = <&ccu RST_USB_PHY0>, 288f126890aSEmmanuel Vadot <&ccu RST_USB_PHY1>, 289f126890aSEmmanuel Vadot <&ccu RST_USB_PHY2>, 290f126890aSEmmanuel Vadot <&ccu RST_USB_PHY3>; 291f126890aSEmmanuel Vadot reset-names = "usb0_reset", 292f126890aSEmmanuel Vadot "usb1_reset", 293f126890aSEmmanuel Vadot "usb2_reset", 294f126890aSEmmanuel Vadot "usb3_reset"; 295f126890aSEmmanuel Vadot status = "disabled"; 296f126890aSEmmanuel Vadot #phy-cells = <1>; 297f126890aSEmmanuel Vadot }; 298f126890aSEmmanuel Vadot 299f126890aSEmmanuel Vadot ehci0: usb@1c1a000 { 300f126890aSEmmanuel Vadot compatible = "allwinner,sun8i-h3-ehci", "generic-ehci"; 301f126890aSEmmanuel Vadot reg = <0x01c1a000 0x100>; 302f126890aSEmmanuel Vadot interrupts = <GIC_SPI 72 IRQ_TYPE_LEVEL_HIGH>; 303f126890aSEmmanuel Vadot clocks = <&ccu CLK_BUS_EHCI0>, <&ccu CLK_BUS_OHCI0>; 304f126890aSEmmanuel Vadot resets = <&ccu RST_BUS_EHCI0>, <&ccu RST_BUS_OHCI0>; 305f126890aSEmmanuel Vadot phys = <&usbphy 0>; 306f126890aSEmmanuel Vadot phy-names = "usb"; 307f126890aSEmmanuel Vadot status = "disabled"; 308f126890aSEmmanuel Vadot }; 309f126890aSEmmanuel Vadot 310f126890aSEmmanuel Vadot ohci0: usb@1c1a400 { 311f126890aSEmmanuel Vadot compatible = "allwinner,sun8i-h3-ohci", "generic-ohci"; 312f126890aSEmmanuel Vadot reg = <0x01c1a400 0x100>; 313f126890aSEmmanuel Vadot interrupts = <GIC_SPI 73 IRQ_TYPE_LEVEL_HIGH>; 314f126890aSEmmanuel Vadot clocks = <&ccu CLK_BUS_EHCI0>, <&ccu CLK_BUS_OHCI0>, 315f126890aSEmmanuel Vadot <&ccu CLK_USB_OHCI0>; 316f126890aSEmmanuel Vadot resets = <&ccu RST_BUS_EHCI0>, <&ccu RST_BUS_OHCI0>; 317f126890aSEmmanuel Vadot phys = <&usbphy 0>; 318f126890aSEmmanuel Vadot phy-names = "usb"; 319f126890aSEmmanuel Vadot status = "disabled"; 320f126890aSEmmanuel Vadot }; 321f126890aSEmmanuel Vadot 322f126890aSEmmanuel Vadot ehci1: usb@1c1b000 { 323f126890aSEmmanuel Vadot compatible = "allwinner,sun8i-h3-ehci", "generic-ehci"; 324f126890aSEmmanuel Vadot reg = <0x01c1b000 0x100>; 325f126890aSEmmanuel Vadot interrupts = <GIC_SPI 74 IRQ_TYPE_LEVEL_HIGH>; 326f126890aSEmmanuel Vadot clocks = <&ccu CLK_BUS_EHCI1>, <&ccu CLK_BUS_OHCI1>; 327f126890aSEmmanuel Vadot resets = <&ccu RST_BUS_EHCI1>, <&ccu RST_BUS_OHCI1>; 328f126890aSEmmanuel Vadot phys = <&usbphy 1>; 329f126890aSEmmanuel Vadot phy-names = "usb"; 330f126890aSEmmanuel Vadot status = "disabled"; 331f126890aSEmmanuel Vadot }; 332f126890aSEmmanuel Vadot 333f126890aSEmmanuel Vadot ohci1: usb@1c1b400 { 334f126890aSEmmanuel Vadot compatible = "allwinner,sun8i-h3-ohci", "generic-ohci"; 335f126890aSEmmanuel Vadot reg = <0x01c1b400 0x100>; 336f126890aSEmmanuel Vadot interrupts = <GIC_SPI 75 IRQ_TYPE_LEVEL_HIGH>; 337f126890aSEmmanuel Vadot clocks = <&ccu CLK_BUS_EHCI1>, <&ccu CLK_BUS_OHCI1>, 338f126890aSEmmanuel Vadot <&ccu CLK_USB_OHCI1>; 339f126890aSEmmanuel Vadot resets = <&ccu RST_BUS_EHCI1>, <&ccu RST_BUS_OHCI1>; 340f126890aSEmmanuel Vadot phys = <&usbphy 1>; 341f126890aSEmmanuel Vadot phy-names = "usb"; 342f126890aSEmmanuel Vadot status = "disabled"; 343f126890aSEmmanuel Vadot }; 344f126890aSEmmanuel Vadot 345f126890aSEmmanuel Vadot ehci2: usb@1c1c000 { 346f126890aSEmmanuel Vadot compatible = "allwinner,sun8i-h3-ehci", "generic-ehci"; 347f126890aSEmmanuel Vadot reg = <0x01c1c000 0x100>; 348f126890aSEmmanuel Vadot interrupts = <GIC_SPI 76 IRQ_TYPE_LEVEL_HIGH>; 349f126890aSEmmanuel Vadot clocks = <&ccu CLK_BUS_EHCI2>, <&ccu CLK_BUS_OHCI2>; 350f126890aSEmmanuel Vadot resets = <&ccu RST_BUS_EHCI2>, <&ccu RST_BUS_OHCI2>; 351f126890aSEmmanuel Vadot phys = <&usbphy 2>; 352f126890aSEmmanuel Vadot phy-names = "usb"; 353f126890aSEmmanuel Vadot status = "disabled"; 354f126890aSEmmanuel Vadot }; 355f126890aSEmmanuel Vadot 356f126890aSEmmanuel Vadot ohci2: usb@1c1c400 { 357f126890aSEmmanuel Vadot compatible = "allwinner,sun8i-h3-ohci", "generic-ohci"; 358f126890aSEmmanuel Vadot reg = <0x01c1c400 0x100>; 359f126890aSEmmanuel Vadot interrupts = <GIC_SPI 77 IRQ_TYPE_LEVEL_HIGH>; 360f126890aSEmmanuel Vadot clocks = <&ccu CLK_BUS_EHCI2>, <&ccu CLK_BUS_OHCI2>, 361f126890aSEmmanuel Vadot <&ccu CLK_USB_OHCI2>; 362f126890aSEmmanuel Vadot resets = <&ccu RST_BUS_EHCI2>, <&ccu RST_BUS_OHCI2>; 363f126890aSEmmanuel Vadot phys = <&usbphy 2>; 364f126890aSEmmanuel Vadot phy-names = "usb"; 365f126890aSEmmanuel Vadot status = "disabled"; 366f126890aSEmmanuel Vadot }; 367f126890aSEmmanuel Vadot 368f126890aSEmmanuel Vadot ehci3: usb@1c1d000 { 369f126890aSEmmanuel Vadot compatible = "allwinner,sun8i-h3-ehci", "generic-ehci"; 370f126890aSEmmanuel Vadot reg = <0x01c1d000 0x100>; 371f126890aSEmmanuel Vadot interrupts = <GIC_SPI 78 IRQ_TYPE_LEVEL_HIGH>; 372f126890aSEmmanuel Vadot clocks = <&ccu CLK_BUS_EHCI3>, <&ccu CLK_BUS_OHCI3>; 373f126890aSEmmanuel Vadot resets = <&ccu RST_BUS_EHCI3>, <&ccu RST_BUS_OHCI3>; 374f126890aSEmmanuel Vadot phys = <&usbphy 3>; 375f126890aSEmmanuel Vadot phy-names = "usb"; 376f126890aSEmmanuel Vadot status = "disabled"; 377f126890aSEmmanuel Vadot }; 378f126890aSEmmanuel Vadot 379f126890aSEmmanuel Vadot ohci3: usb@1c1d400 { 380f126890aSEmmanuel Vadot compatible = "allwinner,sun8i-h3-ohci", "generic-ohci"; 381f126890aSEmmanuel Vadot reg = <0x01c1d400 0x100>; 382f126890aSEmmanuel Vadot interrupts = <GIC_SPI 79 IRQ_TYPE_LEVEL_HIGH>; 383f126890aSEmmanuel Vadot clocks = <&ccu CLK_BUS_EHCI3>, <&ccu CLK_BUS_OHCI3>, 384f126890aSEmmanuel Vadot <&ccu CLK_USB_OHCI3>; 385f126890aSEmmanuel Vadot resets = <&ccu RST_BUS_EHCI3>, <&ccu RST_BUS_OHCI3>; 386f126890aSEmmanuel Vadot phys = <&usbphy 3>; 387f126890aSEmmanuel Vadot phy-names = "usb"; 388f126890aSEmmanuel Vadot status = "disabled"; 389f126890aSEmmanuel Vadot }; 390f126890aSEmmanuel Vadot 391f126890aSEmmanuel Vadot ccu: clock@1c20000 { 392f126890aSEmmanuel Vadot /* compatible is in per SoC .dtsi file */ 393f126890aSEmmanuel Vadot reg = <0x01c20000 0x400>; 394f126890aSEmmanuel Vadot clocks = <&osc24M>, <&rtc CLK_OSC32K>; 395f126890aSEmmanuel Vadot clock-names = "hosc", "losc"; 396f126890aSEmmanuel Vadot #clock-cells = <1>; 397f126890aSEmmanuel Vadot #reset-cells = <1>; 398f126890aSEmmanuel Vadot }; 399f126890aSEmmanuel Vadot 400f126890aSEmmanuel Vadot pio: pinctrl@1c20800 { 401f126890aSEmmanuel Vadot /* compatible is in per SoC .dtsi file */ 402f126890aSEmmanuel Vadot reg = <0x01c20800 0x400>; 403f126890aSEmmanuel Vadot interrupt-parent = <&r_intc>; 404f126890aSEmmanuel Vadot interrupts = <GIC_SPI 11 IRQ_TYPE_LEVEL_HIGH>, 405f126890aSEmmanuel Vadot <GIC_SPI 17 IRQ_TYPE_LEVEL_HIGH>; 406f126890aSEmmanuel Vadot clocks = <&ccu CLK_BUS_PIO>, <&osc24M>, 407f126890aSEmmanuel Vadot <&rtc CLK_OSC32K>; 408f126890aSEmmanuel Vadot clock-names = "apb", "hosc", "losc"; 409f126890aSEmmanuel Vadot gpio-controller; 410f126890aSEmmanuel Vadot #gpio-cells = <3>; 411f126890aSEmmanuel Vadot interrupt-controller; 412f126890aSEmmanuel Vadot #interrupt-cells = <3>; 413f126890aSEmmanuel Vadot 414f126890aSEmmanuel Vadot csi_pins: csi-pins { 415f126890aSEmmanuel Vadot pins = "PE0", "PE2", "PE3", "PE4", "PE5", 416f126890aSEmmanuel Vadot "PE6", "PE7", "PE8", "PE9", "PE10", 417f126890aSEmmanuel Vadot "PE11"; 418f126890aSEmmanuel Vadot function = "csi"; 419f126890aSEmmanuel Vadot }; 420f126890aSEmmanuel Vadot 421f126890aSEmmanuel Vadot emac_rgmii_pins: emac-rgmii-pins { 422f126890aSEmmanuel Vadot pins = "PD0", "PD1", "PD2", "PD3", "PD4", 423f126890aSEmmanuel Vadot "PD5", "PD7", "PD8", "PD9", "PD10", 424f126890aSEmmanuel Vadot "PD12", "PD13", "PD15", "PD16", "PD17"; 425f126890aSEmmanuel Vadot function = "emac"; 426f126890aSEmmanuel Vadot drive-strength = <40>; 427f126890aSEmmanuel Vadot }; 428f126890aSEmmanuel Vadot 429f126890aSEmmanuel Vadot i2c0_pins: i2c0-pins { 430f126890aSEmmanuel Vadot pins = "PA11", "PA12"; 431f126890aSEmmanuel Vadot function = "i2c0"; 432f126890aSEmmanuel Vadot }; 433f126890aSEmmanuel Vadot 434f126890aSEmmanuel Vadot i2c1_pins: i2c1-pins { 435f126890aSEmmanuel Vadot pins = "PA18", "PA19"; 436f126890aSEmmanuel Vadot function = "i2c1"; 437f126890aSEmmanuel Vadot }; 438f126890aSEmmanuel Vadot 439f126890aSEmmanuel Vadot i2c2_pins: i2c2-pins { 440f126890aSEmmanuel Vadot pins = "PE12", "PE13"; 441f126890aSEmmanuel Vadot function = "i2c2"; 442f126890aSEmmanuel Vadot }; 443f126890aSEmmanuel Vadot 444f126890aSEmmanuel Vadot mmc0_pins: mmc0-pins { 445f126890aSEmmanuel Vadot pins = "PF0", "PF1", "PF2", "PF3", 446f126890aSEmmanuel Vadot "PF4", "PF5"; 447f126890aSEmmanuel Vadot function = "mmc0"; 448f126890aSEmmanuel Vadot drive-strength = <30>; 449f126890aSEmmanuel Vadot bias-pull-up; 450f126890aSEmmanuel Vadot }; 451f126890aSEmmanuel Vadot 452f126890aSEmmanuel Vadot mmc1_pins: mmc1-pins { 453f126890aSEmmanuel Vadot pins = "PG0", "PG1", "PG2", "PG3", 454f126890aSEmmanuel Vadot "PG4", "PG5"; 455f126890aSEmmanuel Vadot function = "mmc1"; 456f126890aSEmmanuel Vadot drive-strength = <30>; 457f126890aSEmmanuel Vadot bias-pull-up; 458f126890aSEmmanuel Vadot }; 459f126890aSEmmanuel Vadot 460f126890aSEmmanuel Vadot mmc2_8bit_pins: mmc2-8bit-pins { 461f126890aSEmmanuel Vadot pins = "PC5", "PC6", "PC8", 462f126890aSEmmanuel Vadot "PC9", "PC10", "PC11", 463f126890aSEmmanuel Vadot "PC12", "PC13", "PC14", 464f126890aSEmmanuel Vadot "PC15", "PC16"; 465f126890aSEmmanuel Vadot function = "mmc2"; 466f126890aSEmmanuel Vadot drive-strength = <30>; 467f126890aSEmmanuel Vadot bias-pull-up; 468f126890aSEmmanuel Vadot }; 469f126890aSEmmanuel Vadot 470f126890aSEmmanuel Vadot spdif_tx_pin: spdif-tx-pin { 471f126890aSEmmanuel Vadot pins = "PA17"; 472f126890aSEmmanuel Vadot function = "spdif"; 473f126890aSEmmanuel Vadot }; 474f126890aSEmmanuel Vadot 475f126890aSEmmanuel Vadot spi0_pins: spi0-pins { 476f126890aSEmmanuel Vadot pins = "PC0", "PC1", "PC2", "PC3"; 477f126890aSEmmanuel Vadot function = "spi0"; 478f126890aSEmmanuel Vadot }; 479f126890aSEmmanuel Vadot 480f126890aSEmmanuel Vadot spi1_pins: spi1-pins { 481f126890aSEmmanuel Vadot pins = "PA15", "PA16", "PA14", "PA13"; 482f126890aSEmmanuel Vadot function = "spi1"; 483f126890aSEmmanuel Vadot }; 484f126890aSEmmanuel Vadot 485f126890aSEmmanuel Vadot uart0_pa_pins: uart0-pa-pins { 486f126890aSEmmanuel Vadot pins = "PA4", "PA5"; 487f126890aSEmmanuel Vadot function = "uart0"; 488f126890aSEmmanuel Vadot }; 489f126890aSEmmanuel Vadot 490f126890aSEmmanuel Vadot uart1_pins: uart1-pins { 491f126890aSEmmanuel Vadot pins = "PG6", "PG7"; 492f126890aSEmmanuel Vadot function = "uart1"; 493f126890aSEmmanuel Vadot }; 494f126890aSEmmanuel Vadot 495f126890aSEmmanuel Vadot uart1_rts_cts_pins: uart1-rts-cts-pins { 496f126890aSEmmanuel Vadot pins = "PG8", "PG9"; 497f126890aSEmmanuel Vadot function = "uart1"; 498f126890aSEmmanuel Vadot }; 499f126890aSEmmanuel Vadot 500f126890aSEmmanuel Vadot uart2_pins: uart2-pins { 501f126890aSEmmanuel Vadot pins = "PA0", "PA1"; 502f126890aSEmmanuel Vadot function = "uart2"; 503f126890aSEmmanuel Vadot }; 504f126890aSEmmanuel Vadot 505f126890aSEmmanuel Vadot uart2_rts_cts_pins: uart2-rts-cts-pins { 506f126890aSEmmanuel Vadot pins = "PA2", "PA3"; 507f126890aSEmmanuel Vadot function = "uart2"; 508f126890aSEmmanuel Vadot }; 509f126890aSEmmanuel Vadot 510f126890aSEmmanuel Vadot uart3_pins: uart3-pins { 511f126890aSEmmanuel Vadot pins = "PA13", "PA14"; 512f126890aSEmmanuel Vadot function = "uart3"; 513f126890aSEmmanuel Vadot }; 514f126890aSEmmanuel Vadot 515f126890aSEmmanuel Vadot uart3_rts_cts_pins: uart3-rts-cts-pins { 516f126890aSEmmanuel Vadot pins = "PA15", "PA16"; 517f126890aSEmmanuel Vadot function = "uart3"; 518f126890aSEmmanuel Vadot }; 519f126890aSEmmanuel Vadot }; 520f126890aSEmmanuel Vadot 521f126890aSEmmanuel Vadot timer@1c20c00 { 522f126890aSEmmanuel Vadot compatible = "allwinner,sun8i-a23-timer"; 523f126890aSEmmanuel Vadot reg = <0x01c20c00 0xa0>; 524f126890aSEmmanuel Vadot interrupts = <GIC_SPI 18 IRQ_TYPE_LEVEL_HIGH>, 525f126890aSEmmanuel Vadot <GIC_SPI 19 IRQ_TYPE_LEVEL_HIGH>; 526f126890aSEmmanuel Vadot clocks = <&osc24M>; 527f126890aSEmmanuel Vadot }; 528f126890aSEmmanuel Vadot 529f126890aSEmmanuel Vadot emac: ethernet@1c30000 { 530f126890aSEmmanuel Vadot compatible = "allwinner,sun8i-h3-emac"; 531f126890aSEmmanuel Vadot syscon = <&syscon>; 532f126890aSEmmanuel Vadot reg = <0x01c30000 0x10000>; 533f126890aSEmmanuel Vadot interrupts = <GIC_SPI 82 IRQ_TYPE_LEVEL_HIGH>; 534f126890aSEmmanuel Vadot interrupt-names = "macirq"; 535f126890aSEmmanuel Vadot resets = <&ccu RST_BUS_EMAC>; 536f126890aSEmmanuel Vadot reset-names = "stmmaceth"; 537f126890aSEmmanuel Vadot clocks = <&ccu CLK_BUS_EMAC>; 538f126890aSEmmanuel Vadot clock-names = "stmmaceth"; 539f126890aSEmmanuel Vadot status = "disabled"; 540f126890aSEmmanuel Vadot 541f126890aSEmmanuel Vadot mdio: mdio { 542f126890aSEmmanuel Vadot #address-cells = <1>; 543f126890aSEmmanuel Vadot #size-cells = <0>; 544f126890aSEmmanuel Vadot compatible = "snps,dwmac-mdio"; 545f126890aSEmmanuel Vadot }; 546f126890aSEmmanuel Vadot 547f126890aSEmmanuel Vadot mdio-mux { 548f126890aSEmmanuel Vadot compatible = "allwinner,sun8i-h3-mdio-mux"; 549f126890aSEmmanuel Vadot #address-cells = <1>; 550f126890aSEmmanuel Vadot #size-cells = <0>; 551f126890aSEmmanuel Vadot 552f126890aSEmmanuel Vadot mdio-parent-bus = <&mdio>; 553f126890aSEmmanuel Vadot /* Only one MDIO is usable at the time */ 554f126890aSEmmanuel Vadot internal_mdio: mdio@1 { 555f126890aSEmmanuel Vadot compatible = "allwinner,sun8i-h3-mdio-internal"; 556f126890aSEmmanuel Vadot reg = <1>; 557f126890aSEmmanuel Vadot #address-cells = <1>; 558f126890aSEmmanuel Vadot #size-cells = <0>; 559f126890aSEmmanuel Vadot 560f126890aSEmmanuel Vadot int_mii_phy: ethernet-phy@1 { 561f126890aSEmmanuel Vadot compatible = "ethernet-phy-ieee802.3-c22"; 562f126890aSEmmanuel Vadot reg = <1>; 563f126890aSEmmanuel Vadot clocks = <&ccu CLK_BUS_EPHY>; 564f126890aSEmmanuel Vadot resets = <&ccu RST_BUS_EPHY>; 565f126890aSEmmanuel Vadot }; 566f126890aSEmmanuel Vadot }; 567f126890aSEmmanuel Vadot 568f126890aSEmmanuel Vadot external_mdio: mdio@2 { 569f126890aSEmmanuel Vadot reg = <2>; 570f126890aSEmmanuel Vadot #address-cells = <1>; 571f126890aSEmmanuel Vadot #size-cells = <0>; 572f126890aSEmmanuel Vadot }; 573f126890aSEmmanuel Vadot }; 574f126890aSEmmanuel Vadot }; 575f126890aSEmmanuel Vadot 576f126890aSEmmanuel Vadot mbus: dram-controller@1c62000 { 577f126890aSEmmanuel Vadot /* compatible is in per SoC .dtsi file */ 578f126890aSEmmanuel Vadot reg = <0x01c62000 0x1000>, 579f126890aSEmmanuel Vadot <0x01c63000 0x1000>; 580f126890aSEmmanuel Vadot reg-names = "mbus", "dram"; 581f126890aSEmmanuel Vadot clocks = <&ccu CLK_MBUS>, 582f126890aSEmmanuel Vadot <&ccu CLK_DRAM>, 583f126890aSEmmanuel Vadot <&ccu CLK_BUS_DRAM>; 584f126890aSEmmanuel Vadot clock-names = "mbus", "dram", "bus"; 585f126890aSEmmanuel Vadot #address-cells = <1>; 586f126890aSEmmanuel Vadot #size-cells = <1>; 587f126890aSEmmanuel Vadot dma-ranges = <0x00000000 0x40000000 0xc0000000>; 588f126890aSEmmanuel Vadot #interconnect-cells = <1>; 589f126890aSEmmanuel Vadot }; 590f126890aSEmmanuel Vadot 591f126890aSEmmanuel Vadot spi0: spi@1c68000 { 592f126890aSEmmanuel Vadot compatible = "allwinner,sun8i-h3-spi"; 593f126890aSEmmanuel Vadot reg = <0x01c68000 0x1000>; 594f126890aSEmmanuel Vadot interrupts = <GIC_SPI 65 IRQ_TYPE_LEVEL_HIGH>; 595f126890aSEmmanuel Vadot clocks = <&ccu CLK_BUS_SPI0>, <&ccu CLK_SPI0>; 596f126890aSEmmanuel Vadot clock-names = "ahb", "mod"; 597f126890aSEmmanuel Vadot dmas = <&dma 23>, <&dma 23>; 598f126890aSEmmanuel Vadot dma-names = "rx", "tx"; 599f126890aSEmmanuel Vadot pinctrl-names = "default"; 600f126890aSEmmanuel Vadot pinctrl-0 = <&spi0_pins>; 601f126890aSEmmanuel Vadot resets = <&ccu RST_BUS_SPI0>; 602f126890aSEmmanuel Vadot status = "disabled"; 603f126890aSEmmanuel Vadot #address-cells = <1>; 604f126890aSEmmanuel Vadot #size-cells = <0>; 605f126890aSEmmanuel Vadot }; 606f126890aSEmmanuel Vadot 607f126890aSEmmanuel Vadot spi1: spi@1c69000 { 608f126890aSEmmanuel Vadot compatible = "allwinner,sun8i-h3-spi"; 609f126890aSEmmanuel Vadot reg = <0x01c69000 0x1000>; 610f126890aSEmmanuel Vadot interrupts = <GIC_SPI 66 IRQ_TYPE_LEVEL_HIGH>; 611f126890aSEmmanuel Vadot clocks = <&ccu CLK_BUS_SPI1>, <&ccu CLK_SPI1>; 612f126890aSEmmanuel Vadot clock-names = "ahb", "mod"; 613f126890aSEmmanuel Vadot dmas = <&dma 24>, <&dma 24>; 614f126890aSEmmanuel Vadot dma-names = "rx", "tx"; 615f126890aSEmmanuel Vadot pinctrl-names = "default"; 616f126890aSEmmanuel Vadot pinctrl-0 = <&spi1_pins>; 617f126890aSEmmanuel Vadot resets = <&ccu RST_BUS_SPI1>; 618f126890aSEmmanuel Vadot status = "disabled"; 619f126890aSEmmanuel Vadot #address-cells = <1>; 620f126890aSEmmanuel Vadot #size-cells = <0>; 621f126890aSEmmanuel Vadot }; 622f126890aSEmmanuel Vadot 623f126890aSEmmanuel Vadot wdt0: watchdog@1c20ca0 { 624f126890aSEmmanuel Vadot compatible = "allwinner,sun6i-a31-wdt"; 625f126890aSEmmanuel Vadot reg = <0x01c20ca0 0x20>; 626f126890aSEmmanuel Vadot interrupts = <GIC_SPI 25 IRQ_TYPE_LEVEL_HIGH>; 627f126890aSEmmanuel Vadot clocks = <&osc24M>; 628f126890aSEmmanuel Vadot }; 629f126890aSEmmanuel Vadot 630f126890aSEmmanuel Vadot spdif: spdif@1c21000 { 631f126890aSEmmanuel Vadot #sound-dai-cells = <0>; 632f126890aSEmmanuel Vadot compatible = "allwinner,sun8i-h3-spdif"; 633f126890aSEmmanuel Vadot reg = <0x01c21000 0x400>; 634f126890aSEmmanuel Vadot interrupts = <GIC_SPI 12 IRQ_TYPE_LEVEL_HIGH>; 635f126890aSEmmanuel Vadot clocks = <&ccu CLK_BUS_SPDIF>, <&ccu CLK_SPDIF>; 636f126890aSEmmanuel Vadot resets = <&ccu RST_BUS_SPDIF>; 637f126890aSEmmanuel Vadot clock-names = "apb", "spdif"; 638f126890aSEmmanuel Vadot dmas = <&dma 2>; 639f126890aSEmmanuel Vadot dma-names = "tx"; 640f126890aSEmmanuel Vadot status = "disabled"; 641f126890aSEmmanuel Vadot }; 642f126890aSEmmanuel Vadot 643f126890aSEmmanuel Vadot pwm: pwm@1c21400 { 644f126890aSEmmanuel Vadot compatible = "allwinner,sun8i-h3-pwm"; 645f126890aSEmmanuel Vadot reg = <0x01c21400 0x8>; 646f126890aSEmmanuel Vadot clocks = <&osc24M>; 647f126890aSEmmanuel Vadot #pwm-cells = <3>; 648f126890aSEmmanuel Vadot status = "disabled"; 649f126890aSEmmanuel Vadot }; 650f126890aSEmmanuel Vadot 651f126890aSEmmanuel Vadot i2s0: i2s@1c22000 { 652f126890aSEmmanuel Vadot #sound-dai-cells = <0>; 653f126890aSEmmanuel Vadot compatible = "allwinner,sun8i-h3-i2s"; 654f126890aSEmmanuel Vadot reg = <0x01c22000 0x400>; 655f126890aSEmmanuel Vadot interrupts = <GIC_SPI 13 IRQ_TYPE_LEVEL_HIGH>; 656f126890aSEmmanuel Vadot clocks = <&ccu CLK_BUS_I2S0>, <&ccu CLK_I2S0>; 657f126890aSEmmanuel Vadot clock-names = "apb", "mod"; 658f126890aSEmmanuel Vadot dmas = <&dma 3>, <&dma 3>; 659f126890aSEmmanuel Vadot resets = <&ccu RST_BUS_I2S0>; 660f126890aSEmmanuel Vadot dma-names = "rx", "tx"; 661f126890aSEmmanuel Vadot status = "disabled"; 662f126890aSEmmanuel Vadot }; 663f126890aSEmmanuel Vadot 664f126890aSEmmanuel Vadot i2s1: i2s@1c22400 { 665f126890aSEmmanuel Vadot #sound-dai-cells = <0>; 666f126890aSEmmanuel Vadot compatible = "allwinner,sun8i-h3-i2s"; 667f126890aSEmmanuel Vadot reg = <0x01c22400 0x400>; 668f126890aSEmmanuel Vadot interrupts = <GIC_SPI 14 IRQ_TYPE_LEVEL_HIGH>; 669f126890aSEmmanuel Vadot clocks = <&ccu CLK_BUS_I2S1>, <&ccu CLK_I2S1>; 670f126890aSEmmanuel Vadot clock-names = "apb", "mod"; 671f126890aSEmmanuel Vadot dmas = <&dma 4>, <&dma 4>; 672f126890aSEmmanuel Vadot resets = <&ccu RST_BUS_I2S1>; 673f126890aSEmmanuel Vadot dma-names = "rx", "tx"; 674f126890aSEmmanuel Vadot status = "disabled"; 675f126890aSEmmanuel Vadot }; 676f126890aSEmmanuel Vadot 677f126890aSEmmanuel Vadot i2s2: i2s@1c22800 { 678f126890aSEmmanuel Vadot #sound-dai-cells = <0>; 679f126890aSEmmanuel Vadot compatible = "allwinner,sun8i-h3-i2s"; 680f126890aSEmmanuel Vadot reg = <0x01c22800 0x400>; 681f126890aSEmmanuel Vadot interrupts = <GIC_SPI 15 IRQ_TYPE_LEVEL_HIGH>; 682f126890aSEmmanuel Vadot clocks = <&ccu CLK_BUS_I2S2>, <&ccu CLK_I2S2>; 683f126890aSEmmanuel Vadot clock-names = "apb", "mod"; 684f126890aSEmmanuel Vadot dmas = <&dma 27>; 685f126890aSEmmanuel Vadot resets = <&ccu RST_BUS_I2S2>; 686f126890aSEmmanuel Vadot dma-names = "tx"; 687f126890aSEmmanuel Vadot status = "disabled"; 688f126890aSEmmanuel Vadot }; 689f126890aSEmmanuel Vadot 690f126890aSEmmanuel Vadot codec: codec@1c22c00 { 691f126890aSEmmanuel Vadot #sound-dai-cells = <0>; 692f126890aSEmmanuel Vadot compatible = "allwinner,sun8i-h3-codec"; 693f126890aSEmmanuel Vadot reg = <0x01c22c00 0x400>; 694f126890aSEmmanuel Vadot interrupts = <GIC_SPI 29 IRQ_TYPE_LEVEL_HIGH>; 695f126890aSEmmanuel Vadot clocks = <&ccu CLK_BUS_CODEC>, <&ccu CLK_AC_DIG>; 696f126890aSEmmanuel Vadot clock-names = "apb", "codec"; 697f126890aSEmmanuel Vadot resets = <&ccu RST_BUS_CODEC>; 698f126890aSEmmanuel Vadot dmas = <&dma 15>, <&dma 15>; 699f126890aSEmmanuel Vadot dma-names = "rx", "tx"; 700f126890aSEmmanuel Vadot allwinner,codec-analog-controls = <&codec_analog>; 701f126890aSEmmanuel Vadot status = "disabled"; 702f126890aSEmmanuel Vadot }; 703f126890aSEmmanuel Vadot 704f126890aSEmmanuel Vadot uart0: serial@1c28000 { 705f126890aSEmmanuel Vadot compatible = "snps,dw-apb-uart"; 706f126890aSEmmanuel Vadot reg = <0x01c28000 0x400>; 707f126890aSEmmanuel Vadot interrupts = <GIC_SPI 0 IRQ_TYPE_LEVEL_HIGH>; 708f126890aSEmmanuel Vadot reg-shift = <2>; 709f126890aSEmmanuel Vadot reg-io-width = <4>; 710f126890aSEmmanuel Vadot clocks = <&ccu CLK_BUS_UART0>; 711f126890aSEmmanuel Vadot resets = <&ccu RST_BUS_UART0>; 712f126890aSEmmanuel Vadot dmas = <&dma 6>, <&dma 6>; 713f126890aSEmmanuel Vadot dma-names = "tx", "rx"; 714f126890aSEmmanuel Vadot status = "disabled"; 715f126890aSEmmanuel Vadot }; 716f126890aSEmmanuel Vadot 717f126890aSEmmanuel Vadot uart1: serial@1c28400 { 718f126890aSEmmanuel Vadot compatible = "snps,dw-apb-uart"; 719f126890aSEmmanuel Vadot reg = <0x01c28400 0x400>; 720f126890aSEmmanuel Vadot interrupts = <GIC_SPI 1 IRQ_TYPE_LEVEL_HIGH>; 721f126890aSEmmanuel Vadot reg-shift = <2>; 722f126890aSEmmanuel Vadot reg-io-width = <4>; 723f126890aSEmmanuel Vadot clocks = <&ccu CLK_BUS_UART1>; 724f126890aSEmmanuel Vadot resets = <&ccu RST_BUS_UART1>; 725f126890aSEmmanuel Vadot dmas = <&dma 7>, <&dma 7>; 726f126890aSEmmanuel Vadot dma-names = "tx", "rx"; 727f126890aSEmmanuel Vadot status = "disabled"; 728f126890aSEmmanuel Vadot }; 729f126890aSEmmanuel Vadot 730f126890aSEmmanuel Vadot uart2: serial@1c28800 { 731f126890aSEmmanuel Vadot compatible = "snps,dw-apb-uart"; 732f126890aSEmmanuel Vadot reg = <0x01c28800 0x400>; 733f126890aSEmmanuel Vadot interrupts = <GIC_SPI 2 IRQ_TYPE_LEVEL_HIGH>; 734f126890aSEmmanuel Vadot reg-shift = <2>; 735f126890aSEmmanuel Vadot reg-io-width = <4>; 736f126890aSEmmanuel Vadot clocks = <&ccu CLK_BUS_UART2>; 737f126890aSEmmanuel Vadot resets = <&ccu RST_BUS_UART2>; 738f126890aSEmmanuel Vadot dmas = <&dma 8>, <&dma 8>; 739f126890aSEmmanuel Vadot dma-names = "tx", "rx"; 740f126890aSEmmanuel Vadot status = "disabled"; 741f126890aSEmmanuel Vadot }; 742f126890aSEmmanuel Vadot 743f126890aSEmmanuel Vadot uart3: serial@1c28c00 { 744f126890aSEmmanuel Vadot compatible = "snps,dw-apb-uart"; 745f126890aSEmmanuel Vadot reg = <0x01c28c00 0x400>; 746f126890aSEmmanuel Vadot interrupts = <GIC_SPI 3 IRQ_TYPE_LEVEL_HIGH>; 747f126890aSEmmanuel Vadot reg-shift = <2>; 748f126890aSEmmanuel Vadot reg-io-width = <4>; 749f126890aSEmmanuel Vadot clocks = <&ccu CLK_BUS_UART3>; 750f126890aSEmmanuel Vadot resets = <&ccu RST_BUS_UART3>; 751f126890aSEmmanuel Vadot dmas = <&dma 9>, <&dma 9>; 752f126890aSEmmanuel Vadot dma-names = "tx", "rx"; 753f126890aSEmmanuel Vadot status = "disabled"; 754f126890aSEmmanuel Vadot }; 755f126890aSEmmanuel Vadot 756f126890aSEmmanuel Vadot i2c0: i2c@1c2ac00 { 757f126890aSEmmanuel Vadot compatible = "allwinner,sun6i-a31-i2c"; 758f126890aSEmmanuel Vadot reg = <0x01c2ac00 0x400>; 759f126890aSEmmanuel Vadot interrupts = <GIC_SPI 6 IRQ_TYPE_LEVEL_HIGH>; 760f126890aSEmmanuel Vadot clocks = <&ccu CLK_BUS_I2C0>; 761f126890aSEmmanuel Vadot resets = <&ccu RST_BUS_I2C0>; 762f126890aSEmmanuel Vadot pinctrl-names = "default"; 763f126890aSEmmanuel Vadot pinctrl-0 = <&i2c0_pins>; 764f126890aSEmmanuel Vadot status = "disabled"; 765f126890aSEmmanuel Vadot #address-cells = <1>; 766f126890aSEmmanuel Vadot #size-cells = <0>; 767f126890aSEmmanuel Vadot }; 768f126890aSEmmanuel Vadot 769f126890aSEmmanuel Vadot i2c1: i2c@1c2b000 { 770f126890aSEmmanuel Vadot compatible = "allwinner,sun6i-a31-i2c"; 771f126890aSEmmanuel Vadot reg = <0x01c2b000 0x400>; 772f126890aSEmmanuel Vadot interrupts = <GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH>; 773f126890aSEmmanuel Vadot clocks = <&ccu CLK_BUS_I2C1>; 774f126890aSEmmanuel Vadot resets = <&ccu RST_BUS_I2C1>; 775f126890aSEmmanuel Vadot pinctrl-names = "default"; 776f126890aSEmmanuel Vadot pinctrl-0 = <&i2c1_pins>; 777f126890aSEmmanuel Vadot status = "disabled"; 778f126890aSEmmanuel Vadot #address-cells = <1>; 779f126890aSEmmanuel Vadot #size-cells = <0>; 780f126890aSEmmanuel Vadot }; 781f126890aSEmmanuel Vadot 782f126890aSEmmanuel Vadot i2c2: i2c@1c2b400 { 783f126890aSEmmanuel Vadot compatible = "allwinner,sun6i-a31-i2c"; 784f126890aSEmmanuel Vadot reg = <0x01c2b400 0x400>; 785f126890aSEmmanuel Vadot interrupts = <GIC_SPI 8 IRQ_TYPE_LEVEL_HIGH>; 786f126890aSEmmanuel Vadot clocks = <&ccu CLK_BUS_I2C2>; 787f126890aSEmmanuel Vadot resets = <&ccu RST_BUS_I2C2>; 788f126890aSEmmanuel Vadot pinctrl-names = "default"; 789f126890aSEmmanuel Vadot pinctrl-0 = <&i2c2_pins>; 790f126890aSEmmanuel Vadot status = "disabled"; 791f126890aSEmmanuel Vadot #address-cells = <1>; 792f126890aSEmmanuel Vadot #size-cells = <0>; 793f126890aSEmmanuel Vadot }; 794f126890aSEmmanuel Vadot 795f126890aSEmmanuel Vadot gic: interrupt-controller@1c81000 { 796f126890aSEmmanuel Vadot compatible = "arm,gic-400"; 797f126890aSEmmanuel Vadot reg = <0x01c81000 0x1000>, 798f126890aSEmmanuel Vadot <0x01c82000 0x2000>, 799f126890aSEmmanuel Vadot <0x01c84000 0x2000>, 800f126890aSEmmanuel Vadot <0x01c86000 0x2000>; 801f126890aSEmmanuel Vadot interrupt-controller; 802f126890aSEmmanuel Vadot #interrupt-cells = <3>; 803f126890aSEmmanuel Vadot interrupts = <GIC_PPI 9 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>; 804f126890aSEmmanuel Vadot }; 805f126890aSEmmanuel Vadot 806f126890aSEmmanuel Vadot csi: camera@1cb0000 { 807f126890aSEmmanuel Vadot compatible = "allwinner,sun8i-h3-csi"; 808f126890aSEmmanuel Vadot reg = <0x01cb0000 0x1000>; 809f126890aSEmmanuel Vadot interrupts = <GIC_SPI 84 IRQ_TYPE_LEVEL_HIGH>; 810f126890aSEmmanuel Vadot clocks = <&ccu CLK_BUS_CSI>, 811f126890aSEmmanuel Vadot <&ccu CLK_CSI_SCLK>, 812f126890aSEmmanuel Vadot <&ccu CLK_DRAM_CSI>; 813f126890aSEmmanuel Vadot clock-names = "bus", "mod", "ram"; 814f126890aSEmmanuel Vadot resets = <&ccu RST_BUS_CSI>; 815f126890aSEmmanuel Vadot pinctrl-names = "default"; 816f126890aSEmmanuel Vadot pinctrl-0 = <&csi_pins>; 817f126890aSEmmanuel Vadot status = "disabled"; 818f126890aSEmmanuel Vadot }; 819f126890aSEmmanuel Vadot 820f126890aSEmmanuel Vadot hdmi: hdmi@1ee0000 { 821f126890aSEmmanuel Vadot compatible = "allwinner,sun8i-h3-dw-hdmi", 822f126890aSEmmanuel Vadot "allwinner,sun8i-a83t-dw-hdmi"; 823f126890aSEmmanuel Vadot reg = <0x01ee0000 0x10000>; 824f126890aSEmmanuel Vadot reg-io-width = <1>; 825f126890aSEmmanuel Vadot interrupts = <GIC_SPI 88 IRQ_TYPE_LEVEL_HIGH>; 826f126890aSEmmanuel Vadot clocks = <&ccu CLK_BUS_HDMI>, <&ccu CLK_HDMI_DDC>, 827f126890aSEmmanuel Vadot <&ccu CLK_HDMI>, <&rtc CLK_OSC32K>; 828f126890aSEmmanuel Vadot clock-names = "iahb", "isfr", "tmds", "cec"; 829f126890aSEmmanuel Vadot resets = <&ccu RST_BUS_HDMI1>; 830f126890aSEmmanuel Vadot reset-names = "ctrl"; 831f126890aSEmmanuel Vadot phys = <&hdmi_phy>; 832f126890aSEmmanuel Vadot phy-names = "phy"; 833f126890aSEmmanuel Vadot status = "disabled"; 834f126890aSEmmanuel Vadot 835f126890aSEmmanuel Vadot ports { 836f126890aSEmmanuel Vadot #address-cells = <1>; 837f126890aSEmmanuel Vadot #size-cells = <0>; 838f126890aSEmmanuel Vadot 839f126890aSEmmanuel Vadot hdmi_in: port@0 { 840f126890aSEmmanuel Vadot reg = <0>; 841f126890aSEmmanuel Vadot 842f126890aSEmmanuel Vadot hdmi_in_tcon0: endpoint { 843f126890aSEmmanuel Vadot remote-endpoint = <&tcon0_out_hdmi>; 844f126890aSEmmanuel Vadot }; 845f126890aSEmmanuel Vadot }; 846f126890aSEmmanuel Vadot 847f126890aSEmmanuel Vadot hdmi_out: port@1 { 848f126890aSEmmanuel Vadot reg = <1>; 849f126890aSEmmanuel Vadot }; 850f126890aSEmmanuel Vadot }; 851f126890aSEmmanuel Vadot }; 852f126890aSEmmanuel Vadot 853f126890aSEmmanuel Vadot hdmi_phy: hdmi-phy@1ef0000 { 854f126890aSEmmanuel Vadot compatible = "allwinner,sun8i-h3-hdmi-phy"; 855f126890aSEmmanuel Vadot reg = <0x01ef0000 0x10000>; 856f126890aSEmmanuel Vadot clocks = <&ccu CLK_BUS_HDMI>, <&ccu CLK_HDMI_DDC>, 857f126890aSEmmanuel Vadot <&ccu CLK_PLL_VIDEO>; 858f126890aSEmmanuel Vadot clock-names = "bus", "mod", "pll-0"; 859f126890aSEmmanuel Vadot resets = <&ccu RST_BUS_HDMI0>; 860f126890aSEmmanuel Vadot reset-names = "phy"; 861f126890aSEmmanuel Vadot #phy-cells = <0>; 862f126890aSEmmanuel Vadot }; 863f126890aSEmmanuel Vadot 864f126890aSEmmanuel Vadot rtc: rtc@1f00000 { 865f126890aSEmmanuel Vadot /* compatible is in per SoC .dtsi file */ 866f126890aSEmmanuel Vadot reg = <0x01f00000 0x400>; 867f126890aSEmmanuel Vadot interrupt-parent = <&r_intc>; 868f126890aSEmmanuel Vadot interrupts = <GIC_SPI 40 IRQ_TYPE_LEVEL_HIGH>, 869f126890aSEmmanuel Vadot <GIC_SPI 41 IRQ_TYPE_LEVEL_HIGH>; 870f126890aSEmmanuel Vadot clock-output-names = "osc32k", "osc32k-out", "iosc"; 871f126890aSEmmanuel Vadot clocks = <&osc32k>; 872f126890aSEmmanuel Vadot #clock-cells = <1>; 873f126890aSEmmanuel Vadot }; 874f126890aSEmmanuel Vadot 875f126890aSEmmanuel Vadot r_intc: interrupt-controller@1f00c00 { 876f126890aSEmmanuel Vadot compatible = "allwinner,sun8i-h3-r-intc", 877f126890aSEmmanuel Vadot "allwinner,sun6i-a31-r-intc"; 878f126890aSEmmanuel Vadot interrupt-controller; 879f126890aSEmmanuel Vadot #interrupt-cells = <3>; 880f126890aSEmmanuel Vadot reg = <0x01f00c00 0x400>; 881f126890aSEmmanuel Vadot interrupts = <GIC_SPI 32 IRQ_TYPE_LEVEL_HIGH>; 882f126890aSEmmanuel Vadot }; 883f126890aSEmmanuel Vadot 884f126890aSEmmanuel Vadot r_ccu: clock@1f01400 { 885f126890aSEmmanuel Vadot compatible = "allwinner,sun8i-h3-r-ccu"; 886f126890aSEmmanuel Vadot reg = <0x01f01400 0x100>; 887f126890aSEmmanuel Vadot clocks = <&osc24M>, <&rtc CLK_OSC32K>, <&rtc CLK_IOSC>, 888f126890aSEmmanuel Vadot <&ccu CLK_PLL_PERIPH0>; 889f126890aSEmmanuel Vadot clock-names = "hosc", "losc", "iosc", "pll-periph"; 890f126890aSEmmanuel Vadot #clock-cells = <1>; 891f126890aSEmmanuel Vadot #reset-cells = <1>; 892f126890aSEmmanuel Vadot }; 893f126890aSEmmanuel Vadot 894f126890aSEmmanuel Vadot codec_analog: codec-analog@1f015c0 { 895f126890aSEmmanuel Vadot compatible = "allwinner,sun8i-h3-codec-analog"; 896f126890aSEmmanuel Vadot reg = <0x01f015c0 0x4>; 897f126890aSEmmanuel Vadot }; 898f126890aSEmmanuel Vadot 899f126890aSEmmanuel Vadot ir: ir@1f02000 { 900f126890aSEmmanuel Vadot compatible = "allwinner,sun6i-a31-ir"; 901f126890aSEmmanuel Vadot clocks = <&r_ccu CLK_APB0_IR>, <&r_ccu CLK_IR>; 902f126890aSEmmanuel Vadot clock-names = "apb", "ir"; 903f126890aSEmmanuel Vadot resets = <&r_ccu RST_APB0_IR>; 904f126890aSEmmanuel Vadot interrupts = <GIC_SPI 37 IRQ_TYPE_LEVEL_HIGH>; 905f126890aSEmmanuel Vadot reg = <0x01f02000 0x400>; 906f126890aSEmmanuel Vadot status = "disabled"; 907f126890aSEmmanuel Vadot }; 908f126890aSEmmanuel Vadot 909f126890aSEmmanuel Vadot r_i2c: i2c@1f02400 { 910f126890aSEmmanuel Vadot compatible = "allwinner,sun6i-a31-i2c"; 911f126890aSEmmanuel Vadot reg = <0x01f02400 0x400>; 912f126890aSEmmanuel Vadot interrupts = <GIC_SPI 44 IRQ_TYPE_LEVEL_HIGH>; 913f126890aSEmmanuel Vadot pinctrl-names = "default"; 914f126890aSEmmanuel Vadot pinctrl-0 = <&r_i2c_pins>; 915f126890aSEmmanuel Vadot clocks = <&r_ccu CLK_APB0_I2C>; 916f126890aSEmmanuel Vadot resets = <&r_ccu RST_APB0_I2C>; 917f126890aSEmmanuel Vadot status = "disabled"; 918f126890aSEmmanuel Vadot #address-cells = <1>; 919f126890aSEmmanuel Vadot #size-cells = <0>; 920f126890aSEmmanuel Vadot }; 921f126890aSEmmanuel Vadot 922f126890aSEmmanuel Vadot r_uart: serial@1f02800 { 923f126890aSEmmanuel Vadot compatible = "snps,dw-apb-uart"; 924f126890aSEmmanuel Vadot reg = <0x01f02800 0x400>; 925f126890aSEmmanuel Vadot interrupts = <GIC_SPI 38 IRQ_TYPE_LEVEL_HIGH>; 926f126890aSEmmanuel Vadot reg-shift = <2>; 927f126890aSEmmanuel Vadot reg-io-width = <4>; 928f126890aSEmmanuel Vadot clocks = <&r_ccu CLK_APB0_UART>; 929f126890aSEmmanuel Vadot resets = <&r_ccu RST_APB0_UART>; 930f126890aSEmmanuel Vadot pinctrl-names = "default"; 931f126890aSEmmanuel Vadot pinctrl-0 = <&r_uart_pins>; 932f126890aSEmmanuel Vadot status = "disabled"; 933f126890aSEmmanuel Vadot }; 934f126890aSEmmanuel Vadot 935f126890aSEmmanuel Vadot r_pio: pinctrl@1f02c00 { 936f126890aSEmmanuel Vadot compatible = "allwinner,sun8i-h3-r-pinctrl"; 937f126890aSEmmanuel Vadot reg = <0x01f02c00 0x400>; 938f126890aSEmmanuel Vadot interrupt-parent = <&r_intc>; 939f126890aSEmmanuel Vadot interrupts = <GIC_SPI 45 IRQ_TYPE_LEVEL_HIGH>; 940f126890aSEmmanuel Vadot clocks = <&r_ccu CLK_APB0_PIO>, <&osc24M>, 941f126890aSEmmanuel Vadot <&rtc CLK_OSC32K>; 942f126890aSEmmanuel Vadot clock-names = "apb", "hosc", "losc"; 943f126890aSEmmanuel Vadot gpio-controller; 944f126890aSEmmanuel Vadot #gpio-cells = <3>; 945f126890aSEmmanuel Vadot interrupt-controller; 946f126890aSEmmanuel Vadot #interrupt-cells = <3>; 947f126890aSEmmanuel Vadot 948f126890aSEmmanuel Vadot r_ir_rx_pin: r-ir-rx-pin { 949f126890aSEmmanuel Vadot pins = "PL11"; 950f126890aSEmmanuel Vadot function = "s_cir_rx"; 951f126890aSEmmanuel Vadot }; 952f126890aSEmmanuel Vadot 953f126890aSEmmanuel Vadot r_i2c_pins: r-i2c-pins { 954f126890aSEmmanuel Vadot pins = "PL0", "PL1"; 955f126890aSEmmanuel Vadot function = "s_i2c"; 956f126890aSEmmanuel Vadot }; 957f126890aSEmmanuel Vadot 958f126890aSEmmanuel Vadot r_pwm_pin: r-pwm-pin { 959f126890aSEmmanuel Vadot pins = "PL10"; 960f126890aSEmmanuel Vadot function = "s_pwm"; 961f126890aSEmmanuel Vadot }; 962f126890aSEmmanuel Vadot 963f126890aSEmmanuel Vadot r_uart_pins: r-uart-pins { 964f126890aSEmmanuel Vadot pins = "PL2", "PL3"; 965f126890aSEmmanuel Vadot function = "s_uart"; 966f126890aSEmmanuel Vadot }; 967f126890aSEmmanuel Vadot }; 968f126890aSEmmanuel Vadot 969f126890aSEmmanuel Vadot r_pwm: pwm@1f03800 { 970f126890aSEmmanuel Vadot compatible = "allwinner,sun8i-h3-pwm"; 971f126890aSEmmanuel Vadot reg = <0x01f03800 0x8>; 972f126890aSEmmanuel Vadot pinctrl-names = "default"; 973f126890aSEmmanuel Vadot pinctrl-0 = <&r_pwm_pin>; 974f126890aSEmmanuel Vadot clocks = <&osc24M>; 975f126890aSEmmanuel Vadot #pwm-cells = <3>; 976f126890aSEmmanuel Vadot status = "disabled"; 977f126890aSEmmanuel Vadot }; 978f126890aSEmmanuel Vadot }; 979f126890aSEmmanuel Vadot}; 980