108734e05SDamien Le Moal// SPDX-License-Identifier: GPL-2.0+ 208734e05SDamien Le Moal/* 367d96729SDamien Le Moal * Copyright (C) 2019-20 Sean Anderson <seanga2@gmail.com> 408734e05SDamien Le Moal * Copyright (C) 2020 Western Digital Corporation or its affiliates. 508734e05SDamien Le Moal */ 608734e05SDamien Le Moal#include <dt-bindings/clock/k210-clk.h> 767d96729SDamien Le Moal#include <dt-bindings/pinctrl/k210-fpioa.h> 867d96729SDamien Le Moal#include <dt-bindings/reset/k210-rst.h> 908734e05SDamien Le Moal 1008734e05SDamien Le Moal/ { 1108734e05SDamien Le Moal /* 1208734e05SDamien Le Moal * Although the K210 is a 64-bit CPU, the address bus is only 32-bits 1308734e05SDamien Le Moal * wide, and the upper half of all addresses is ignored. 1408734e05SDamien Le Moal */ 1508734e05SDamien Le Moal #address-cells = <1>; 1608734e05SDamien Le Moal #size-cells = <1>; 1767d96729SDamien Le Moal compatible = "canaan,kendryte-k210"; 1808734e05SDamien Le Moal 1908734e05SDamien Le Moal aliases { 2008734e05SDamien Le Moal serial0 = &uarths0; 2167d96729SDamien Le Moal serial1 = &uart1; 2267d96729SDamien Le Moal serial2 = &uart2; 2367d96729SDamien Le Moal serial3 = &uart3; 2408734e05SDamien Le Moal }; 2508734e05SDamien Le Moal 2608734e05SDamien Le Moal /* 2767d96729SDamien Le Moal * The K210 has an sv39 MMU following the privileged specification v1.9. 2808734e05SDamien Le Moal * Since this is a non-ratified draft specification, the kernel does not 2908734e05SDamien Le Moal * support it and the K210 support enabled only for the !MMU case. 3008734e05SDamien Le Moal * Be consistent with this by setting the CPUs MMU type to "none". 3108734e05SDamien Le Moal */ 3208734e05SDamien Le Moal cpus { 3308734e05SDamien Le Moal #address-cells = <1>; 3408734e05SDamien Le Moal #size-cells = <0>; 3508734e05SDamien Le Moal timebase-frequency = <7800000>; 3608734e05SDamien Le Moal cpu0: cpu@0 { 3708734e05SDamien Le Moal device_type = "cpu"; 3867d96729SDamien Le Moal compatible = "canaan,k210", "riscv"; 3908734e05SDamien Le Moal reg = <0>; 4008734e05SDamien Le Moal riscv,isa = "rv64imafdc"; 4167d96729SDamien Le Moal mmu-type = "riscv,none"; 4208734e05SDamien Le Moal i-cache-block-size = <64>; 4367d96729SDamien Le Moal i-cache-size = <0x8000>; 4408734e05SDamien Le Moal d-cache-block-size = <64>; 4567d96729SDamien Le Moal d-cache-size = <0x8000>; 4608734e05SDamien Le Moal cpu0_intc: interrupt-controller { 4708734e05SDamien Le Moal #interrupt-cells = <1>; 4808734e05SDamien Le Moal interrupt-controller; 4908734e05SDamien Le Moal compatible = "riscv,cpu-intc"; 5008734e05SDamien Le Moal }; 5108734e05SDamien Le Moal }; 5208734e05SDamien Le Moal cpu1: cpu@1 { 5308734e05SDamien Le Moal device_type = "cpu"; 5467d96729SDamien Le Moal compatible = "canaan,k210", "riscv"; 5508734e05SDamien Le Moal reg = <1>; 5608734e05SDamien Le Moal riscv,isa = "rv64imafdc"; 5767d96729SDamien Le Moal mmu-type = "riscv,none"; 5808734e05SDamien Le Moal i-cache-block-size = <64>; 5967d96729SDamien Le Moal i-cache-size = <0x8000>; 6008734e05SDamien Le Moal d-cache-block-size = <64>; 6167d96729SDamien Le Moal d-cache-size = <0x8000>; 6208734e05SDamien Le Moal cpu1_intc: interrupt-controller { 6308734e05SDamien Le Moal #interrupt-cells = <1>; 6408734e05SDamien Le Moal interrupt-controller; 6508734e05SDamien Le Moal compatible = "riscv,cpu-intc"; 6608734e05SDamien Le Moal }; 6708734e05SDamien Le Moal }; 68d9d193deSConor Dooley 69d9d193deSConor Dooley cpu-map { 70d9d193deSConor Dooley cluster0 { 71d9d193deSConor Dooley core0 { 72d9d193deSConor Dooley cpu = <&cpu0>; 73d9d193deSConor Dooley }; 74d9d193deSConor Dooley 75d9d193deSConor Dooley core1 { 76d9d193deSConor Dooley cpu = <&cpu1>; 77d9d193deSConor Dooley }; 78d9d193deSConor Dooley }; 79d9d193deSConor Dooley }; 8008734e05SDamien Le Moal }; 8108734e05SDamien Le Moal 8208734e05SDamien Le Moal sram: memory@80000000 { 8308734e05SDamien Le Moal device_type = "memory"; 84465c1274SConor Dooley reg = <0x80000000 0x400000>, /* sram0 4 MiB */ 85465c1274SConor Dooley <0x80400000 0x200000>, /* sram1 2 MiB */ 86465c1274SConor Dooley <0x80600000 0x200000>; /* aisram 2 MiB */ 87465c1274SConor Dooley }; 88465c1274SConor Dooley 89465c1274SConor Dooley sram_controller: memory-controller { 9067d96729SDamien Le Moal compatible = "canaan,k210-sram"; 9167d96729SDamien Le Moal clocks = <&sysclk K210_CLK_SRAM0>, 9267d96729SDamien Le Moal <&sysclk K210_CLK_SRAM1>, 9367d96729SDamien Le Moal <&sysclk K210_CLK_AI>; 9467d96729SDamien Le Moal clock-names = "sram0", "sram1", "aisram"; 9508734e05SDamien Le Moal }; 9608734e05SDamien Le Moal 9708734e05SDamien Le Moal clocks { 9808734e05SDamien Le Moal in0: oscillator { 9908734e05SDamien Le Moal compatible = "fixed-clock"; 10008734e05SDamien Le Moal #clock-cells = <0>; 10108734e05SDamien Le Moal clock-frequency = <26000000>; 10208734e05SDamien Le Moal }; 10308734e05SDamien Le Moal }; 10408734e05SDamien Le Moal 10508734e05SDamien Le Moal soc { 10608734e05SDamien Le Moal #address-cells = <1>; 10708734e05SDamien Le Moal #size-cells = <1>; 10867d96729SDamien Le Moal compatible = "simple-bus"; 10908734e05SDamien Le Moal ranges; 11008734e05SDamien Le Moal interrupt-parent = <&plic0>; 11108734e05SDamien Le Moal 11267d96729SDamien Le Moal rom0: nvmem@1000 { 11367d96729SDamien Le Moal reg = <0x1000 0x1000>; 11467d96729SDamien Le Moal read-only; 11508734e05SDamien Le Moal }; 11608734e05SDamien Le Moal 11767d96729SDamien Le Moal clint0: timer@2000000 { 11867d96729SDamien Le Moal compatible = "canaan,k210-clint", "sifive,clint0"; 11908734e05SDamien Le Moal reg = <0x2000000 0xC000>; 12075c0dc04SGeert Uytterhoeven interrupts-extended = <&cpu0_intc 3>, <&cpu0_intc 7>, 12175c0dc04SGeert Uytterhoeven <&cpu1_intc 3>, <&cpu1_intc 7>; 12208734e05SDamien Le Moal }; 12308734e05SDamien Le Moal 12408734e05SDamien Le Moal plic0: interrupt-controller@c000000 { 12508734e05SDamien Le Moal #interrupt-cells = <1>; 12667d96729SDamien Le Moal #address-cells = <0>; 12767d96729SDamien Le Moal compatible = "canaan,k210-plic", "sifive,plic-1.0.0"; 12808734e05SDamien Le Moal reg = <0xC000000 0x4000000>; 12967d96729SDamien Le Moal interrupt-controller; 13074583f1bSNiklas Cassel interrupts-extended = <&cpu0_intc 11>, <&cpu0_intc 9>, 13174583f1bSNiklas Cassel <&cpu1_intc 11>, <&cpu1_intc 9>; 13208734e05SDamien Le Moal riscv,ndev = <65>; 13308734e05SDamien Le Moal }; 13408734e05SDamien Le Moal 13508734e05SDamien Le Moal uarths0: serial@38000000 { 13667d96729SDamien Le Moal compatible = "canaan,k210-uarths", "sifive,uart0"; 13708734e05SDamien Le Moal reg = <0x38000000 0x1000>; 13808734e05SDamien Le Moal interrupts = <33>; 13967d96729SDamien Le Moal clocks = <&sysclk K210_CLK_CPU>; 14067d96729SDamien Le Moal }; 14167d96729SDamien Le Moal 14267d96729SDamien Le Moal gpio0: gpio-controller@38001000 { 14367d96729SDamien Le Moal #interrupt-cells = <2>; 14467d96729SDamien Le Moal #gpio-cells = <2>; 14567d96729SDamien Le Moal compatible = "canaan,k210-gpiohs", "sifive,gpio0"; 14667d96729SDamien Le Moal reg = <0x38001000 0x1000>; 14767d96729SDamien Le Moal interrupt-controller; 14875c0dc04SGeert Uytterhoeven interrupts = <34>, <35>, <36>, <37>, <38>, <39>, <40>, 14975c0dc04SGeert Uytterhoeven <41>, <42>, <43>, <44>, <45>, <46>, <47>, 15075c0dc04SGeert Uytterhoeven <48>, <49>, <50>, <51>, <52>, <53>, <54>, 15175c0dc04SGeert Uytterhoeven <55>, <56>, <57>, <58>, <59>, <60>, <61>, 15275c0dc04SGeert Uytterhoeven <62>, <63>, <64>, <65>; 15367d96729SDamien Le Moal gpio-controller; 15467d96729SDamien Le Moal ngpios = <32>; 15567d96729SDamien Le Moal }; 15667d96729SDamien Le Moal 15767d96729SDamien Le Moal dmac0: dma-controller@50000000 { 15867d96729SDamien Le Moal compatible = "snps,axi-dma-1.01a"; 15967d96729SDamien Le Moal reg = <0x50000000 0x1000>; 16075c0dc04SGeert Uytterhoeven interrupts = <27>, <28>, <29>, <30>, <31>, <32>; 16167d96729SDamien Le Moal #dma-cells = <1>; 16267d96729SDamien Le Moal clocks = <&sysclk K210_CLK_DMA>, <&sysclk K210_CLK_DMA>; 16367d96729SDamien Le Moal clock-names = "core-clk", "cfgr-clk"; 16467d96729SDamien Le Moal resets = <&sysrst K210_RST_DMA>; 16567d96729SDamien Le Moal dma-channels = <6>; 16667d96729SDamien Le Moal snps,dma-masters = <2>; 16767d96729SDamien Le Moal snps,priority = <0 1 2 3 4 5>; 16867d96729SDamien Le Moal snps,data-width = <5>; 16967d96729SDamien Le Moal snps,block-size = <0x200000 0x200000 0x200000 17067d96729SDamien Le Moal 0x200000 0x200000 0x200000>; 17167d96729SDamien Le Moal snps,axi-max-burst-len = <256>; 17267d96729SDamien Le Moal }; 17367d96729SDamien Le Moal 17467d96729SDamien Le Moal apb0: bus@50200000 { 17567d96729SDamien Le Moal #address-cells = <1>; 17667d96729SDamien Le Moal #size-cells = <1>; 17767d96729SDamien Le Moal compatible = "simple-pm-bus"; 178*e19f975aSConor Dooley ranges = <0x50200000 0x50200000 0x200000>; 17967d96729SDamien Le Moal clocks = <&sysclk K210_CLK_APB0>; 18067d96729SDamien Le Moal 18167d96729SDamien Le Moal gpio1: gpio@50200000 { 18267d96729SDamien Le Moal #address-cells = <1>; 18367d96729SDamien Le Moal #size-cells = <0>; 18467d96729SDamien Le Moal compatible = "snps,dw-apb-gpio"; 18567d96729SDamien Le Moal reg = <0x50200000 0x80>; 18667d96729SDamien Le Moal clocks = <&sysclk K210_CLK_APB0>, 18767d96729SDamien Le Moal <&sysclk K210_CLK_GPIO>; 18867d96729SDamien Le Moal clock-names = "bus", "db"; 18967d96729SDamien Le Moal resets = <&sysrst K210_RST_GPIO>; 19067d96729SDamien Le Moal 19167d96729SDamien Le Moal gpio1_0: gpio-port@0 { 19267d96729SDamien Le Moal #gpio-cells = <2>; 19367d96729SDamien Le Moal #interrupt-cells = <2>; 19467d96729SDamien Le Moal compatible = "snps,dw-apb-gpio-port"; 19567d96729SDamien Le Moal reg = <0>; 19667d96729SDamien Le Moal interrupt-controller; 19767d96729SDamien Le Moal interrupts = <23>; 19867d96729SDamien Le Moal gpio-controller; 19967d96729SDamien Le Moal ngpios = <8>; 20067d96729SDamien Le Moal }; 20167d96729SDamien Le Moal }; 20267d96729SDamien Le Moal 20367d96729SDamien Le Moal uart1: serial@50210000 { 20467d96729SDamien Le Moal compatible = "snps,dw-apb-uart"; 20567d96729SDamien Le Moal reg = <0x50210000 0x100>; 20667d96729SDamien Le Moal interrupts = <11>; 20767d96729SDamien Le Moal clocks = <&sysclk K210_CLK_UART1>, 20867d96729SDamien Le Moal <&sysclk K210_CLK_APB0>; 20967d96729SDamien Le Moal clock-names = "baudclk", "apb_pclk"; 21067d96729SDamien Le Moal resets = <&sysrst K210_RST_UART1>; 21167d96729SDamien Le Moal reg-io-width = <4>; 21267d96729SDamien Le Moal reg-shift = <2>; 21367d96729SDamien Le Moal dcd-override; 21467d96729SDamien Le Moal dsr-override; 21567d96729SDamien Le Moal cts-override; 21667d96729SDamien Le Moal ri-override; 21767d96729SDamien Le Moal }; 21867d96729SDamien Le Moal 21967d96729SDamien Le Moal uart2: serial@50220000 { 22067d96729SDamien Le Moal compatible = "snps,dw-apb-uart"; 22167d96729SDamien Le Moal reg = <0x50220000 0x100>; 22267d96729SDamien Le Moal interrupts = <12>; 22367d96729SDamien Le Moal clocks = <&sysclk K210_CLK_UART2>, 22467d96729SDamien Le Moal <&sysclk K210_CLK_APB0>; 22567d96729SDamien Le Moal clock-names = "baudclk", "apb_pclk"; 22667d96729SDamien Le Moal resets = <&sysrst K210_RST_UART2>; 22767d96729SDamien Le Moal reg-io-width = <4>; 22867d96729SDamien Le Moal reg-shift = <2>; 22967d96729SDamien Le Moal dcd-override; 23067d96729SDamien Le Moal dsr-override; 23167d96729SDamien Le Moal cts-override; 23267d96729SDamien Le Moal ri-override; 23367d96729SDamien Le Moal }; 23467d96729SDamien Le Moal 23567d96729SDamien Le Moal uart3: serial@50230000 { 23667d96729SDamien Le Moal compatible = "snps,dw-apb-uart"; 23767d96729SDamien Le Moal reg = <0x50230000 0x100>; 23867d96729SDamien Le Moal interrupts = <13>; 23967d96729SDamien Le Moal clocks = <&sysclk K210_CLK_UART3>, 24067d96729SDamien Le Moal <&sysclk K210_CLK_APB0>; 24167d96729SDamien Le Moal clock-names = "baudclk", "apb_pclk"; 24267d96729SDamien Le Moal resets = <&sysrst K210_RST_UART3>; 24367d96729SDamien Le Moal reg-io-width = <4>; 24467d96729SDamien Le Moal reg-shift = <2>; 24567d96729SDamien Le Moal dcd-override; 24667d96729SDamien Le Moal dsr-override; 24767d96729SDamien Le Moal cts-override; 24867d96729SDamien Le Moal ri-override; 24967d96729SDamien Le Moal }; 25067d96729SDamien Le Moal 25167d96729SDamien Le Moal spi2: spi@50240000 { 25267d96729SDamien Le Moal compatible = "canaan,k210-spi"; 25367d96729SDamien Le Moal spi-slave; 25467d96729SDamien Le Moal reg = <0x50240000 0x100>; 25567d96729SDamien Le Moal #address-cells = <0>; 25667d96729SDamien Le Moal #size-cells = <0>; 25767d96729SDamien Le Moal interrupts = <3>; 25867d96729SDamien Le Moal clocks = <&sysclk K210_CLK_SPI2>, 25967d96729SDamien Le Moal <&sysclk K210_CLK_APB0>; 26067d96729SDamien Le Moal clock-names = "ssi_clk", "pclk"; 26167d96729SDamien Le Moal resets = <&sysrst K210_RST_SPI2>; 26267d96729SDamien Le Moal }; 26367d96729SDamien Le Moal 26467d96729SDamien Le Moal i2s0: i2s@50250000 { 2659bd61febSConor Dooley compatible = "canaan,k210-i2s", "snps,designware-i2s"; 26667d96729SDamien Le Moal reg = <0x50250000 0x200>; 26767d96729SDamien Le Moal interrupts = <5>; 26867d96729SDamien Le Moal clocks = <&sysclk K210_CLK_I2S0>; 26967d96729SDamien Le Moal clock-names = "i2sclk"; 27067d96729SDamien Le Moal resets = <&sysrst K210_RST_I2S0>; 27167d96729SDamien Le Moal }; 27267d96729SDamien Le Moal 27367d96729SDamien Le Moal i2s1: i2s@50260000 { 2749bd61febSConor Dooley compatible = "canaan,k210-i2s", "snps,designware-i2s"; 27567d96729SDamien Le Moal reg = <0x50260000 0x200>; 27667d96729SDamien Le Moal interrupts = <6>; 27767d96729SDamien Le Moal clocks = <&sysclk K210_CLK_I2S1>; 27867d96729SDamien Le Moal clock-names = "i2sclk"; 27967d96729SDamien Le Moal resets = <&sysrst K210_RST_I2S1>; 28067d96729SDamien Le Moal }; 28167d96729SDamien Le Moal 28267d96729SDamien Le Moal i2s2: i2s@50270000 { 2839bd61febSConor Dooley compatible = "canaan,k210-i2s", "snps,designware-i2s"; 28467d96729SDamien Le Moal reg = <0x50270000 0x200>; 28567d96729SDamien Le Moal interrupts = <7>; 28667d96729SDamien Le Moal clocks = <&sysclk K210_CLK_I2S2>; 28767d96729SDamien Le Moal clock-names = "i2sclk"; 28867d96729SDamien Le Moal resets = <&sysrst K210_RST_I2S2>; 28967d96729SDamien Le Moal }; 29067d96729SDamien Le Moal 29167d96729SDamien Le Moal i2c0: i2c@50280000 { 29267d96729SDamien Le Moal compatible = "snps,designware-i2c"; 29367d96729SDamien Le Moal reg = <0x50280000 0x100>; 29467d96729SDamien Le Moal interrupts = <8>; 29567d96729SDamien Le Moal clocks = <&sysclk K210_CLK_I2C0>, 29667d96729SDamien Le Moal <&sysclk K210_CLK_APB0>; 29767d96729SDamien Le Moal clock-names = "ref", "pclk"; 29867d96729SDamien Le Moal resets = <&sysrst K210_RST_I2C0>; 29967d96729SDamien Le Moal }; 30067d96729SDamien Le Moal 30167d96729SDamien Le Moal i2c1: i2c@50290000 { 30267d96729SDamien Le Moal compatible = "snps,designware-i2c"; 30367d96729SDamien Le Moal reg = <0x50290000 0x100>; 30467d96729SDamien Le Moal interrupts = <9>; 30567d96729SDamien Le Moal clocks = <&sysclk K210_CLK_I2C1>, 30667d96729SDamien Le Moal <&sysclk K210_CLK_APB0>; 30767d96729SDamien Le Moal clock-names = "ref", "pclk"; 30867d96729SDamien Le Moal resets = <&sysrst K210_RST_I2C1>; 30967d96729SDamien Le Moal }; 31067d96729SDamien Le Moal 31167d96729SDamien Le Moal i2c2: i2c@502a0000 { 31267d96729SDamien Le Moal compatible = "snps,designware-i2c"; 31367d96729SDamien Le Moal reg = <0x502A0000 0x100>; 31467d96729SDamien Le Moal interrupts = <10>; 31567d96729SDamien Le Moal clocks = <&sysclk K210_CLK_I2C2>, 31667d96729SDamien Le Moal <&sysclk K210_CLK_APB0>; 31767d96729SDamien Le Moal clock-names = "ref", "pclk"; 31867d96729SDamien Le Moal resets = <&sysrst K210_RST_I2C2>; 31967d96729SDamien Le Moal }; 32067d96729SDamien Le Moal 32167d96729SDamien Le Moal fpioa: pinmux@502b0000 { 32267d96729SDamien Le Moal compatible = "canaan,k210-fpioa"; 32367d96729SDamien Le Moal reg = <0x502B0000 0x100>; 32467d96729SDamien Le Moal clocks = <&sysclk K210_CLK_FPIOA>, 32567d96729SDamien Le Moal <&sysclk K210_CLK_APB0>; 32667d96729SDamien Le Moal clock-names = "ref", "pclk"; 32767d96729SDamien Le Moal resets = <&sysrst K210_RST_FPIOA>; 32867d96729SDamien Le Moal canaan,k210-sysctl-power = <&sysctl 108>; 32967d96729SDamien Le Moal }; 33067d96729SDamien Le Moal 33167d96729SDamien Le Moal timer0: timer@502d0000 { 33267d96729SDamien Le Moal compatible = "snps,dw-apb-timer"; 3333f64510eSConor Dooley reg = <0x502D0000 0x14>; 3343f64510eSConor Dooley interrupts = <14>; 33567d96729SDamien Le Moal clocks = <&sysclk K210_CLK_TIMER0>, 33667d96729SDamien Le Moal <&sysclk K210_CLK_APB0>; 33767d96729SDamien Le Moal clock-names = "timer", "pclk"; 33867d96729SDamien Le Moal resets = <&sysrst K210_RST_TIMER0>; 33967d96729SDamien Le Moal }; 34067d96729SDamien Le Moal 3413f64510eSConor Dooley timer1: timer@502d0014 { 34267d96729SDamien Le Moal compatible = "snps,dw-apb-timer"; 3433f64510eSConor Dooley reg = <0x502D0014 0x14>; 3443f64510eSConor Dooley interrupts = <15>; 3453f64510eSConor Dooley clocks = <&sysclk K210_CLK_TIMER0>, 3463f64510eSConor Dooley <&sysclk K210_CLK_APB0>; 3473f64510eSConor Dooley clock-names = "timer", "pclk"; 3483f64510eSConor Dooley resets = <&sysrst K210_RST_TIMER0>; 3493f64510eSConor Dooley }; 3503f64510eSConor Dooley 3513f64510eSConor Dooley timer2: timer@502e0000 { 3523f64510eSConor Dooley compatible = "snps,dw-apb-timer"; 3533f64510eSConor Dooley reg = <0x502E0000 0x14>; 3543f64510eSConor Dooley interrupts = <16>; 35567d96729SDamien Le Moal clocks = <&sysclk K210_CLK_TIMER1>, 35667d96729SDamien Le Moal <&sysclk K210_CLK_APB0>; 35767d96729SDamien Le Moal clock-names = "timer", "pclk"; 35867d96729SDamien Le Moal resets = <&sysrst K210_RST_TIMER1>; 35967d96729SDamien Le Moal }; 36067d96729SDamien Le Moal 3613f64510eSConor Dooley timer3: timer@502e0014 { 36267d96729SDamien Le Moal compatible = "snps,dw-apb-timer"; 3633f64510eSConor Dooley reg = <0x502E0014 0x114>; 3643f64510eSConor Dooley interrupts = <17>; 3653f64510eSConor Dooley clocks = <&sysclk K210_CLK_TIMER1>, 3663f64510eSConor Dooley <&sysclk K210_CLK_APB0>; 3673f64510eSConor Dooley clock-names = "timer", "pclk"; 3683f64510eSConor Dooley resets = <&sysrst K210_RST_TIMER1>; 3693f64510eSConor Dooley }; 3703f64510eSConor Dooley 3713f64510eSConor Dooley timer4: timer@502f0000 { 3723f64510eSConor Dooley compatible = "snps,dw-apb-timer"; 3733f64510eSConor Dooley reg = <0x502F0000 0x14>; 3743f64510eSConor Dooley interrupts = <18>; 3753f64510eSConor Dooley clocks = <&sysclk K210_CLK_TIMER2>, 3763f64510eSConor Dooley <&sysclk K210_CLK_APB0>; 3773f64510eSConor Dooley clock-names = "timer", "pclk"; 3783f64510eSConor Dooley resets = <&sysrst K210_RST_TIMER2>; 3793f64510eSConor Dooley }; 3803f64510eSConor Dooley 3813f64510eSConor Dooley timer5: timer@502f0014 { 3823f64510eSConor Dooley compatible = "snps,dw-apb-timer"; 3833f64510eSConor Dooley reg = <0x502F0014 0x14>; 3843f64510eSConor Dooley interrupts = <19>; 38567d96729SDamien Le Moal clocks = <&sysclk K210_CLK_TIMER2>, 38667d96729SDamien Le Moal <&sysclk K210_CLK_APB0>; 38767d96729SDamien Le Moal clock-names = "timer", "pclk"; 38867d96729SDamien Le Moal resets = <&sysrst K210_RST_TIMER2>; 38967d96729SDamien Le Moal }; 39067d96729SDamien Le Moal }; 39167d96729SDamien Le Moal 39267d96729SDamien Le Moal apb1: bus@50400000 { 39367d96729SDamien Le Moal #address-cells = <1>; 39467d96729SDamien Le Moal #size-cells = <1>; 39567d96729SDamien Le Moal compatible = "simple-pm-bus"; 396*e19f975aSConor Dooley ranges = <0x50400000 0x50400000 0x40100>; 39767d96729SDamien Le Moal clocks = <&sysclk K210_CLK_APB1>; 39867d96729SDamien Le Moal 39967d96729SDamien Le Moal wdt0: watchdog@50400000 { 40067d96729SDamien Le Moal compatible = "snps,dw-wdt"; 40167d96729SDamien Le Moal reg = <0x50400000 0x100>; 40267d96729SDamien Le Moal interrupts = <21>; 40367d96729SDamien Le Moal clocks = <&sysclk K210_CLK_WDT0>, 40467d96729SDamien Le Moal <&sysclk K210_CLK_APB1>; 40567d96729SDamien Le Moal clock-names = "tclk", "pclk"; 40667d96729SDamien Le Moal resets = <&sysrst K210_RST_WDT0>; 40767d96729SDamien Le Moal }; 40867d96729SDamien Le Moal 40967d96729SDamien Le Moal wdt1: watchdog@50410000 { 41067d96729SDamien Le Moal compatible = "snps,dw-wdt"; 41167d96729SDamien Le Moal reg = <0x50410000 0x100>; 41267d96729SDamien Le Moal interrupts = <22>; 41367d96729SDamien Le Moal clocks = <&sysclk K210_CLK_WDT1>, 41467d96729SDamien Le Moal <&sysclk K210_CLK_APB1>; 41567d96729SDamien Le Moal clock-names = "tclk", "pclk"; 41667d96729SDamien Le Moal resets = <&sysrst K210_RST_WDT1>; 41767d96729SDamien Le Moal }; 41867d96729SDamien Le Moal 41967d96729SDamien Le Moal sysctl: syscon@50440000 { 42067d96729SDamien Le Moal compatible = "canaan,k210-sysctl", 42167d96729SDamien Le Moal "syscon", "simple-mfd"; 42267d96729SDamien Le Moal reg = <0x50440000 0x100>; 42367d96729SDamien Le Moal clocks = <&sysclk K210_CLK_APB1>; 42467d96729SDamien Le Moal clock-names = "pclk"; 42567d96729SDamien Le Moal 42667d96729SDamien Le Moal sysclk: clock-controller { 42767d96729SDamien Le Moal #clock-cells = <1>; 42867d96729SDamien Le Moal compatible = "canaan,k210-clk"; 42967d96729SDamien Le Moal clocks = <&in0>; 43067d96729SDamien Le Moal }; 43167d96729SDamien Le Moal 43267d96729SDamien Le Moal sysrst: reset-controller { 43367d96729SDamien Le Moal compatible = "canaan,k210-rst"; 43467d96729SDamien Le Moal #reset-cells = <1>; 43567d96729SDamien Le Moal }; 43667d96729SDamien Le Moal 43767d96729SDamien Le Moal reboot: syscon-reboot { 43867d96729SDamien Le Moal compatible = "syscon-reboot"; 43967d96729SDamien Le Moal regmap = <&sysctl>; 44067d96729SDamien Le Moal offset = <48>; 44167d96729SDamien Le Moal mask = <1>; 44267d96729SDamien Le Moal value = <1>; 44367d96729SDamien Le Moal }; 44467d96729SDamien Le Moal }; 44567d96729SDamien Le Moal }; 44667d96729SDamien Le Moal 44767d96729SDamien Le Moal apb2: bus@52000000 { 44867d96729SDamien Le Moal #address-cells = <1>; 44967d96729SDamien Le Moal #size-cells = <1>; 45067d96729SDamien Le Moal compatible = "simple-pm-bus"; 451*e19f975aSConor Dooley ranges = <0x52000000 0x52000000 0x2000200>; 45267d96729SDamien Le Moal clocks = <&sysclk K210_CLK_APB2>; 45367d96729SDamien Le Moal 45467d96729SDamien Le Moal spi0: spi@52000000 { 45567d96729SDamien Le Moal #address-cells = <1>; 45667d96729SDamien Le Moal #size-cells = <0>; 45767d96729SDamien Le Moal compatible = "canaan,k210-spi"; 45867d96729SDamien Le Moal reg = <0x52000000 0x100>; 45967d96729SDamien Le Moal interrupts = <1>; 46067d96729SDamien Le Moal clocks = <&sysclk K210_CLK_SPI0>, 46167d96729SDamien Le Moal <&sysclk K210_CLK_APB2>; 46267d96729SDamien Le Moal clock-names = "ssi_clk", "pclk"; 46367d96729SDamien Le Moal resets = <&sysrst K210_RST_SPI0>; 46467d96729SDamien Le Moal reset-names = "spi"; 46567d96729SDamien Le Moal num-cs = <4>; 46667d96729SDamien Le Moal reg-io-width = <4>; 46767d96729SDamien Le Moal }; 46867d96729SDamien Le Moal 46967d96729SDamien Le Moal spi1: spi@53000000 { 47067d96729SDamien Le Moal #address-cells = <1>; 47167d96729SDamien Le Moal #size-cells = <0>; 47267d96729SDamien Le Moal compatible = "canaan,k210-spi"; 47367d96729SDamien Le Moal reg = <0x53000000 0x100>; 47467d96729SDamien Le Moal interrupts = <2>; 47567d96729SDamien Le Moal clocks = <&sysclk K210_CLK_SPI1>, 47667d96729SDamien Le Moal <&sysclk K210_CLK_APB2>; 47767d96729SDamien Le Moal clock-names = "ssi_clk", "pclk"; 47867d96729SDamien Le Moal resets = <&sysrst K210_RST_SPI1>; 47967d96729SDamien Le Moal reset-names = "spi"; 48067d96729SDamien Le Moal num-cs = <4>; 48167d96729SDamien Le Moal reg-io-width = <4>; 48267d96729SDamien Le Moal }; 48367d96729SDamien Le Moal 48467d96729SDamien Le Moal spi3: spi@54000000 { 48567d96729SDamien Le Moal #address-cells = <1>; 48667d96729SDamien Le Moal #size-cells = <0>; 48767d96729SDamien Le Moal compatible = "snps,dwc-ssi-1.01a"; 48867d96729SDamien Le Moal reg = <0x54000000 0x200>; 48967d96729SDamien Le Moal interrupts = <4>; 49067d96729SDamien Le Moal clocks = <&sysclk K210_CLK_SPI3>, 49167d96729SDamien Le Moal <&sysclk K210_CLK_APB2>; 49267d96729SDamien Le Moal clock-names = "ssi_clk", "pclk"; 49367d96729SDamien Le Moal resets = <&sysrst K210_RST_SPI3>; 49467d96729SDamien Le Moal reset-names = "spi"; 495719a85a2SConor Dooley 49667d96729SDamien Le Moal num-cs = <4>; 49767d96729SDamien Le Moal reg-io-width = <4>; 49867d96729SDamien Le Moal }; 49908734e05SDamien Le Moal }; 50008734e05SDamien Le Moal }; 50108734e05SDamien Le Moal}; 502