1// SPDX-License-Identifier: GPL-2.0-or-later
2/*
3 * at91-foxg20.dts - Device Tree file for Acme Systems FoxG20 board
4 *
5 * Based on DT files for at91sam9g20ek evaluation board (AT91SAM9G20 SoC)
6 *
7 * Copyright (C) 2013 Douglas Gilbert <dgilbert@interlog.com>
8 */
9/dts-v1/;
10#include "at91sam9g20.dtsi"
11
12/ {
13	model = "Acme Systems FoxG20";
14	compatible = "acme,foxg20", "atmel,at91sam9g20", "atmel,at91sam9";
15
16	chosen {
17		bootargs = "console=ttyS0,115200 root=/dev/mmcblk0p2 rw rootwait";
18	};
19
20	memory@20000000 {
21		reg = <0x20000000 0x4000000>;
22	};
23
24	clocks {
25		slow_xtal {
26			clock-frequency = <32768>;
27		};
28
29		main_xtal {
30			clock-frequency = <18432000>;
31		};
32	};
33
34	ahb {
35		apb {
36			tcb0: timer@fffa0000 {
37				timer@0 {
38					compatible = "atmel,tcb-timer";
39					reg = <0>, <1>;
40				};
41
42				timer@2 {
43					compatible = "atmel,tcb-timer";
44					reg = <2>;
45				};
46			};
47
48			usb1: gadget@fffa4000 {
49				atmel,vbus-gpio = <&pioC 6 GPIO_ACTIVE_HIGH>;
50				status = "okay";
51			};
52
53			mmc0: mmc@fffa8000 {
54				pinctrl-0 = <
55					&pinctrl_mmc0_clk
56					&pinctrl_mmc0_slot1_cmd_dat0
57					&pinctrl_mmc0_slot1_dat1_3>;
58				pinctrl-names = "default";
59				status = "okay";
60
61				slot@1 {
62					reg = <1>;
63					bus-width = <4>;
64				};
65			};
66
67			usart0: serial@fffb0000 {
68				pinctrl-0 =
69					<&pinctrl_usart0
70					 &pinctrl_usart0_rts
71					 &pinctrl_usart0_cts
72					>;
73				status = "okay";
74			};
75
76			usart1: serial@fffb4000 {
77				status = "okay";
78			};
79
80			usart2: serial@fffb8000 {
81				status = "okay";
82			};
83
84			macb0: ethernet@fffc4000 {
85				phy-mode = "rmii";
86				status = "okay";
87			};
88
89			usart3: serial@fffd0000 {
90				status = "okay";
91			};
92
93			uart0: serial@fffd4000 {
94				status = "okay";
95			};
96
97			uart1: serial@fffd8000 {
98				status = "okay";
99			};
100
101			dbgu: serial@fffff200 {
102				status = "okay";
103			};
104
105			pinctrl@fffff400 {
106				board {
107					pinctrl_pck0_as_mck: pck0_as_mck {
108						atmel,pins =
109							<AT91_PIOC 1 AT91_PERIPH_B AT91_PINCTRL_NONE>;
110					};
111				};
112
113				mmc0_slot1 {
114					pinctrl_board_mmc0_slot1: mmc0_slot1-board {
115						atmel,pins =
116							<AT91_PIOC 9 AT91_PERIPH_GPIO AT91_PINCTRL_PULL_UP_DEGLITCH>;	/* CD pin */
117					};
118				};
119
120				i2c0 {
121					pinctrl_i2c0: i2c0-0 {
122						atmel,pins =
123							<AT91_PIOA 23 AT91_PERIPH_A AT91_PINCTRL_MULTI_DRIVE	/* TWD (SDA), open drain */
124							 AT91_PIOA 24 AT91_PERIPH_A AT91_PINCTRL_MULTI_DRIVE>;	/* TWCK (SCL), open drain */
125					};
126				};
127			};
128
129			watchdog@fffffd40 {
130				status = "okay";
131			};
132		};
133
134		usb0: ohci@500000 {
135			num-ports = <2>;
136			status = "okay";
137		};
138	};
139
140	i2c-gpio-0 {
141		pinctrl-names = "default";
142		pinctrl-0 = <&pinctrl_i2c0>;
143		i2c-gpio,delay-us = <5>;	/* ~85 kHz */
144		status = "okay";
145	};
146
147	leds {
148		compatible = "gpio-leds";
149
150		/* red LED marked "PC7" near mini USB (device) receptacle */
151		user_led {
152			label = "user_led";
153			gpios = <&pioC 7 GPIO_ACTIVE_HIGH>;	/* PC7 */
154			linux,default-trigger = "heartbeat";
155		};
156	};
157
158	gpio-keys {
159		compatible = "gpio-keys";
160
161		button {
162			label = "Button";
163			gpios = <&pioC 4 GPIO_ACTIVE_LOW>;
164			linux,code = <0x103>;
165			wakeup-source;
166		};
167	};
168};
169