Loading...
1// SPDX-License-Identifier: GPL-2.0-only
2/*
3 * Copyright (C) 2012 Marvell Technology Group Ltd.
4 * Author: Haojian Zhuang <haojian.zhuang@marvell.com>
5 */
6
7#include <dt-bindings/clock/marvell,pxa168.h>
8
9/ {
10 #address-cells = <1>;
11 #size-cells = <1>;
12
13 aliases {
14 serial0 = &uart1;
15 serial1 = &uart2;
16 serial2 = &uart3;
17 i2c0 = &twsi1;
18 i2c1 = &twsi2;
19 };
20
21 soc {
22 #address-cells = <1>;
23 #size-cells = <1>;
24 compatible = "simple-bus";
25 interrupt-parent = <&intc>;
26 ranges;
27
28 axi@d4200000 { /* AXI */
29 compatible = "mrvl,axi-bus", "simple-bus";
30 #address-cells = <1>;
31 #size-cells = <1>;
32 reg = <0xd4200000 0x00200000>;
33 ranges;
34
35 intc: interrupt-controller@d4282000 {
36 compatible = "mrvl,mmp-intc";
37 interrupt-controller;
38 #interrupt-cells = <1>;
39 reg = <0xd4282000 0x1000>;
40 mrvl,intc-nr-irqs = <64>;
41 };
42
43 };
44
45 apb@d4000000 { /* APB */
46 compatible = "mrvl,apb-bus", "simple-bus";
47 #address-cells = <1>;
48 #size-cells = <1>;
49 reg = <0xd4000000 0x00200000>;
50 ranges;
51
52 timer0: timer@d4014000 {
53 compatible = "mrvl,mmp-timer";
54 reg = <0xd4014000 0x100>;
55 interrupts = <13>;
56 clocks = <&soc_clocks PXA168_CLK_TIMER>;
57 resets = <&soc_clocks PXA168_CLK_TIMER>;
58 };
59
60 uart1: serial@d4017000 {
61 compatible = "mrvl,mmp-uart", "intel,xscale-uart";
62 reg = <0xd4017000 0x1000>;
63 reg-shift = <2>;
64 interrupts = <27>;
65 clocks = <&soc_clocks PXA168_CLK_UART0>;
66 resets = <&soc_clocks PXA168_CLK_UART0>;
67 status = "disabled";
68 };
69
70 uart2: serial@d4018000 {
71 compatible = "mrvl,mmp-uart", "intel,xscale-uart";
72 reg = <0xd4018000 0x1000>;
73 reg-shift = <2>;
74 interrupts = <28>;
75 clocks = <&soc_clocks PXA168_CLK_UART1>;
76 resets = <&soc_clocks PXA168_CLK_UART1>;
77 status = "disabled";
78 };
79
80 uart3: serial@d4026000 {
81 compatible = "mrvl,mmp-uart", "intel,xscale-uart";
82 reg = <0xd4026000 0x1000>;
83 reg-shift = <2>;
84 interrupts = <29>;
85 clocks = <&soc_clocks PXA168_CLK_UART2>;
86 resets = <&soc_clocks PXA168_CLK_UART2>;
87 status = "disabled";
88 };
89
90 gpio@d4019000 {
91 compatible = "marvell,mmp-gpio";
92 #address-cells = <1>;
93 #size-cells = <1>;
94 reg = <0xd4019000 0x1000>;
95 gpio-controller;
96 #gpio-cells = <2>;
97 interrupts = <49>;
98 clocks = <&soc_clocks PXA168_CLK_GPIO>;
99 resets = <&soc_clocks PXA168_CLK_GPIO>;
100 interrupt-names = "gpio_mux";
101 interrupt-controller;
102 #interrupt-cells = <2>;
103 ranges;
104
105 gcb0: gpio@d4019000 {
106 reg = <0xd4019000 0x4>;
107 };
108
109 gcb1: gpio@d4019004 {
110 reg = <0xd4019004 0x4>;
111 };
112
113 gcb2: gpio@d4019008 {
114 reg = <0xd4019008 0x4>;
115 };
116
117 gcb3: gpio@d4019100 {
118 reg = <0xd4019100 0x4>;
119 };
120 };
121
122 twsi1: i2c@d4011000 {
123 compatible = "mrvl,mmp-twsi";
124 #address-cells = <1>;
125 #size-cells = <0>;
126 reg = <0xd4011000 0x1000>;
127 interrupts = <7>;
128 clocks = <&soc_clocks PXA168_CLK_TWSI0>;
129 resets = <&soc_clocks PXA168_CLK_TWSI0>;
130 mrvl,i2c-fast-mode;
131 status = "disabled";
132 };
133
134 twsi2: i2c@d4025000 {
135 compatible = "mrvl,mmp-twsi";
136 #address-cells = <1>;
137 #size-cells = <0>;
138 reg = <0xd4025000 0x1000>;
139 interrupts = <58>;
140 clocks = <&soc_clocks PXA168_CLK_TWSI1>;
141 resets = <&soc_clocks PXA168_CLK_TWSI1>;
142 status = "disabled";
143 };
144
145 rtc: rtc@d4010000 {
146 compatible = "mrvl,mmp-rtc";
147 reg = <0xd4010000 0x1000>;
148 interrupts = <5>, <6>;
149 interrupt-names = "rtc 1Hz", "rtc alarm";
150 clocks = <&soc_clocks PXA168_CLK_RTC>;
151 resets = <&soc_clocks PXA168_CLK_RTC>;
152 status = "disabled";
153 };
154 };
155
156 soc_clocks: clocks{
157 compatible = "marvell,pxa168-clock";
158 reg = <0xd4050000 0x1000>,
159 <0xd4282800 0x400>,
160 <0xd4015000 0x1000>;
161 reg-names = "mpmu", "apmu", "apbc";
162 #clock-cells = <1>;
163 #reset-cells = <1>;
164 };
165 };
166};
1/*
2 * Copyright (C) 2012 Marvell Technology Group Ltd.
3 * Author: Haojian Zhuang <haojian.zhuang@marvell.com>
4 *
5 * This program is free software; you can redistribute it and/or modify
6 * it under the terms of the GNU General Public License version 2 as
7 * publishhed by the Free Software Foundation.
8 */
9
10#include "skeleton.dtsi"
11#include <dt-bindings/clock/marvell,pxa168.h>
12
13/ {
14 aliases {
15 serial0 = &uart1;
16 serial1 = &uart2;
17 serial2 = &uart3;
18 i2c0 = &twsi1;
19 i2c1 = &twsi2;
20 };
21
22 soc {
23 #address-cells = <1>;
24 #size-cells = <1>;
25 compatible = "simple-bus";
26 interrupt-parent = <&intc>;
27 ranges;
28
29 axi@d4200000 { /* AXI */
30 compatible = "mrvl,axi-bus", "simple-bus";
31 #address-cells = <1>;
32 #size-cells = <1>;
33 reg = <0xd4200000 0x00200000>;
34 ranges;
35
36 intc: interrupt-controller@d4282000 {
37 compatible = "mrvl,mmp-intc";
38 interrupt-controller;
39 #interrupt-cells = <1>;
40 reg = <0xd4282000 0x1000>;
41 mrvl,intc-nr-irqs = <64>;
42 };
43
44 };
45
46 apb@d4000000 { /* APB */
47 compatible = "mrvl,apb-bus", "simple-bus";
48 #address-cells = <1>;
49 #size-cells = <1>;
50 reg = <0xd4000000 0x00200000>;
51 ranges;
52
53 timer0: timer@d4014000 {
54 compatible = "mrvl,mmp-timer";
55 reg = <0xd4014000 0x100>;
56 interrupts = <13>;
57 };
58
59 uart1: uart@d4017000 {
60 compatible = "mrvl,mmp-uart";
61 reg = <0xd4017000 0x1000>;
62 interrupts = <27>;
63 clocks = <&soc_clocks PXA168_CLK_UART0>;
64 resets = <&soc_clocks PXA168_CLK_UART0>;
65 status = "disabled";
66 };
67
68 uart2: uart@d4018000 {
69 compatible = "mrvl,mmp-uart";
70 reg = <0xd4018000 0x1000>;
71 interrupts = <28>;
72 clocks = <&soc_clocks PXA168_CLK_UART1>;
73 resets = <&soc_clocks PXA168_CLK_UART1>;
74 status = "disabled";
75 };
76
77 uart3: uart@d4026000 {
78 compatible = "mrvl,mmp-uart";
79 reg = <0xd4026000 0x1000>;
80 interrupts = <29>;
81 clocks = <&soc_clocks PXA168_CLK_UART2>;
82 resets = <&soc_clocks PXA168_CLK_UART2>;
83 status = "disabled";
84 };
85
86 gpio@d4019000 {
87 compatible = "marvell,mmp-gpio";
88 #address-cells = <1>;
89 #size-cells = <1>;
90 reg = <0xd4019000 0x1000>;
91 gpio-controller;
92 #gpio-cells = <2>;
93 interrupts = <49>;
94 clocks = <&soc_clocks PXA168_CLK_GPIO>;
95 resets = <&soc_clocks PXA168_CLK_GPIO>;
96 interrupt-names = "gpio_mux";
97 interrupt-controller;
98 #interrupt-cells = <1>;
99 ranges;
100
101 gcb0: gpio@d4019000 {
102 reg = <0xd4019000 0x4>;
103 };
104
105 gcb1: gpio@d4019004 {
106 reg = <0xd4019004 0x4>;
107 };
108
109 gcb2: gpio@d4019008 {
110 reg = <0xd4019008 0x4>;
111 };
112
113 gcb3: gpio@d4019100 {
114 reg = <0xd4019100 0x4>;
115 };
116 };
117
118 twsi1: i2c@d4011000 {
119 compatible = "mrvl,mmp-twsi";
120 reg = <0xd4011000 0x1000>;
121 interrupts = <7>;
122 clocks = <&soc_clocks PXA168_CLK_TWSI0>;
123 resets = <&soc_clocks PXA168_CLK_TWSI0>;
124 mrvl,i2c-fast-mode;
125 status = "disabled";
126 };
127
128 twsi2: i2c@d4025000 {
129 compatible = "mrvl,mmp-twsi";
130 reg = <0xd4025000 0x1000>;
131 interrupts = <58>;
132 clocks = <&soc_clocks PXA168_CLK_TWSI1>;
133 resets = <&soc_clocks PXA168_CLK_TWSI1>;
134 status = "disabled";
135 };
136
137 rtc: rtc@d4010000 {
138 compatible = "mrvl,mmp-rtc";
139 reg = <0xd4010000 0x1000>;
140 interrupts = <5 6>;
141 interrupt-names = "rtc 1Hz", "rtc alarm";
142 clocks = <&soc_clocks PXA168_CLK_RTC>;
143 resets = <&soc_clocks PXA168_CLK_RTC>;
144 status = "disabled";
145 };
146 };
147
148 soc_clocks: clocks{
149 compatible = "marvell,pxa168-clock";
150 reg = <0xd4050000 0x1000>,
151 <0xd4282800 0x400>,
152 <0xd4015000 0x1000>;
153 reg-names = "mpmu", "apmu", "apbc";
154 #clock-cells = <1>;
155 #reset-cells = <1>;
156 };
157 };
158};