184943d6fSEmmanuel Vadot// SPDX-License-Identifier: (GPL-2.0 OR MIT) 284943d6fSEmmanuel Vadot/* 384943d6fSEmmanuel Vadot * Copyright (C) 2022 Sophgo Technology Inc. All rights reserved. 484943d6fSEmmanuel Vadot */ 584943d6fSEmmanuel Vadot 684943d6fSEmmanuel Vadot/dts-v1/; 70e8011faSEmmanuel Vadot#include <dt-bindings/clock/sophgo,sg2042-clkgen.h> 80e8011faSEmmanuel Vadot#include <dt-bindings/clock/sophgo,sg2042-pll.h> 90e8011faSEmmanuel Vadot#include <dt-bindings/clock/sophgo,sg2042-rpgate.h> 1084943d6fSEmmanuel Vadot#include <dt-bindings/interrupt-controller/irq.h> 1101950c46SEmmanuel Vadot#include <dt-bindings/reset/sophgo,sg2042-reset.h> 1201950c46SEmmanuel Vadot 1384943d6fSEmmanuel Vadot#include "sg2042-cpus.dtsi" 1484943d6fSEmmanuel Vadot 1584943d6fSEmmanuel Vadot/ { 1684943d6fSEmmanuel Vadot compatible = "sophgo,sg2042"; 1784943d6fSEmmanuel Vadot #address-cells = <2>; 1884943d6fSEmmanuel Vadot #size-cells = <2>; 1984943d6fSEmmanuel Vadot dma-noncoherent; 2084943d6fSEmmanuel Vadot 2184943d6fSEmmanuel Vadot aliases { 2284943d6fSEmmanuel Vadot serial0 = &uart0; 2384943d6fSEmmanuel Vadot }; 2484943d6fSEmmanuel Vadot 250e8011faSEmmanuel Vadot cgi_main: oscillator0 { 260e8011faSEmmanuel Vadot compatible = "fixed-clock"; 270e8011faSEmmanuel Vadot clock-output-names = "cgi_main"; 280e8011faSEmmanuel Vadot #clock-cells = <0>; 290e8011faSEmmanuel Vadot }; 300e8011faSEmmanuel Vadot 310e8011faSEmmanuel Vadot cgi_dpll0: oscillator1 { 320e8011faSEmmanuel Vadot compatible = "fixed-clock"; 330e8011faSEmmanuel Vadot clock-output-names = "cgi_dpll0"; 340e8011faSEmmanuel Vadot #clock-cells = <0>; 350e8011faSEmmanuel Vadot }; 360e8011faSEmmanuel Vadot 370e8011faSEmmanuel Vadot cgi_dpll1: oscillator2 { 380e8011faSEmmanuel Vadot compatible = "fixed-clock"; 390e8011faSEmmanuel Vadot clock-output-names = "cgi_dpll1"; 400e8011faSEmmanuel Vadot #clock-cells = <0>; 410e8011faSEmmanuel Vadot }; 420e8011faSEmmanuel Vadot 4384943d6fSEmmanuel Vadot soc: soc { 4484943d6fSEmmanuel Vadot compatible = "simple-bus"; 4584943d6fSEmmanuel Vadot #address-cells = <2>; 4684943d6fSEmmanuel Vadot #size-cells = <2>; 47*b2d2a78aSEmmanuel Vadot interrupt-parent = <&intc>; 4884943d6fSEmmanuel Vadot ranges; 4984943d6fSEmmanuel Vadot 50*b2d2a78aSEmmanuel Vadot i2c0: i2c@7030005000 { 51*b2d2a78aSEmmanuel Vadot compatible = "snps,designware-i2c"; 52*b2d2a78aSEmmanuel Vadot reg = <0x70 0x30005000 0x0 0x1000>; 53*b2d2a78aSEmmanuel Vadot #address-cells = <1>; 54*b2d2a78aSEmmanuel Vadot #size-cells = <0>; 55*b2d2a78aSEmmanuel Vadot clocks = <&clkgen GATE_CLK_APB_I2C>; 56*b2d2a78aSEmmanuel Vadot clock-names = "ref"; 57*b2d2a78aSEmmanuel Vadot clock-frequency = <100000>; 58*b2d2a78aSEmmanuel Vadot interrupts = <101 IRQ_TYPE_LEVEL_HIGH>; 59*b2d2a78aSEmmanuel Vadot resets = <&rstgen RST_I2C0>; 60*b2d2a78aSEmmanuel Vadot status = "disabled"; 61*b2d2a78aSEmmanuel Vadot }; 62*b2d2a78aSEmmanuel Vadot 63*b2d2a78aSEmmanuel Vadot i2c1: i2c@7030006000 { 64*b2d2a78aSEmmanuel Vadot compatible = "snps,designware-i2c"; 65*b2d2a78aSEmmanuel Vadot reg = <0x70 0x30006000 0x0 0x1000>; 66*b2d2a78aSEmmanuel Vadot #address-cells = <1>; 67*b2d2a78aSEmmanuel Vadot #size-cells = <0>; 68*b2d2a78aSEmmanuel Vadot clocks = <&clkgen GATE_CLK_APB_I2C>; 69*b2d2a78aSEmmanuel Vadot clock-names = "ref"; 70*b2d2a78aSEmmanuel Vadot clock-frequency = <100000>; 71*b2d2a78aSEmmanuel Vadot interrupts = <102 IRQ_TYPE_LEVEL_HIGH>; 72*b2d2a78aSEmmanuel Vadot resets = <&rstgen RST_I2C1>; 73*b2d2a78aSEmmanuel Vadot status = "disabled"; 74*b2d2a78aSEmmanuel Vadot }; 75*b2d2a78aSEmmanuel Vadot 76*b2d2a78aSEmmanuel Vadot i2c2: i2c@7030007000 { 77*b2d2a78aSEmmanuel Vadot compatible = "snps,designware-i2c"; 78*b2d2a78aSEmmanuel Vadot reg = <0x70 0x30007000 0x0 0x1000>; 79*b2d2a78aSEmmanuel Vadot #address-cells = <1>; 80*b2d2a78aSEmmanuel Vadot #size-cells = <0>; 81*b2d2a78aSEmmanuel Vadot clocks = <&clkgen GATE_CLK_APB_I2C>; 82*b2d2a78aSEmmanuel Vadot clock-names = "ref"; 83*b2d2a78aSEmmanuel Vadot clock-frequency = <100000>; 84*b2d2a78aSEmmanuel Vadot interrupts = <103 IRQ_TYPE_LEVEL_HIGH>; 85*b2d2a78aSEmmanuel Vadot resets = <&rstgen RST_I2C2>; 86*b2d2a78aSEmmanuel Vadot status = "disabled"; 87*b2d2a78aSEmmanuel Vadot }; 88*b2d2a78aSEmmanuel Vadot 89*b2d2a78aSEmmanuel Vadot i2c3: i2c@7030008000 { 90*b2d2a78aSEmmanuel Vadot compatible = "snps,designware-i2c"; 91*b2d2a78aSEmmanuel Vadot reg = <0x70 0x30008000 0x0 0x1000>; 92*b2d2a78aSEmmanuel Vadot #address-cells = <1>; 93*b2d2a78aSEmmanuel Vadot #size-cells = <0>; 94*b2d2a78aSEmmanuel Vadot clocks = <&clkgen GATE_CLK_APB_I2C>; 95*b2d2a78aSEmmanuel Vadot clock-names = "ref"; 96*b2d2a78aSEmmanuel Vadot clock-frequency = <100000>; 97*b2d2a78aSEmmanuel Vadot interrupts = <104 IRQ_TYPE_LEVEL_HIGH>; 98*b2d2a78aSEmmanuel Vadot resets = <&rstgen RST_I2C3>; 99*b2d2a78aSEmmanuel Vadot status = "disabled"; 100*b2d2a78aSEmmanuel Vadot }; 101*b2d2a78aSEmmanuel Vadot 102*b2d2a78aSEmmanuel Vadot gpio0: gpio@7030009000 { 103*b2d2a78aSEmmanuel Vadot compatible = "snps,dw-apb-gpio"; 104*b2d2a78aSEmmanuel Vadot reg = <0x70 0x30009000 0x0 0x400>; 105*b2d2a78aSEmmanuel Vadot #address-cells = <1>; 106*b2d2a78aSEmmanuel Vadot #size-cells = <0>; 107*b2d2a78aSEmmanuel Vadot clocks = <&clkgen GATE_CLK_APB_GPIO>, 108*b2d2a78aSEmmanuel Vadot <&clkgen GATE_CLK_GPIO_DB>; 109*b2d2a78aSEmmanuel Vadot clock-names = "bus", "db"; 110*b2d2a78aSEmmanuel Vadot 111*b2d2a78aSEmmanuel Vadot port0a: gpio-controller@0 { 112*b2d2a78aSEmmanuel Vadot compatible = "snps,dw-apb-gpio-port"; 113*b2d2a78aSEmmanuel Vadot gpio-controller; 114*b2d2a78aSEmmanuel Vadot #gpio-cells = <2>; 115*b2d2a78aSEmmanuel Vadot ngpios = <32>; 116*b2d2a78aSEmmanuel Vadot reg = <0>; 117*b2d2a78aSEmmanuel Vadot interrupt-controller; 118*b2d2a78aSEmmanuel Vadot #interrupt-cells = <2>; 119*b2d2a78aSEmmanuel Vadot interrupt-parent = <&intc>; 120*b2d2a78aSEmmanuel Vadot interrupts = <96 IRQ_TYPE_LEVEL_HIGH>; 121*b2d2a78aSEmmanuel Vadot }; 122*b2d2a78aSEmmanuel Vadot }; 123*b2d2a78aSEmmanuel Vadot 124*b2d2a78aSEmmanuel Vadot gpio1: gpio@703000a000 { 125*b2d2a78aSEmmanuel Vadot compatible = "snps,dw-apb-gpio"; 126*b2d2a78aSEmmanuel Vadot reg = <0x70 0x3000a000 0x0 0x400>; 127*b2d2a78aSEmmanuel Vadot #address-cells = <1>; 128*b2d2a78aSEmmanuel Vadot #size-cells = <0>; 129*b2d2a78aSEmmanuel Vadot clocks = <&clkgen GATE_CLK_APB_GPIO>, 130*b2d2a78aSEmmanuel Vadot <&clkgen GATE_CLK_GPIO_DB>; 131*b2d2a78aSEmmanuel Vadot clock-names = "bus", "db"; 132*b2d2a78aSEmmanuel Vadot 133*b2d2a78aSEmmanuel Vadot port1a: gpio-controller@0 { 134*b2d2a78aSEmmanuel Vadot compatible = "snps,dw-apb-gpio-port"; 135*b2d2a78aSEmmanuel Vadot gpio-controller; 136*b2d2a78aSEmmanuel Vadot #gpio-cells = <2>; 137*b2d2a78aSEmmanuel Vadot ngpios = <32>; 138*b2d2a78aSEmmanuel Vadot reg = <0>; 139*b2d2a78aSEmmanuel Vadot interrupt-controller; 140*b2d2a78aSEmmanuel Vadot #interrupt-cells = <2>; 141*b2d2a78aSEmmanuel Vadot interrupt-parent = <&intc>; 142*b2d2a78aSEmmanuel Vadot interrupts = <97 IRQ_TYPE_LEVEL_HIGH>; 143*b2d2a78aSEmmanuel Vadot }; 144*b2d2a78aSEmmanuel Vadot }; 145*b2d2a78aSEmmanuel Vadot 146*b2d2a78aSEmmanuel Vadot gpio2: gpio@703000b000 { 147*b2d2a78aSEmmanuel Vadot compatible = "snps,dw-apb-gpio"; 148*b2d2a78aSEmmanuel Vadot reg = <0x70 0x3000b000 0x0 0x400>; 149*b2d2a78aSEmmanuel Vadot #address-cells = <1>; 150*b2d2a78aSEmmanuel Vadot #size-cells = <0>; 151*b2d2a78aSEmmanuel Vadot clocks = <&clkgen GATE_CLK_APB_GPIO>, 152*b2d2a78aSEmmanuel Vadot <&clkgen GATE_CLK_GPIO_DB>; 153*b2d2a78aSEmmanuel Vadot clock-names = "bus", "db"; 154*b2d2a78aSEmmanuel Vadot 155*b2d2a78aSEmmanuel Vadot port2a: gpio-controller@0 { 156*b2d2a78aSEmmanuel Vadot compatible = "snps,dw-apb-gpio-port"; 157*b2d2a78aSEmmanuel Vadot gpio-controller; 158*b2d2a78aSEmmanuel Vadot #gpio-cells = <2>; 159*b2d2a78aSEmmanuel Vadot ngpios = <32>; 160*b2d2a78aSEmmanuel Vadot reg = <0>; 161*b2d2a78aSEmmanuel Vadot interrupt-controller; 162*b2d2a78aSEmmanuel Vadot #interrupt-cells = <2>; 163*b2d2a78aSEmmanuel Vadot interrupt-parent = <&intc>; 164*b2d2a78aSEmmanuel Vadot interrupts = <98 IRQ_TYPE_LEVEL_HIGH>; 165*b2d2a78aSEmmanuel Vadot }; 166*b2d2a78aSEmmanuel Vadot }; 167*b2d2a78aSEmmanuel Vadot 1680e8011faSEmmanuel Vadot pllclk: clock-controller@70300100c0 { 1690e8011faSEmmanuel Vadot compatible = "sophgo,sg2042-pll"; 1700e8011faSEmmanuel Vadot reg = <0x70 0x300100c0 0x0 0x40>; 1710e8011faSEmmanuel Vadot clocks = <&cgi_main>, <&cgi_dpll0>, <&cgi_dpll1>; 1720e8011faSEmmanuel Vadot clock-names = "cgi_main", "cgi_dpll0", "cgi_dpll1"; 1730e8011faSEmmanuel Vadot #clock-cells = <1>; 1740e8011faSEmmanuel Vadot }; 1750e8011faSEmmanuel Vadot 1760e8011faSEmmanuel Vadot rpgate: clock-controller@7030010368 { 1770e8011faSEmmanuel Vadot compatible = "sophgo,sg2042-rpgate"; 1780e8011faSEmmanuel Vadot reg = <0x70 0x30010368 0x0 0x98>; 1790e8011faSEmmanuel Vadot clocks = <&clkgen GATE_CLK_RP_CPU_NORMAL>; 1800e8011faSEmmanuel Vadot clock-names = "rpgate"; 1810e8011faSEmmanuel Vadot #clock-cells = <1>; 1820e8011faSEmmanuel Vadot }; 1830e8011faSEmmanuel Vadot 1840e8011faSEmmanuel Vadot clkgen: clock-controller@7030012000 { 1850e8011faSEmmanuel Vadot compatible = "sophgo,sg2042-clkgen"; 1860e8011faSEmmanuel Vadot reg = <0x70 0x30012000 0x0 0x1000>; 1870e8011faSEmmanuel Vadot clocks = <&pllclk MPLL_CLK>, 1880e8011faSEmmanuel Vadot <&pllclk FPLL_CLK>, 1890e8011faSEmmanuel Vadot <&pllclk DPLL0_CLK>, 1900e8011faSEmmanuel Vadot <&pllclk DPLL1_CLK>; 1910e8011faSEmmanuel Vadot clock-names = "mpll", 1920e8011faSEmmanuel Vadot "fpll", 1930e8011faSEmmanuel Vadot "dpll0", 1940e8011faSEmmanuel Vadot "dpll1"; 1950e8011faSEmmanuel Vadot #clock-cells = <1>; 1960e8011faSEmmanuel Vadot }; 1970e8011faSEmmanuel Vadot 19884943d6fSEmmanuel Vadot clint_mswi: interrupt-controller@7094000000 { 19984943d6fSEmmanuel Vadot compatible = "sophgo,sg2042-aclint-mswi", "thead,c900-aclint-mswi"; 20084943d6fSEmmanuel Vadot reg = <0x00000070 0x94000000 0x00000000 0x00004000>; 20184943d6fSEmmanuel Vadot interrupts-extended = <&cpu0_intc 3>, 20284943d6fSEmmanuel Vadot <&cpu1_intc 3>, 20384943d6fSEmmanuel Vadot <&cpu2_intc 3>, 20484943d6fSEmmanuel Vadot <&cpu3_intc 3>, 20584943d6fSEmmanuel Vadot <&cpu4_intc 3>, 20684943d6fSEmmanuel Vadot <&cpu5_intc 3>, 20784943d6fSEmmanuel Vadot <&cpu6_intc 3>, 20884943d6fSEmmanuel Vadot <&cpu7_intc 3>, 20984943d6fSEmmanuel Vadot <&cpu8_intc 3>, 21084943d6fSEmmanuel Vadot <&cpu9_intc 3>, 21184943d6fSEmmanuel Vadot <&cpu10_intc 3>, 21284943d6fSEmmanuel Vadot <&cpu11_intc 3>, 21384943d6fSEmmanuel Vadot <&cpu12_intc 3>, 21484943d6fSEmmanuel Vadot <&cpu13_intc 3>, 21584943d6fSEmmanuel Vadot <&cpu14_intc 3>, 21684943d6fSEmmanuel Vadot <&cpu15_intc 3>, 21784943d6fSEmmanuel Vadot <&cpu16_intc 3>, 21884943d6fSEmmanuel Vadot <&cpu17_intc 3>, 21984943d6fSEmmanuel Vadot <&cpu18_intc 3>, 22084943d6fSEmmanuel Vadot <&cpu19_intc 3>, 22184943d6fSEmmanuel Vadot <&cpu20_intc 3>, 22284943d6fSEmmanuel Vadot <&cpu21_intc 3>, 22384943d6fSEmmanuel Vadot <&cpu22_intc 3>, 22484943d6fSEmmanuel Vadot <&cpu23_intc 3>, 22584943d6fSEmmanuel Vadot <&cpu24_intc 3>, 22684943d6fSEmmanuel Vadot <&cpu25_intc 3>, 22784943d6fSEmmanuel Vadot <&cpu26_intc 3>, 22884943d6fSEmmanuel Vadot <&cpu27_intc 3>, 22984943d6fSEmmanuel Vadot <&cpu28_intc 3>, 23084943d6fSEmmanuel Vadot <&cpu29_intc 3>, 23184943d6fSEmmanuel Vadot <&cpu30_intc 3>, 23284943d6fSEmmanuel Vadot <&cpu31_intc 3>, 23384943d6fSEmmanuel Vadot <&cpu32_intc 3>, 23484943d6fSEmmanuel Vadot <&cpu33_intc 3>, 23584943d6fSEmmanuel Vadot <&cpu34_intc 3>, 23684943d6fSEmmanuel Vadot <&cpu35_intc 3>, 23784943d6fSEmmanuel Vadot <&cpu36_intc 3>, 23884943d6fSEmmanuel Vadot <&cpu37_intc 3>, 23984943d6fSEmmanuel Vadot <&cpu38_intc 3>, 24084943d6fSEmmanuel Vadot <&cpu39_intc 3>, 24184943d6fSEmmanuel Vadot <&cpu40_intc 3>, 24284943d6fSEmmanuel Vadot <&cpu41_intc 3>, 24384943d6fSEmmanuel Vadot <&cpu42_intc 3>, 24484943d6fSEmmanuel Vadot <&cpu43_intc 3>, 24584943d6fSEmmanuel Vadot <&cpu44_intc 3>, 24684943d6fSEmmanuel Vadot <&cpu45_intc 3>, 24784943d6fSEmmanuel Vadot <&cpu46_intc 3>, 24884943d6fSEmmanuel Vadot <&cpu47_intc 3>, 24984943d6fSEmmanuel Vadot <&cpu48_intc 3>, 25084943d6fSEmmanuel Vadot <&cpu49_intc 3>, 25184943d6fSEmmanuel Vadot <&cpu50_intc 3>, 25284943d6fSEmmanuel Vadot <&cpu51_intc 3>, 25384943d6fSEmmanuel Vadot <&cpu52_intc 3>, 25484943d6fSEmmanuel Vadot <&cpu53_intc 3>, 25584943d6fSEmmanuel Vadot <&cpu54_intc 3>, 25684943d6fSEmmanuel Vadot <&cpu55_intc 3>, 25784943d6fSEmmanuel Vadot <&cpu56_intc 3>, 25884943d6fSEmmanuel Vadot <&cpu57_intc 3>, 25984943d6fSEmmanuel Vadot <&cpu58_intc 3>, 26084943d6fSEmmanuel Vadot <&cpu59_intc 3>, 26184943d6fSEmmanuel Vadot <&cpu60_intc 3>, 26284943d6fSEmmanuel Vadot <&cpu61_intc 3>, 26384943d6fSEmmanuel Vadot <&cpu62_intc 3>, 26484943d6fSEmmanuel Vadot <&cpu63_intc 3>; 26584943d6fSEmmanuel Vadot }; 26684943d6fSEmmanuel Vadot 2678d13bc63SEmmanuel Vadot clint_mtimer0: timer@70ac004000 { 26884943d6fSEmmanuel Vadot compatible = "sophgo,sg2042-aclint-mtimer", "thead,c900-aclint-mtimer"; 2698d13bc63SEmmanuel Vadot reg = <0x00000070 0xac004000 0x00000000 0x0000c000>; 2708d13bc63SEmmanuel Vadot reg-names = "mtimecmp"; 27184943d6fSEmmanuel Vadot interrupts-extended = <&cpu0_intc 7>, 27284943d6fSEmmanuel Vadot <&cpu1_intc 7>, 27384943d6fSEmmanuel Vadot <&cpu2_intc 7>, 27484943d6fSEmmanuel Vadot <&cpu3_intc 7>; 27584943d6fSEmmanuel Vadot }; 27684943d6fSEmmanuel Vadot 2778d13bc63SEmmanuel Vadot clint_mtimer1: timer@70ac014000 { 27884943d6fSEmmanuel Vadot compatible = "sophgo,sg2042-aclint-mtimer", "thead,c900-aclint-mtimer"; 2798d13bc63SEmmanuel Vadot reg = <0x00000070 0xac014000 0x00000000 0x0000c000>; 2808d13bc63SEmmanuel Vadot reg-names = "mtimecmp"; 28184943d6fSEmmanuel Vadot interrupts-extended = <&cpu4_intc 7>, 28284943d6fSEmmanuel Vadot <&cpu5_intc 7>, 28384943d6fSEmmanuel Vadot <&cpu6_intc 7>, 28484943d6fSEmmanuel Vadot <&cpu7_intc 7>; 28584943d6fSEmmanuel Vadot }; 28684943d6fSEmmanuel Vadot 2878d13bc63SEmmanuel Vadot clint_mtimer2: timer@70ac024000 { 28884943d6fSEmmanuel Vadot compatible = "sophgo,sg2042-aclint-mtimer", "thead,c900-aclint-mtimer"; 2898d13bc63SEmmanuel Vadot reg = <0x00000070 0xac024000 0x00000000 0x0000c000>; 2908d13bc63SEmmanuel Vadot reg-names = "mtimecmp"; 29184943d6fSEmmanuel Vadot interrupts-extended = <&cpu8_intc 7>, 29284943d6fSEmmanuel Vadot <&cpu9_intc 7>, 29384943d6fSEmmanuel Vadot <&cpu10_intc 7>, 29484943d6fSEmmanuel Vadot <&cpu11_intc 7>; 29584943d6fSEmmanuel Vadot }; 29684943d6fSEmmanuel Vadot 2978d13bc63SEmmanuel Vadot clint_mtimer3: timer@70ac034000 { 29884943d6fSEmmanuel Vadot compatible = "sophgo,sg2042-aclint-mtimer", "thead,c900-aclint-mtimer"; 2998d13bc63SEmmanuel Vadot reg = <0x00000070 0xac034000 0x00000000 0x0000c000>; 3008d13bc63SEmmanuel Vadot reg-names = "mtimecmp"; 30184943d6fSEmmanuel Vadot interrupts-extended = <&cpu12_intc 7>, 30284943d6fSEmmanuel Vadot <&cpu13_intc 7>, 30384943d6fSEmmanuel Vadot <&cpu14_intc 7>, 30484943d6fSEmmanuel Vadot <&cpu15_intc 7>; 30584943d6fSEmmanuel Vadot }; 30684943d6fSEmmanuel Vadot 3078d13bc63SEmmanuel Vadot clint_mtimer4: timer@70ac044000 { 30884943d6fSEmmanuel Vadot compatible = "sophgo,sg2042-aclint-mtimer", "thead,c900-aclint-mtimer"; 3098d13bc63SEmmanuel Vadot reg = <0x00000070 0xac044000 0x00000000 0x0000c000>; 3108d13bc63SEmmanuel Vadot reg-names = "mtimecmp"; 31184943d6fSEmmanuel Vadot interrupts-extended = <&cpu16_intc 7>, 31284943d6fSEmmanuel Vadot <&cpu17_intc 7>, 31384943d6fSEmmanuel Vadot <&cpu18_intc 7>, 31484943d6fSEmmanuel Vadot <&cpu19_intc 7>; 31584943d6fSEmmanuel Vadot }; 31684943d6fSEmmanuel Vadot 3178d13bc63SEmmanuel Vadot clint_mtimer5: timer@70ac054000 { 31884943d6fSEmmanuel Vadot compatible = "sophgo,sg2042-aclint-mtimer", "thead,c900-aclint-mtimer"; 3198d13bc63SEmmanuel Vadot reg = <0x00000070 0xac054000 0x00000000 0x0000c000>; 3208d13bc63SEmmanuel Vadot reg-names = "mtimecmp"; 32184943d6fSEmmanuel Vadot interrupts-extended = <&cpu20_intc 7>, 32284943d6fSEmmanuel Vadot <&cpu21_intc 7>, 32384943d6fSEmmanuel Vadot <&cpu22_intc 7>, 32484943d6fSEmmanuel Vadot <&cpu23_intc 7>; 32584943d6fSEmmanuel Vadot }; 32684943d6fSEmmanuel Vadot 3278d13bc63SEmmanuel Vadot clint_mtimer6: timer@70ac064000 { 32884943d6fSEmmanuel Vadot compatible = "sophgo,sg2042-aclint-mtimer", "thead,c900-aclint-mtimer"; 3298d13bc63SEmmanuel Vadot reg = <0x00000070 0xac064000 0x00000000 0x0000c000>; 3308d13bc63SEmmanuel Vadot reg-names = "mtimecmp"; 33184943d6fSEmmanuel Vadot interrupts-extended = <&cpu24_intc 7>, 33284943d6fSEmmanuel Vadot <&cpu25_intc 7>, 33384943d6fSEmmanuel Vadot <&cpu26_intc 7>, 33484943d6fSEmmanuel Vadot <&cpu27_intc 7>; 33584943d6fSEmmanuel Vadot }; 33684943d6fSEmmanuel Vadot 3378d13bc63SEmmanuel Vadot clint_mtimer7: timer@70ac074000 { 33884943d6fSEmmanuel Vadot compatible = "sophgo,sg2042-aclint-mtimer", "thead,c900-aclint-mtimer"; 3398d13bc63SEmmanuel Vadot reg = <0x00000070 0xac074000 0x00000000 0x0000c000>; 3408d13bc63SEmmanuel Vadot reg-names = "mtimecmp"; 34184943d6fSEmmanuel Vadot interrupts-extended = <&cpu28_intc 7>, 34284943d6fSEmmanuel Vadot <&cpu29_intc 7>, 34384943d6fSEmmanuel Vadot <&cpu30_intc 7>, 34484943d6fSEmmanuel Vadot <&cpu31_intc 7>; 34584943d6fSEmmanuel Vadot }; 34684943d6fSEmmanuel Vadot 3478d13bc63SEmmanuel Vadot clint_mtimer8: timer@70ac084000 { 34884943d6fSEmmanuel Vadot compatible = "sophgo,sg2042-aclint-mtimer", "thead,c900-aclint-mtimer"; 3498d13bc63SEmmanuel Vadot reg = <0x00000070 0xac084000 0x00000000 0x0000c000>; 3508d13bc63SEmmanuel Vadot reg-names = "mtimecmp"; 35184943d6fSEmmanuel Vadot interrupts-extended = <&cpu32_intc 7>, 35284943d6fSEmmanuel Vadot <&cpu33_intc 7>, 35384943d6fSEmmanuel Vadot <&cpu34_intc 7>, 35484943d6fSEmmanuel Vadot <&cpu35_intc 7>; 35584943d6fSEmmanuel Vadot }; 35684943d6fSEmmanuel Vadot 3578d13bc63SEmmanuel Vadot clint_mtimer9: timer@70ac094000 { 35884943d6fSEmmanuel Vadot compatible = "sophgo,sg2042-aclint-mtimer", "thead,c900-aclint-mtimer"; 3598d13bc63SEmmanuel Vadot reg = <0x00000070 0xac094000 0x00000000 0x0000c000>; 3608d13bc63SEmmanuel Vadot reg-names = "mtimecmp"; 36184943d6fSEmmanuel Vadot interrupts-extended = <&cpu36_intc 7>, 36284943d6fSEmmanuel Vadot <&cpu37_intc 7>, 36384943d6fSEmmanuel Vadot <&cpu38_intc 7>, 36484943d6fSEmmanuel Vadot <&cpu39_intc 7>; 36584943d6fSEmmanuel Vadot }; 36684943d6fSEmmanuel Vadot 3678d13bc63SEmmanuel Vadot clint_mtimer10: timer@70ac0a4000 { 36884943d6fSEmmanuel Vadot compatible = "sophgo,sg2042-aclint-mtimer", "thead,c900-aclint-mtimer"; 3698d13bc63SEmmanuel Vadot reg = <0x00000070 0xac0a4000 0x00000000 0x0000c000>; 3708d13bc63SEmmanuel Vadot reg-names = "mtimecmp"; 37184943d6fSEmmanuel Vadot interrupts-extended = <&cpu40_intc 7>, 37284943d6fSEmmanuel Vadot <&cpu41_intc 7>, 37384943d6fSEmmanuel Vadot <&cpu42_intc 7>, 37484943d6fSEmmanuel Vadot <&cpu43_intc 7>; 37584943d6fSEmmanuel Vadot }; 37684943d6fSEmmanuel Vadot 3778d13bc63SEmmanuel Vadot clint_mtimer11: timer@70ac0b4000 { 37884943d6fSEmmanuel Vadot compatible = "sophgo,sg2042-aclint-mtimer", "thead,c900-aclint-mtimer"; 3798d13bc63SEmmanuel Vadot reg = <0x00000070 0xac0b4000 0x00000000 0x0000c000>; 3808d13bc63SEmmanuel Vadot reg-names = "mtimecmp"; 38184943d6fSEmmanuel Vadot interrupts-extended = <&cpu44_intc 7>, 38284943d6fSEmmanuel Vadot <&cpu45_intc 7>, 38384943d6fSEmmanuel Vadot <&cpu46_intc 7>, 38484943d6fSEmmanuel Vadot <&cpu47_intc 7>; 38584943d6fSEmmanuel Vadot }; 38684943d6fSEmmanuel Vadot 3878d13bc63SEmmanuel Vadot clint_mtimer12: timer@70ac0c4000 { 38884943d6fSEmmanuel Vadot compatible = "sophgo,sg2042-aclint-mtimer", "thead,c900-aclint-mtimer"; 3898d13bc63SEmmanuel Vadot reg = <0x00000070 0xac0c4000 0x00000000 0x0000c000>; 3908d13bc63SEmmanuel Vadot reg-names = "mtimecmp"; 39184943d6fSEmmanuel Vadot interrupts-extended = <&cpu48_intc 7>, 39284943d6fSEmmanuel Vadot <&cpu49_intc 7>, 39384943d6fSEmmanuel Vadot <&cpu50_intc 7>, 39484943d6fSEmmanuel Vadot <&cpu51_intc 7>; 39584943d6fSEmmanuel Vadot }; 39684943d6fSEmmanuel Vadot 3978d13bc63SEmmanuel Vadot clint_mtimer13: timer@70ac0d4000 { 39884943d6fSEmmanuel Vadot compatible = "sophgo,sg2042-aclint-mtimer", "thead,c900-aclint-mtimer"; 3998d13bc63SEmmanuel Vadot reg = <0x00000070 0xac0d4000 0x00000000 0x0000c000>; 4008d13bc63SEmmanuel Vadot reg-names = "mtimecmp"; 40184943d6fSEmmanuel Vadot interrupts-extended = <&cpu52_intc 7>, 40284943d6fSEmmanuel Vadot <&cpu53_intc 7>, 40384943d6fSEmmanuel Vadot <&cpu54_intc 7>, 40484943d6fSEmmanuel Vadot <&cpu55_intc 7>; 40584943d6fSEmmanuel Vadot }; 40684943d6fSEmmanuel Vadot 4078d13bc63SEmmanuel Vadot clint_mtimer14: timer@70ac0e4000 { 40884943d6fSEmmanuel Vadot compatible = "sophgo,sg2042-aclint-mtimer", "thead,c900-aclint-mtimer"; 4098d13bc63SEmmanuel Vadot reg = <0x00000070 0xac0e4000 0x00000000 0x0000c000>; 4108d13bc63SEmmanuel Vadot reg-names = "mtimecmp"; 41184943d6fSEmmanuel Vadot interrupts-extended = <&cpu56_intc 7>, 41284943d6fSEmmanuel Vadot <&cpu57_intc 7>, 41384943d6fSEmmanuel Vadot <&cpu58_intc 7>, 41484943d6fSEmmanuel Vadot <&cpu59_intc 7>; 41584943d6fSEmmanuel Vadot }; 41684943d6fSEmmanuel Vadot 4178d13bc63SEmmanuel Vadot clint_mtimer15: timer@70ac0f4000 { 41884943d6fSEmmanuel Vadot compatible = "sophgo,sg2042-aclint-mtimer", "thead,c900-aclint-mtimer"; 4198d13bc63SEmmanuel Vadot reg = <0x00000070 0xac0f4000 0x00000000 0x0000c000>; 4208d13bc63SEmmanuel Vadot reg-names = "mtimecmp"; 42184943d6fSEmmanuel Vadot interrupts-extended = <&cpu60_intc 7>, 42284943d6fSEmmanuel Vadot <&cpu61_intc 7>, 42384943d6fSEmmanuel Vadot <&cpu62_intc 7>, 42484943d6fSEmmanuel Vadot <&cpu63_intc 7>; 42584943d6fSEmmanuel Vadot }; 42684943d6fSEmmanuel Vadot 42784943d6fSEmmanuel Vadot intc: interrupt-controller@7090000000 { 42884943d6fSEmmanuel Vadot compatible = "sophgo,sg2042-plic", "thead,c900-plic"; 42984943d6fSEmmanuel Vadot #address-cells = <0>; 43084943d6fSEmmanuel Vadot #interrupt-cells = <2>; 43184943d6fSEmmanuel Vadot reg = <0x00000070 0x90000000 0x00000000 0x04000000>; 43284943d6fSEmmanuel Vadot interrupt-controller; 43384943d6fSEmmanuel Vadot interrupts-extended = 43484943d6fSEmmanuel Vadot <&cpu0_intc 11>, <&cpu0_intc 9>, 43584943d6fSEmmanuel Vadot <&cpu1_intc 11>, <&cpu1_intc 9>, 43684943d6fSEmmanuel Vadot <&cpu2_intc 11>, <&cpu2_intc 9>, 43784943d6fSEmmanuel Vadot <&cpu3_intc 11>, <&cpu3_intc 9>, 43884943d6fSEmmanuel Vadot <&cpu4_intc 11>, <&cpu4_intc 9>, 43984943d6fSEmmanuel Vadot <&cpu5_intc 11>, <&cpu5_intc 9>, 44084943d6fSEmmanuel Vadot <&cpu6_intc 11>, <&cpu6_intc 9>, 44184943d6fSEmmanuel Vadot <&cpu7_intc 11>, <&cpu7_intc 9>, 44284943d6fSEmmanuel Vadot <&cpu8_intc 11>, <&cpu8_intc 9>, 44384943d6fSEmmanuel Vadot <&cpu9_intc 11>, <&cpu9_intc 9>, 44484943d6fSEmmanuel Vadot <&cpu10_intc 11>, <&cpu10_intc 9>, 44584943d6fSEmmanuel Vadot <&cpu11_intc 11>, <&cpu11_intc 9>, 44684943d6fSEmmanuel Vadot <&cpu12_intc 11>, <&cpu12_intc 9>, 44784943d6fSEmmanuel Vadot <&cpu13_intc 11>, <&cpu13_intc 9>, 44884943d6fSEmmanuel Vadot <&cpu14_intc 11>, <&cpu14_intc 9>, 44984943d6fSEmmanuel Vadot <&cpu15_intc 11>, <&cpu15_intc 9>, 45084943d6fSEmmanuel Vadot <&cpu16_intc 11>, <&cpu16_intc 9>, 45184943d6fSEmmanuel Vadot <&cpu17_intc 11>, <&cpu17_intc 9>, 45284943d6fSEmmanuel Vadot <&cpu18_intc 11>, <&cpu18_intc 9>, 45384943d6fSEmmanuel Vadot <&cpu19_intc 11>, <&cpu19_intc 9>, 45484943d6fSEmmanuel Vadot <&cpu20_intc 11>, <&cpu20_intc 9>, 45584943d6fSEmmanuel Vadot <&cpu21_intc 11>, <&cpu21_intc 9>, 45684943d6fSEmmanuel Vadot <&cpu22_intc 11>, <&cpu22_intc 9>, 45784943d6fSEmmanuel Vadot <&cpu23_intc 11>, <&cpu23_intc 9>, 45884943d6fSEmmanuel Vadot <&cpu24_intc 11>, <&cpu24_intc 9>, 45984943d6fSEmmanuel Vadot <&cpu25_intc 11>, <&cpu25_intc 9>, 46084943d6fSEmmanuel Vadot <&cpu26_intc 11>, <&cpu26_intc 9>, 46184943d6fSEmmanuel Vadot <&cpu27_intc 11>, <&cpu27_intc 9>, 46284943d6fSEmmanuel Vadot <&cpu28_intc 11>, <&cpu28_intc 9>, 46384943d6fSEmmanuel Vadot <&cpu29_intc 11>, <&cpu29_intc 9>, 46484943d6fSEmmanuel Vadot <&cpu30_intc 11>, <&cpu30_intc 9>, 46584943d6fSEmmanuel Vadot <&cpu31_intc 11>, <&cpu31_intc 9>, 46684943d6fSEmmanuel Vadot <&cpu32_intc 11>, <&cpu32_intc 9>, 46784943d6fSEmmanuel Vadot <&cpu33_intc 11>, <&cpu33_intc 9>, 46884943d6fSEmmanuel Vadot <&cpu34_intc 11>, <&cpu34_intc 9>, 46984943d6fSEmmanuel Vadot <&cpu35_intc 11>, <&cpu35_intc 9>, 47084943d6fSEmmanuel Vadot <&cpu36_intc 11>, <&cpu36_intc 9>, 47184943d6fSEmmanuel Vadot <&cpu37_intc 11>, <&cpu37_intc 9>, 47284943d6fSEmmanuel Vadot <&cpu38_intc 11>, <&cpu38_intc 9>, 47384943d6fSEmmanuel Vadot <&cpu39_intc 11>, <&cpu39_intc 9>, 47484943d6fSEmmanuel Vadot <&cpu40_intc 11>, <&cpu40_intc 9>, 47584943d6fSEmmanuel Vadot <&cpu41_intc 11>, <&cpu41_intc 9>, 47684943d6fSEmmanuel Vadot <&cpu42_intc 11>, <&cpu42_intc 9>, 47784943d6fSEmmanuel Vadot <&cpu43_intc 11>, <&cpu43_intc 9>, 47884943d6fSEmmanuel Vadot <&cpu44_intc 11>, <&cpu44_intc 9>, 47984943d6fSEmmanuel Vadot <&cpu45_intc 11>, <&cpu45_intc 9>, 48084943d6fSEmmanuel Vadot <&cpu46_intc 11>, <&cpu46_intc 9>, 48184943d6fSEmmanuel Vadot <&cpu47_intc 11>, <&cpu47_intc 9>, 48284943d6fSEmmanuel Vadot <&cpu48_intc 11>, <&cpu48_intc 9>, 48384943d6fSEmmanuel Vadot <&cpu49_intc 11>, <&cpu49_intc 9>, 48484943d6fSEmmanuel Vadot <&cpu50_intc 11>, <&cpu50_intc 9>, 48584943d6fSEmmanuel Vadot <&cpu51_intc 11>, <&cpu51_intc 9>, 48684943d6fSEmmanuel Vadot <&cpu52_intc 11>, <&cpu52_intc 9>, 48784943d6fSEmmanuel Vadot <&cpu53_intc 11>, <&cpu53_intc 9>, 48884943d6fSEmmanuel Vadot <&cpu54_intc 11>, <&cpu54_intc 9>, 48984943d6fSEmmanuel Vadot <&cpu55_intc 11>, <&cpu55_intc 9>, 49084943d6fSEmmanuel Vadot <&cpu56_intc 11>, <&cpu56_intc 9>, 49184943d6fSEmmanuel Vadot <&cpu57_intc 11>, <&cpu57_intc 9>, 49284943d6fSEmmanuel Vadot <&cpu58_intc 11>, <&cpu58_intc 9>, 49384943d6fSEmmanuel Vadot <&cpu59_intc 11>, <&cpu59_intc 9>, 49484943d6fSEmmanuel Vadot <&cpu60_intc 11>, <&cpu60_intc 9>, 49584943d6fSEmmanuel Vadot <&cpu61_intc 11>, <&cpu61_intc 9>, 49684943d6fSEmmanuel Vadot <&cpu62_intc 11>, <&cpu62_intc 9>, 49784943d6fSEmmanuel Vadot <&cpu63_intc 11>, <&cpu63_intc 9>; 49884943d6fSEmmanuel Vadot riscv,ndev = <224>; 49984943d6fSEmmanuel Vadot }; 50084943d6fSEmmanuel Vadot 50101950c46SEmmanuel Vadot rstgen: reset-controller@7030013000 { 50201950c46SEmmanuel Vadot compatible = "sophgo,sg2042-reset"; 50301950c46SEmmanuel Vadot reg = <0x00000070 0x30013000 0x00000000 0x0000000c>; 50401950c46SEmmanuel Vadot #reset-cells = <1>; 50501950c46SEmmanuel Vadot }; 50601950c46SEmmanuel Vadot 50784943d6fSEmmanuel Vadot uart0: serial@7040000000 { 50884943d6fSEmmanuel Vadot compatible = "snps,dw-apb-uart"; 50984943d6fSEmmanuel Vadot reg = <0x00000070 0x40000000 0x00000000 0x00001000>; 51084943d6fSEmmanuel Vadot interrupts = <112 IRQ_TYPE_LEVEL_HIGH>; 51184943d6fSEmmanuel Vadot clock-frequency = <500000000>; 5120e8011faSEmmanuel Vadot clocks = <&clkgen GATE_CLK_UART_500M>, 5130e8011faSEmmanuel Vadot <&clkgen GATE_CLK_APB_UART>; 5140e8011faSEmmanuel Vadot clock-names = "baudclk", "apb_pclk"; 51584943d6fSEmmanuel Vadot reg-shift = <2>; 51684943d6fSEmmanuel Vadot reg-io-width = <4>; 51701950c46SEmmanuel Vadot resets = <&rstgen RST_UART0>; 51884943d6fSEmmanuel Vadot status = "disabled"; 51984943d6fSEmmanuel Vadot }; 520*b2d2a78aSEmmanuel Vadot 521*b2d2a78aSEmmanuel Vadot emmc: mmc@704002a000 { 522*b2d2a78aSEmmanuel Vadot compatible = "sophgo,sg2042-dwcmshc"; 523*b2d2a78aSEmmanuel Vadot reg = <0x70 0x4002a000 0x0 0x1000>; 524*b2d2a78aSEmmanuel Vadot interrupt-parent = <&intc>; 525*b2d2a78aSEmmanuel Vadot interrupts = <134 IRQ_TYPE_LEVEL_HIGH>; 526*b2d2a78aSEmmanuel Vadot clocks = <&clkgen GATE_CLK_EMMC_100M>, 527*b2d2a78aSEmmanuel Vadot <&clkgen GATE_CLK_AXI_EMMC>, 528*b2d2a78aSEmmanuel Vadot <&clkgen GATE_CLK_100K_EMMC>; 529*b2d2a78aSEmmanuel Vadot clock-names = "core", 530*b2d2a78aSEmmanuel Vadot "bus", 531*b2d2a78aSEmmanuel Vadot "timer"; 532*b2d2a78aSEmmanuel Vadot status = "disabled"; 533*b2d2a78aSEmmanuel Vadot }; 534*b2d2a78aSEmmanuel Vadot 535*b2d2a78aSEmmanuel Vadot sd: mmc@704002b000 { 536*b2d2a78aSEmmanuel Vadot compatible = "sophgo,sg2042-dwcmshc"; 537*b2d2a78aSEmmanuel Vadot reg = <0x70 0x4002b000 0x0 0x1000>; 538*b2d2a78aSEmmanuel Vadot interrupt-parent = <&intc>; 539*b2d2a78aSEmmanuel Vadot interrupts = <136 IRQ_TYPE_LEVEL_HIGH>; 540*b2d2a78aSEmmanuel Vadot clocks = <&clkgen GATE_CLK_SD_100M>, 541*b2d2a78aSEmmanuel Vadot <&clkgen GATE_CLK_AXI_SD>, 542*b2d2a78aSEmmanuel Vadot <&clkgen GATE_CLK_100K_SD>; 543*b2d2a78aSEmmanuel Vadot clock-names = "core", 544*b2d2a78aSEmmanuel Vadot "bus", 545*b2d2a78aSEmmanuel Vadot "timer"; 546*b2d2a78aSEmmanuel Vadot status = "disabled"; 547*b2d2a78aSEmmanuel Vadot }; 54884943d6fSEmmanuel Vadot }; 54984943d6fSEmmanuel Vadot}; 550