1724ba675SRob Herring// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
2724ba675SRob Herring/*
3724ba675SRob Herring * Copyright (c) 2021 Oleksij Rempel <kernel@pengutronix.de>, Pengutronix
4724ba675SRob Herring */
5724ba675SRob Herring/dts-v1/;
6724ba675SRob Herring#include "sama5d36.dtsi"
7724ba675SRob Herring
8724ba675SRob Herring/ {
9724ba675SRob Herring	model = "EVB-KSZ9477";
10724ba675SRob Herring	compatible = "microchip,sama5d3-ksz9477-evb", "atmel,sama5d36",
11724ba675SRob Herring		     "atmel,sama5d3", "atmel,sama5";
12724ba675SRob Herring
13724ba675SRob Herring	chosen {
14724ba675SRob Herring		stdout-path = &dbgu;
15724ba675SRob Herring	};
16724ba675SRob Herring
17724ba675SRob Herring	reg_3v3: regulator-3v3 {
18724ba675SRob Herring		compatible = "regulator-fixed";
19724ba675SRob Herring		regulator-name = "3v3";
20724ba675SRob Herring		regulator-min-microvolt = <3300000>;
21724ba675SRob Herring		regulator-max-microvolt = <3300000>;
22724ba675SRob Herring	};
23724ba675SRob Herring
24724ba675SRob Herring	reg_vcc_mmc0: regulator-mmc0 {
25724ba675SRob Herring		compatible = "regulator-fixed";
26724ba675SRob Herring		pinctrl-names = "default";
27724ba675SRob Herring		pinctrl-0 = <&pinctrl_mcc0_vcc>;
28724ba675SRob Herring		regulator-name = "mmc0-vcc";
29724ba675SRob Herring		regulator-max-microvolt = <3300000>;
30724ba675SRob Herring		regulator-min-microvolt = <3300000>;
31724ba675SRob Herring		gpio = <&pioE 2 GPIO_ACTIVE_LOW>;
32724ba675SRob Herring	};
33724ba675SRob Herring};
34724ba675SRob Herring
35724ba675SRob Herring&dbgu {
36724ba675SRob Herring	status = "okay";
37724ba675SRob Herring};
38724ba675SRob Herring
39724ba675SRob Herring&ebi {
40724ba675SRob Herring	pinctrl-0 = <&pinctrl_ebi_nand_addr>;
41724ba675SRob Herring	pinctrl-names = "default";
42724ba675SRob Herring	status = "okay";
43724ba675SRob Herring};
44724ba675SRob Herring
45724ba675SRob Herring&i2c0 {
46724ba675SRob Herring	pinctrl-0 = <&pinctrl_i2c0_pu>;
47724ba675SRob Herring	status = "okay";
48724ba675SRob Herring};
49724ba675SRob Herring
50724ba675SRob Herring&macb0 {
51724ba675SRob Herring	phy-mode = "rgmii";
52724ba675SRob Herring	status = "okay";
53724ba675SRob Herring
54724ba675SRob Herring	fixed-link {
55724ba675SRob Herring		speed = <1000>;
56724ba675SRob Herring		full-duplex;
57724ba675SRob Herring	};
58724ba675SRob Herring};
59724ba675SRob Herring
60724ba675SRob Herring&main_xtal {
61724ba675SRob Herring	clock-frequency = <12000000>;
62724ba675SRob Herring};
63724ba675SRob Herring
64724ba675SRob Herring&mmc0 {
65724ba675SRob Herring	pinctrl-0 = <&pinctrl_mmc0_clk_cmd_dat0 &pinctrl_mmc0_dat1_3
66724ba675SRob Herring		     &pinctrl_mmc0_dat4_7 &pinctrl_mmc0_cd>;
67724ba675SRob Herring	status = "okay";
68724ba675SRob Herring
69724ba675SRob Herring	slot@0 {
70724ba675SRob Herring		reg = <0>;
71724ba675SRob Herring		bus-width = <8>;
72724ba675SRob Herring		cd-gpios = <&pioE 0 GPIO_ACTIVE_LOW>;
73724ba675SRob Herring		disable-wp;
74724ba675SRob Herring		vmmc-supply = <&reg_vcc_mmc0>;
75724ba675SRob Herring		vqmmc-supply = <&reg_3v3>;
76724ba675SRob Herring	};
77724ba675SRob Herring};
78724ba675SRob Herring
79724ba675SRob Herring&nand_controller {
80724ba675SRob Herring	status = "okay";
81724ba675SRob Herring
82724ba675SRob Herring	nand@3 {
83724ba675SRob Herring		reg = <0x3 0x0 0x2>;
84724ba675SRob Herring		atmel,rb = <0>;
85724ba675SRob Herring		nand-bus-width = <8>;
86724ba675SRob Herring		nand-ecc-mode = "hw";
87724ba675SRob Herring		nand-ecc-strength = <4>;
88724ba675SRob Herring		nand-ecc-step-size = <512>;
89724ba675SRob Herring		nand-on-flash-bbt;
90724ba675SRob Herring		label = "atmel_nand";
91724ba675SRob Herring	};
92724ba675SRob Herring};
93724ba675SRob Herring
94724ba675SRob Herring&slow_xtal {
95724ba675SRob Herring	clock-frequency = <32768>;
96724ba675SRob Herring};
97724ba675SRob Herring
98724ba675SRob Herring&spi0 {
99724ba675SRob Herring	cs-gpios = <&pioD 13 GPIO_ACTIVE_LOW>, <0>, <0>,
100724ba675SRob Herring		   <&pioD 16 GPIO_ACTIVE_LOW>;
101724ba675SRob Herring	status = "okay";
102724ba675SRob Herring};
103724ba675SRob Herring
104724ba675SRob Herring&spi1 {
105724ba675SRob Herring	pinctrl-0 = <&pinctrl_spi_ksz>;
106724ba675SRob Herring	cs-gpios = <&pioC 25 GPIO_ACTIVE_LOW>;
107724ba675SRob Herring	status = "okay";
108724ba675SRob Herring
109724ba675SRob Herring	switch@0 {
110724ba675SRob Herring		compatible = "microchip,ksz9477";
111724ba675SRob Herring		reg = <0>;
112724ba675SRob Herring		spi-max-frequency = <1000000>;
113724ba675SRob Herring		spi-cpha;
114724ba675SRob Herring		spi-cpol;
115724ba675SRob Herring
116724ba675SRob Herring		ports {
117724ba675SRob Herring			#address-cells = <1>;
118724ba675SRob Herring			#size-cells = <0>;
119724ba675SRob Herring
120724ba675SRob Herring			port@0 {
121724ba675SRob Herring				reg = <0>;
122724ba675SRob Herring				label = "lan1";
123724ba675SRob Herring				phy-mode = "internal";
124724ba675SRob Herring			};
125724ba675SRob Herring
126724ba675SRob Herring			port@1 {
127724ba675SRob Herring				reg = <1>;
128724ba675SRob Herring				label = "lan2";
129724ba675SRob Herring				phy-mode = "internal";
130724ba675SRob Herring			};
131724ba675SRob Herring
132724ba675SRob Herring			port@2 {
133724ba675SRob Herring				reg = <2>;
134724ba675SRob Herring				label = "lan3";
135724ba675SRob Herring				phy-mode = "internal";
136724ba675SRob Herring			};
137724ba675SRob Herring
138724ba675SRob Herring			port@3 {
139724ba675SRob Herring				reg = <3>;
140724ba675SRob Herring				label = "lan4";
141724ba675SRob Herring				phy-mode = "internal";
142724ba675SRob Herring			};
143724ba675SRob Herring
144724ba675SRob Herring			port@4 {
145724ba675SRob Herring				reg = <4>;
146724ba675SRob Herring				label = "lan5";
147724ba675SRob Herring				phy-mode = "internal";
148724ba675SRob Herring			};
149724ba675SRob Herring
150724ba675SRob Herring			port@5 {
151724ba675SRob Herring				reg = <5>;
152724ba675SRob Herring				label = "cpu";
153724ba675SRob Herring				ethernet = <&macb0>;
154724ba675SRob Herring				phy-mode = "rgmii-txid";
155*58f45c50SLukasz Majewski				tx-internal-delay-ps = <2000>;
156724ba675SRob Herring
157724ba675SRob Herring				fixed-link {
158724ba675SRob Herring					speed = <1000>;
159724ba675SRob Herring					full-duplex;
160724ba675SRob Herring				};
161724ba675SRob Herring			};
162724ba675SRob Herring		};
163724ba675SRob Herring	};
164724ba675SRob Herring};
165724ba675SRob Herring
1660ee2f559SLukasz Majewski&tcb0 {
1670ee2f559SLukasz Majewski	timer0: timer@0 {
1680ee2f559SLukasz Majewski		compatible = "atmel,tcb-timer";
1690ee2f559SLukasz Majewski		reg = <0>;
1700ee2f559SLukasz Majewski	};
1710ee2f559SLukasz Majewski
1720ee2f559SLukasz Majewski	timer1: timer@1 {
1730ee2f559SLukasz Majewski		compatible = "atmel,tcb-timer";
1740ee2f559SLukasz Majewski		reg = <1>;
1750ee2f559SLukasz Majewski	};
1760ee2f559SLukasz Majewski};
1770ee2f559SLukasz Majewski
178724ba675SRob Herring&usb0 {
179724ba675SRob Herring	pinctrl-names = "default";
180724ba675SRob Herring	pinctrl-0 = <&pinctrl_usba_vbus>;
181724ba675SRob Herring	atmel,vbus-gpio = <&pioE 9 GPIO_ACTIVE_HIGH>;
182724ba675SRob Herring	status = "okay";
183724ba675SRob Herring};
184724ba675SRob Herring
185724ba675SRob Herring&pinctrl {
186724ba675SRob Herring	board {
187724ba675SRob Herring		pinctrl_i2c0_pu: i2c0-pu {
188724ba675SRob Herring			atmel,pins =
189724ba675SRob Herring				<AT91_PIOA 30 AT91_PERIPH_A AT91_PINCTRL_PULL_UP>,
190724ba675SRob Herring				<AT91_PIOA 31 AT91_PERIPH_A AT91_PINCTRL_PULL_UP>;
191724ba675SRob Herring		};
192724ba675SRob Herring
193724ba675SRob Herring		pinctrl_mmc0_cd: mmc0-cd {
194724ba675SRob Herring			atmel,pins = <AT91_PIOE 0 AT91_PERIPH_GPIO AT91_PINCTRL_NONE>;
195724ba675SRob Herring		};
196724ba675SRob Herring
197724ba675SRob Herring		pinctrl_mcc0_vcc: mmc0-vcc {
198724ba675SRob Herring			atmel,pins = <AT91_PIOE 2 AT91_PERIPH_GPIO AT91_PINCTRL_NONE>;
199724ba675SRob Herring		};
200724ba675SRob Herring
201724ba675SRob Herring		pinctrl_spi_ksz: spi-ksz {
202724ba675SRob Herring			atmel,pins =
203724ba675SRob Herring				<
204724ba675SRob Herring				/* SPI1_MISO */
205724ba675SRob Herring				AT91_PIOC 22 AT91_PERIPH_A AT91_PINCTRL_PULL_UP
206724ba675SRob Herring				/* SPI1_MOSI */
207724ba675SRob Herring				AT91_PIOC 23 AT91_PERIPH_A AT91_PINCTRL_NONE
208724ba675SRob Herring				/* SPI1_SPCK */
209724ba675SRob Herring				AT91_PIOC 24 AT91_PERIPH_A AT91_PINCTRL_NONE
210724ba675SRob Herring
211724ba675SRob Herring				/* SPI CS */
212724ba675SRob Herring				AT91_PIOC 25 AT91_PERIPH_GPIO AT91_PINCTRL_NONE
213724ba675SRob Herring				/* switch IRQ */
214724ba675SRob Herring				AT91_PIOB 28 AT91_PERIPH_GPIO AT91_PINCTRL_DEGLITCH
215724ba675SRob Herring				/* switch PME_N, SoC IN */
216724ba675SRob Herring				AT91_PIOC 30 AT91_PERIPH_GPIO AT91_PINCTRL_PULL_UP
217724ba675SRob Herring				/* switch RST */
218724ba675SRob Herring				AT91_PIOC 31 AT91_PERIPH_GPIO AT91_PINCTRL_PULL_UP_DEGLITCH
219724ba675SRob Herring				>;
220724ba675SRob Herring		};
221724ba675SRob Herring
222724ba675SRob Herring		pinctrl_usba_vbus: usba-vbus {
223724ba675SRob Herring			atmel,pins =
224724ba675SRob Herring				<AT91_PIOE 9 AT91_PERIPH_GPIO AT91_PINCTRL_DEGLITCH>;
225724ba675SRob Herring		};
226724ba675SRob Herring	};
227724ba675SRob Herring};
228