xref: /linux/arch/arm/boot/dts/cirrus/ep93xx-edb9302.dts (revision c7546e2c3cb739a3c1a2f5acaf9bb629d401afe5)
1// SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
2/*
3 * Device Tree file for Cirrus Logic EDB9302 board based on EP9302 SoC
4 */
5/dts-v1/;
6#include "ep93xx.dtsi"
7
8/ {
9	#address-cells = <1>;
10	#size-cells = <1>;
11	compatible = "cirrus,edb9302", "cirrus,ep9301";
12	model = "cirrus,edb9302";
13
14	chosen {
15	};
16
17	memory@0 {
18		device_type = "memory";
19		/* should be set from ATAGS */
20		reg = <0x0000000 0x800000>,
21		      <0x1000000 0x800000>,
22		      <0x4000000 0x800000>,
23		      <0x5000000 0x800000>;
24	};
25
26	sound {
27		compatible = "audio-graph-card2";
28		label = "EDB93XX";
29		links = <&i2s_port>;
30	};
31
32	leds {
33		compatible = "gpio-leds";
34		led-0 {
35			label = "grled";
36			gpios = <&gpio4 0 GPIO_ACTIVE_HIGH>;
37			linux,default-trigger = "heartbeat";
38			function = LED_FUNCTION_HEARTBEAT;
39		};
40
41		led-1 {
42			label = "rdled";
43			gpios = <&gpio4 1 GPIO_ACTIVE_HIGH>;
44			function = LED_FUNCTION_FAULT;
45		};
46	};
47};
48
49&adc {
50	status = "okay";
51};
52
53&ebi {
54	flash@60000000 {
55		compatible = "cfi-flash";
56		reg = <0x60000000 0x1000000>;
57		bank-width = <2>;
58	};
59};
60
61&eth0 {
62	phy-handle = <&phy0>;
63};
64
65&gpio0 {
66	gpio-ranges = <&syscon 0 153 1>,
67		      <&syscon 1 152 1>,
68		      <&syscon 2 151 1>,
69		      <&syscon 3 148 1>,
70		      <&syscon 4 147 1>,
71		      <&syscon 5 146 1>,
72		      <&syscon 6 145 1>,
73		      <&syscon 7 144 1>;
74};
75
76&gpio1 {
77	gpio-ranges = <&syscon 0 143 1>,
78		      <&syscon 1 142 1>,
79		      <&syscon 2 141 1>,
80		      <&syscon 3 140 1>,
81		      <&syscon 4 165 1>,
82		      <&syscon 5 164 1>,
83		      <&syscon 6 163 1>,
84		      <&syscon 7 160 1>;
85};
86
87&gpio2 {
88	gpio-ranges = <&syscon 0 115 1>;
89};
90
91/* edb9302 doesn't have GPIO Port D present */
92&gpio3 {
93	status = "disabled";
94};
95
96&gpio4 {
97	gpio-ranges = <&syscon 0 97 2>;
98};
99
100&gpio5 {
101	gpio-ranges = <&syscon 1 170 1>,
102		      <&syscon 2 169 1>,
103		      <&syscon 3 168 1>;
104};
105
106&gpio6 {
107	gpio-ranges = <&syscon 0 87 2>;
108};
109
110&gpio7 {
111	gpio-ranges = <&syscon 2 199 4>;
112};
113
114&i2s {
115	pinctrl-names = "default";
116	pinctrl-0 = <&i2s_on_ac97_pins>;
117	status = "okay";
118	i2s_port: port {
119		i2s_ep: endpoint {
120			system-clock-direction-out;
121			frame-master;
122			bitclock-master;
123			mclk-fs = <256>;
124			dai-format = "i2s";
125			convert-channels = <2>;
126			convert-sample-format = "s32_le";
127			remote-endpoint = <&codec_ep>;
128		};
129	};
130};
131
132&mdio0 {
133	phy0: ethernet-phy@1 {
134		reg = <1>;
135		device_type = "ethernet-phy";
136	};
137};
138
139&spi0 {
140	cs-gpios = <&gpio0 6 GPIO_ACTIVE_LOW
141		    &gpio0 7 GPIO_ACTIVE_LOW>;
142	dmas = <&dma1 10 2>, <&dma1 10 1>;
143	dma-names = "rx", "tx";
144	status = "okay";
145
146	cs4271: codec@0 {
147		compatible = "cirrus,cs4271";
148		reg = <0>;
149		#sound-dai-cells = <0>;
150		spi-max-frequency = <6000000>;
151		spi-cpol;
152		spi-cpha;
153		reset-gpios = <&gpio0 1 GPIO_ACTIVE_LOW>;
154		port {
155			codec_ep: endpoint {
156				remote-endpoint = <&i2s_ep>;
157			};
158		};
159	};
160
161	at25f1024: eeprom@1 {
162		compatible = "atmel,at25";
163		reg = <1>;
164		address-width = <8>;
165		size = <0x20000>;
166		pagesize = <256>;
167		spi-max-frequency = <20000000>;
168	};
169};
170
171&uart0 {
172	status = "okay";
173};
174
175&uart1 {
176	status = "okay";
177};
178
179&usb0 {
180	status = "okay";
181};
182