Linux Audio

Check our new training course

Loading...
Note: File does not exist in v3.5.6.
  1// SPDX-License-Identifier: (GPL-2.0+ OR BSD-3-Clause)
  2/*
  3 * Copyright (C) Protonic Holland
  4 * Author: David Jander <david@protonic.nl>
  5 */
  6/dts-v1/;
  7
  8#include "stm32mp151a-prtt1l.dtsi"
  9
 10/ {
 11	model = "Protonic PRTT1C";
 12	compatible = "prt,prtt1c", "st,stm32mp151";
 13
 14	clock_ksz9031: clock-ksz9031 {
 15		compatible = "fixed-clock";
 16		#clock-cells = <0>;
 17		clock-frequency = <25000000>;
 18	};
 19
 20	clock_sja1105: clock-sja1105 {
 21		compatible = "fixed-clock";
 22		#clock-cells = <0>;
 23		clock-frequency = <25000000>;
 24	};
 25
 26	mdio0: mdio {
 27		compatible = "virtual,mdio-gpio";
 28		#address-cells = <1>;
 29		#size-cells = <0>;
 30		gpios = <&gpioc 1 GPIO_ACTIVE_HIGH
 31			 &gpioa 2 GPIO_ACTIVE_HIGH>;
 32
 33	};
 34
 35	wifi_pwrseq: wifi-pwrseq {
 36		compatible = "mmc-pwrseq-simple";
 37		reset-gpios = <&gpiod 8 GPIO_ACTIVE_LOW>;
 38	};
 39};
 40
 41&ethernet0 {
 42	fixed-link {
 43		speed = <100>;
 44		full-duplex;
 45	};
 46};
 47
 48&gpioa {
 49	gpio-line-names =
 50		"", "", "", "PHY0_nRESET", "PHY0_nINT", "", "", "",
 51		"", "", "", "", "", "", "", "SPI1_nSS";
 52};
 53
 54&gpiod {
 55	gpio-line-names =
 56		"", "", "", "", "", "", "", "",
 57		"WFM_RESET", "", "", "", "", "", "", "";
 58};
 59
 60&gpioe {
 61	gpio-line-names =
 62		"SDMMC2_nRESET", "", "", "", "", "", "SPI1_nRESET", "",
 63		"", "", "", "", "WFM_nIRQ", "", "", "";
 64};
 65
 66&gpiog {
 67	gpio-line-names =
 68		"", "", "", "", "", "", "", "PHY3_nINT",
 69		"PHY1_nINT", "PHY3_nRESET", "PHY2_nINT", "PHY2_nRESET",
 70		"PHY1_nRESET", "SPE1_PWR", "SPE0_PWR", "";
 71};
 72
 73&mdio0 {
 74	/* All this DP83TD510E PHYs can't be probed before switch@0 is
 75	 * probed so we need to use compatible with PHYid
 76	 */
 77	/* TI DP83TD510E */
 78	t1l0_phy: ethernet-phy@6 {
 79		compatible = "ethernet-phy-id2000.0181";
 80		reg = <6>;
 81		interrupts-extended = <&gpioa 4 IRQ_TYPE_LEVEL_LOW>;
 82		reset-gpios = <&gpioa 3 GPIO_ACTIVE_LOW>;
 83		reset-assert-us = <10>;
 84		reset-deassert-us = <35>;
 85	};
 86
 87	/* TI DP83TD510E */
 88	t1l1_phy: ethernet-phy@7 {
 89		compatible = "ethernet-phy-id2000.0181";
 90		reg = <7>;
 91		interrupts-extended = <&gpiog 8 IRQ_TYPE_LEVEL_LOW>;
 92		reset-gpios = <&gpiog 12 GPIO_ACTIVE_LOW>;
 93		reset-assert-us = <10>;
 94		reset-deassert-us = <35>;
 95	};
 96
 97	/* TI DP83TD510E */
 98	t1l2_phy: ethernet-phy@10 {
 99		compatible = "ethernet-phy-id2000.0181";
100		reg = <10>;
101		interrupts-extended = <&gpiog 10 IRQ_TYPE_LEVEL_LOW>;
102		reset-gpios = <&gpiog 11 GPIO_ACTIVE_LOW>;
103		reset-assert-us = <10>;
104		reset-deassert-us = <35>;
105	};
106
107	/* Micrel KSZ9031 */
108	rj45_phy: ethernet-phy@2 {
109		reg = <2>;
110		interrupts-extended = <&gpiog 7 IRQ_TYPE_LEVEL_LOW>;
111		reset-gpios = <&gpiog 9 GPIO_ACTIVE_LOW>;
112		reset-assert-us = <10000>;
113		reset-deassert-us = <1000>;
114
115		clocks = <&clock_ksz9031>;
116	};
117};
118
119&qspi {
120	status = "disabled";
121};
122
123&sdmmc2 {
124	pinctrl-names = "default", "opendrain", "sleep";
125	pinctrl-0 = <&sdmmc2_b4_pins_a &sdmmc2_d47_pins_a>;
126	pinctrl-1 = <&sdmmc2_b4_od_pins_a &sdmmc2_d47_pins_a>;
127	pinctrl-2 = <&sdmmc2_b4_sleep_pins_a &sdmmc2_d47_sleep_pins_a>;
128	non-removable;
129	no-sd;
130	no-sdio;
131	no-1-8-v;
132	st,neg-edge;
133	bus-width = <8>;
134	vmmc-supply = <&reg_3v3>;
135	vqmmc-supply = <&reg_3v3>;
136	status = "okay";
137};
138
139&sdmmc2_b4_od_pins_a {
140	pins1 {
141		pinmux = <STM32_PINMUX('B', 14, AF9)>, /* SDMMC2_D0 */
142			 <STM32_PINMUX('B', 7, AF10)>, /* SDMMC2_D1 */
143			 <STM32_PINMUX('B', 3, AF9)>, /* SDMMC2_D2 */
144			 <STM32_PINMUX('B', 4, AF9)>; /* SDMMC2_D3 */
145	};
146};
147
148&sdmmc2_b4_pins_a {
149	pins1 {
150		pinmux = <STM32_PINMUX('B', 14, AF9)>, /* SDMMC2_D0 */
151			 <STM32_PINMUX('B', 7, AF10)>, /* SDMMC2_D1 */
152			 <STM32_PINMUX('B', 3, AF9)>, /* SDMMC2_D2 */
153			 <STM32_PINMUX('B', 4, AF9)>, /* SDMMC2_D3 */
154			 <STM32_PINMUX('G', 6, AF10)>; /* SDMMC2_CMD */
155	};
156};
157
158&sdmmc2_b4_sleep_pins_a {
159	pins {
160		pinmux = <STM32_PINMUX('B', 14, ANALOG)>, /* SDMMC2_D0 */
161			 <STM32_PINMUX('B', 7, ANALOG)>, /* SDMMC2_D1 */
162			 <STM32_PINMUX('B', 3, ANALOG)>, /* SDMMC2_D2 */
163			 <STM32_PINMUX('B', 4, ANALOG)>, /* SDMMC2_D3 */
164			 <STM32_PINMUX('E', 3, ANALOG)>, /* SDMMC2_CK */
165			 <STM32_PINMUX('G', 6, ANALOG)>; /* SDMMC2_CMD */
166	};
167};
168
169&sdmmc2_d47_pins_a {
170	pins {
171		pinmux = <STM32_PINMUX('A', 8, AF9)>, /* SDMMC2_D4 */
172			 <STM32_PINMUX('A', 9, AF10)>, /* SDMMC2_D5 */
173			 <STM32_PINMUX('C', 6, AF10)>, /* SDMMC2_D6 */
174			 <STM32_PINMUX('C', 7, AF10)>; /* SDMMC2_D7 */
175	};
176};
177
178&sdmmc2_d47_sleep_pins_a {
179	pins {
180		pinmux = <STM32_PINMUX('A', 8, ANALOG)>, /* SDMMC2_D4 */
181			 <STM32_PINMUX('A', 9, ANALOG)>, /* SDMMC2_D5 */
182			 <STM32_PINMUX('C', 6, ANALOG)>, /* SDMMC2_D6 */
183			 <STM32_PINMUX('D', 3, ANALOG)>; /* SDMMC2_D7 */
184	};
185};
186
187&sdmmc3 {
188	pinctrl-names = "default", "opendrain", "sleep";
189	pinctrl-0 = <&sdmmc3_b4_pins_b>;
190	pinctrl-1 = <&sdmmc3_b4_od_pins_b>;
191	pinctrl-2 = <&sdmmc3_b4_sleep_pins_b>;
192	non-removable;
193	no-1-8-v;
194	st,neg-edge;
195	bus-width = <4>;
196	vmmc-supply = <&reg_3v3>;
197	vqmmc-supply = <&reg_3v3>;
198	mmc-pwrseq = <&wifi_pwrseq>;
199	#address-cells = <1>;
200	#size-cells = <0>;
201	status = "okay";
202
203	mmc@1 {
204		compatible = "prt,prtt1c-wfm200", "silabs,wf200";
205		reg = <1>;
206	};
207};
208
209&sdmmc3_b4_od_pins_b {
210	pins1 {
211		pinmux = <STM32_PINMUX('D', 1, AF10)>, /* SDMMC3_D0 */
212			 <STM32_PINMUX('D', 4, AF10)>, /* SDMMC3_D1 */
213			 <STM32_PINMUX('D', 5, AF10)>, /* SDMMC3_D2 */
214			 <STM32_PINMUX('D', 7, AF10)>; /* SDMMC3_D3 */
215	};
216};
217
218&sdmmc3_b4_pins_b {
219	pins1 {
220		pinmux = <STM32_PINMUX('D', 1, AF10)>, /* SDMMC3_D0 */
221			 <STM32_PINMUX('D', 4, AF10)>, /* SDMMC3_D1 */
222			 <STM32_PINMUX('D', 5, AF10)>, /* SDMMC3_D2 */
223			 <STM32_PINMUX('D', 7, AF10)>, /* SDMMC3_D3 */
224			 <STM32_PINMUX('D', 0, AF10)>; /* SDMMC3_CMD */
225	};
226};
227
228&sdmmc3_b4_sleep_pins_b {
229	pins {
230		pinmux = <STM32_PINMUX('D', 1, ANALOG)>, /* SDMMC3_D0 */
231			 <STM32_PINMUX('D', 4, ANALOG)>, /* SDMMC3_D1 */
232			 <STM32_PINMUX('D', 5, ANALOG)>, /* SDMMC3_D2 */
233			 <STM32_PINMUX('D', 7, ANALOG)>, /* SDMMC3_D3 */
234			 <STM32_PINMUX('G', 15, ANALOG)>, /* SDMMC3_CK */
235			 <STM32_PINMUX('D', 0, ANALOG)>; /* SDMMC3_CMD */
236	};
237};
238
239&spi1 {
240	pinctrl-0 = <&spi1_pins_b>;
241	pinctrl-names = "default";
242	cs-gpios = <&gpioa 15 GPIO_ACTIVE_LOW>;
243	/delete-property/dmas;
244	/delete-property/dma-names;
245	status = "okay";
246
247	switch@0 {
248		compatible = "nxp,sja1105q";
249		reg = <0>;
250		spi-max-frequency = <4000000>;
251		spi-rx-delay-us = <1>;
252		spi-tx-delay-us = <1>;
253		spi-cpha;
254
255		reset-gpios = <&gpioe 6 GPIO_ACTIVE_LOW>;
256
257		clocks = <&clock_sja1105>;
258
259		ports {
260			#address-cells = <1>;
261			#size-cells = <0>;
262
263			port@0 {
264				reg = <0>;
265				label = "t1l0";
266				phy-mode = "rmii";
267				phy-handle = <&t1l0_phy>;
268			};
269
270			port@1 {
271				reg = <1>;
272				label = "t1l1";
273				phy-mode = "rmii";
274				phy-handle = <&t1l1_phy>;
275			};
276
277			port@2 {
278				reg = <2>;
279				label = "t1l2";
280				phy-mode = "rmii";
281				phy-handle = <&t1l2_phy>;
282			};
283
284			port@3 {
285				reg = <3>;
286				label = "rj45";
287				phy-handle = <&rj45_phy>;
288				phy-mode = "rgmii-id";
289			};
290
291			port@4 {
292				reg = <4>;
293				label = "cpu";
294				ethernet = <&ethernet0>;
295				phy-mode = "rmii";
296
297				fixed-link {
298					speed = <100>;
299					full-duplex;
300				};
301			};
302		};
303	};
304};