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