blob: f5ad4a6213a002bc6cc97852cc795c5817f16884 [file] [log] [blame]
Stefan Roeseff7e4f02020-06-30 12:08:57 +02001// SPDX-License-Identifier: GPL-2.0+
2/*
3 * Marvell / Cavium Inc. CN73xx
4 */
5
6/dts-v1/;
7
Stefan Roesea078c652020-07-30 13:56:17 +02008#include <dt-bindings/clock/octeon-clock.h>
9
Stefan Roeseff7e4f02020-06-30 12:08:57 +020010/ {
11 #address-cells = <2>;
12 #size-cells = <2>;
13
14 soc0: soc@0 {
15 interrupt-parent = <&ciu3>;
16 compatible = "simple-bus";
17 #address-cells = <2>;
18 #size-cells = <2>;
19 ranges; /* Direct mapping */
20
21 ciu3: interrupt-controller@1010000000000 {
22 compatible = "cavium,octeon-7890-ciu3";
23 interrupt-controller;
24 /*
25 * Interrupts are specified by two parts:
26 * 1) Source number (20 significant bits)
27 * 2) Trigger type: (4 == level, 1 == edge)
28 */
29 #address-cells = <0>;
30 #interrupt-cells = <2>;
31 reg = <0x10100 0x00000000 0x0 0xb0000000>;
32 };
33
34 bootbus: bootbus@1180000000000 {
35 compatible = "cavium,octeon-3860-bootbus","simple-bus";
36 reg = <0x11800 0x00000000 0x0 0x200>;
37 /* The chip select number and offset */
38 #address-cells = <2>;
39 /* The size of the chip select region */
40 #size-cells = <1>;
41 };
42
Stefan Roesea078c652020-07-30 13:56:17 +020043 clk: clock {
44 compatible = "mrvl,octeon-clk";
45 #clock-cells = <1>;
46 u-boot,dm-pre-reloc;
47 };
48
Stefan Roesefad5ec52020-07-30 13:56:14 +020049 gpio: gpio-controller@1070000000800 {
50 #gpio-cells = <2>;
51 compatible = "cavium,octeon-7890-gpio";
52 reg = <0x10700 0x00000800 0x0 0x100>;
53 gpio-controller;
54 nr-gpios = <32>;
55 /* Interrupts are specified by two parts:
56 * 1) GPIO pin number (0..15)
57 * 2) Triggering (1 - edge rising
58 * 2 - edge falling
59 * 4 - level active high
60 * 8 - level active low)
61 */
62 interrupt-controller;
63 #interrupt-cells = <2>;
64 /* The GPIO pins connect to 16 consecutive CUI bits */
65 interrupts = <0x03000 4>, <0x03001 4>,
66 <0x03002 4>, <0x03003 4>,
67 <0x03004 4>, <0x03005 4>,
68 <0x03006 4>, <0x03007 4>,
69 <0x03008 4>, <0x03009 4>,
70 <0x0300a 4>, <0x0300b 4>,
71 <0x0300c 4>, <0x0300d 4>,
72 <0x0300e 4>, <0x0300f 4>;
73 };
74
Stefan Roeseff7e4f02020-06-30 12:08:57 +020075 reset: reset@1180006001600 {
76 compatible = "mrvl,cn7xxx-rst";
77 reg = <0x11800 0x06001600 0x0 0x200>;
78 };
79
80 uart0: serial@1180000000800 {
81 compatible = "cavium,octeon-3860-uart","ns16550";
82 reg = <0x11800 0x00000800 0x0 0x400>;
83 clock-frequency = <0>;
84 current-speed = <115200>;
85 reg-shift = <3>;
86 interrupts = <0x08000 4>;
87 };
88
89 uart1: serial@1180000000c00 {
90 compatible = "cavium,octeon-3860-uart","ns16550";
91 reg = <0x11800 0x00000c00 0x0 0x400>;
92 clock-frequency = <0>;
93 current-speed = <115200>;
94 reg-shift = <3>;
95 interrupts = <0x08040 4>;
96 };
Stefan Roese7ab93282020-07-30 13:56:15 +020097
98 i2c0: i2c@1180000001000 {
99 #address-cells = <1>;
100 #size-cells = <0>;
101 compatible = "cavium,octeon-7890-twsi";
102 reg = <0x11800 0x00001000 0x0 0x200>;
103 /* INT_ST, INT_TS, INT_CORE */
104 interrupts = <0x0b000 1>, <0x0b001 1>, <0x0b002 1>;
105 clock-frequency = <100000>;
Stefan Roesea078c652020-07-30 13:56:17 +0200106 clocks = <&clk OCTEON_CLK_IO>;
Stefan Roese7ab93282020-07-30 13:56:15 +0200107 };
108
109 i2c1: i2c@1180000001200 {
110 #address-cells = <1>;
111 #size-cells = <0>;
112 compatible = "cavium,octeon-7890-twsi";
113 reg = <0x11800 0x00001200 0x0 0x200>;
114 /* INT_ST, INT_TS, INT_CORE */
115 interrupts = <0x0b100 1>, <0x0b101 1>, <0x0b102 1>;
116 clock-frequency = <100000>;
Stefan Roesea078c652020-07-30 13:56:17 +0200117 clocks = <&clk OCTEON_CLK_IO>;
Stefan Roese7ab93282020-07-30 13:56:15 +0200118 };
Stefan Roese10324912020-07-30 13:56:19 +0200119
120 spi: spi@1070000001000 {
121 compatible = "cavium,octeon-3010-spi";
122 reg = <0x10700 0x00001000 0x0 0x100>;
123 interrupts = <0x05001 1>;
124 #address-cells = <1>;
125 #size-cells = <0>;
126 spi-max-frequency = <25000000>;
127 clocks = <&clk OCTEON_CLK_IO>;
128 };
Stefan Roeseff7e4f02020-06-30 12:08:57 +0200129 };
130};