18c2ecf20Sopenharmony_ci// SPDX-License-Identifier: GPL-2.0-only
28c2ecf20Sopenharmony_ci/*
38c2ecf20Sopenharmony_ci * at91sam9g20ek_common.dtsi - Device Tree file for Atmel at91sam9g20ek board
48c2ecf20Sopenharmony_ci *
58c2ecf20Sopenharmony_ci * Copyright (C) 2012 Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com>
68c2ecf20Sopenharmony_ci */
78c2ecf20Sopenharmony_ci#include "at91sam9g20.dtsi"
88c2ecf20Sopenharmony_ci#include <dt-bindings/input/input.h>
98c2ecf20Sopenharmony_ci
108c2ecf20Sopenharmony_ci/ {
118c2ecf20Sopenharmony_ci
128c2ecf20Sopenharmony_ci	chosen {
138c2ecf20Sopenharmony_ci		bootargs = "mem=64M root=/dev/mtdblock5 rw rootfstype=ubifs";
148c2ecf20Sopenharmony_ci		stdout-path = "serial0:115200n8";
158c2ecf20Sopenharmony_ci	};
168c2ecf20Sopenharmony_ci
178c2ecf20Sopenharmony_ci	memory@20000000 {
188c2ecf20Sopenharmony_ci		reg = <0x20000000 0x4000000>;
198c2ecf20Sopenharmony_ci	};
208c2ecf20Sopenharmony_ci
218c2ecf20Sopenharmony_ci	clocks {
228c2ecf20Sopenharmony_ci		slow_xtal {
238c2ecf20Sopenharmony_ci			clock-frequency = <32768>;
248c2ecf20Sopenharmony_ci		};
258c2ecf20Sopenharmony_ci
268c2ecf20Sopenharmony_ci		main_xtal {
278c2ecf20Sopenharmony_ci			clock-frequency = <18432000>;
288c2ecf20Sopenharmony_ci		};
298c2ecf20Sopenharmony_ci	};
308c2ecf20Sopenharmony_ci
318c2ecf20Sopenharmony_ci	ahb {
328c2ecf20Sopenharmony_ci		apb {
338c2ecf20Sopenharmony_ci			pinctrl@fffff400 {
348c2ecf20Sopenharmony_ci				board {
358c2ecf20Sopenharmony_ci					pinctrl_pck0_as_mck: pck0_as_mck {
368c2ecf20Sopenharmony_ci						atmel,pins =
378c2ecf20Sopenharmony_ci							<AT91_PIOC 1 AT91_PERIPH_B AT91_PINCTRL_NONE>;	/* PC1 periph B */
388c2ecf20Sopenharmony_ci					};
398c2ecf20Sopenharmony_ci
408c2ecf20Sopenharmony_ci				};
418c2ecf20Sopenharmony_ci
428c2ecf20Sopenharmony_ci				usb1 {
438c2ecf20Sopenharmony_ci					pinctrl_usb1_vbus_gpio: usb1_vbus_gpio {
448c2ecf20Sopenharmony_ci						atmel,pins =
458c2ecf20Sopenharmony_ci							<AT91_PIOC 5 AT91_PERIPH_GPIO AT91_PINCTRL_DEGLITCH>;	/* PC5 GPIO */
468c2ecf20Sopenharmony_ci					};
478c2ecf20Sopenharmony_ci				};
488c2ecf20Sopenharmony_ci
498c2ecf20Sopenharmony_ci				mmc0_slot1 {
508c2ecf20Sopenharmony_ci					pinctrl_board_mmc0_slot1: mmc0_slot1-board {
518c2ecf20Sopenharmony_ci						atmel,pins =
528c2ecf20Sopenharmony_ci							<AT91_PIOC 9 AT91_PERIPH_GPIO AT91_PINCTRL_PULL_UP_DEGLITCH>;	/* PC9 gpio CD pin pull up and deglitch */
538c2ecf20Sopenharmony_ci					};
548c2ecf20Sopenharmony_ci				};
558c2ecf20Sopenharmony_ci			};
568c2ecf20Sopenharmony_ci
578c2ecf20Sopenharmony_ci			dbgu: serial@fffff200 {
588c2ecf20Sopenharmony_ci				status = "okay";
598c2ecf20Sopenharmony_ci			};
608c2ecf20Sopenharmony_ci
618c2ecf20Sopenharmony_ci			tcb0: timer@fffa0000 {
628c2ecf20Sopenharmony_ci				timer@0 {
638c2ecf20Sopenharmony_ci					compatible = "atmel,tcb-timer";
648c2ecf20Sopenharmony_ci					reg = <0>, <1>;
658c2ecf20Sopenharmony_ci				};
668c2ecf20Sopenharmony_ci
678c2ecf20Sopenharmony_ci				timer@2 {
688c2ecf20Sopenharmony_ci					compatible = "atmel,tcb-timer";
698c2ecf20Sopenharmony_ci					reg = <2>;
708c2ecf20Sopenharmony_ci				};
718c2ecf20Sopenharmony_ci			};
728c2ecf20Sopenharmony_ci
738c2ecf20Sopenharmony_ci			usart0: serial@fffb0000 {
748c2ecf20Sopenharmony_ci				pinctrl-0 =
758c2ecf20Sopenharmony_ci					<&pinctrl_usart0
768c2ecf20Sopenharmony_ci					 &pinctrl_usart0_rts
778c2ecf20Sopenharmony_ci					 &pinctrl_usart0_cts
788c2ecf20Sopenharmony_ci					 &pinctrl_usart0_dtr_dsr
798c2ecf20Sopenharmony_ci					 &pinctrl_usart0_dcd
808c2ecf20Sopenharmony_ci					 &pinctrl_usart0_ri>;
818c2ecf20Sopenharmony_ci				status = "okay";
828c2ecf20Sopenharmony_ci			};
838c2ecf20Sopenharmony_ci
848c2ecf20Sopenharmony_ci			usart1: serial@fffb4000 {
858c2ecf20Sopenharmony_ci				status = "okay";
868c2ecf20Sopenharmony_ci			};
878c2ecf20Sopenharmony_ci
888c2ecf20Sopenharmony_ci			macb0: ethernet@fffc4000 {
898c2ecf20Sopenharmony_ci				phy-mode = "rmii";
908c2ecf20Sopenharmony_ci				status = "okay";
918c2ecf20Sopenharmony_ci			};
928c2ecf20Sopenharmony_ci
938c2ecf20Sopenharmony_ci			usb1: gadget@fffa4000 {
948c2ecf20Sopenharmony_ci				pinctrl-0 = <&pinctrl_usb1_vbus_gpio>;
958c2ecf20Sopenharmony_ci				pinctrl-names = "default";
968c2ecf20Sopenharmony_ci				atmel,vbus-gpio = <&pioC 5 GPIO_ACTIVE_HIGH>;
978c2ecf20Sopenharmony_ci				status = "okay";
988c2ecf20Sopenharmony_ci			};
998c2ecf20Sopenharmony_ci
1008c2ecf20Sopenharmony_ci			mmc0: mmc@fffa8000 {
1018c2ecf20Sopenharmony_ci				pinctrl-0 = <
1028c2ecf20Sopenharmony_ci					&pinctrl_board_mmc0_slot1
1038c2ecf20Sopenharmony_ci					&pinctrl_mmc0_clk
1048c2ecf20Sopenharmony_ci					&pinctrl_mmc0_slot1_cmd_dat0
1058c2ecf20Sopenharmony_ci					&pinctrl_mmc0_slot1_dat1_3>;
1068c2ecf20Sopenharmony_ci				pinctrl-names = "default";
1078c2ecf20Sopenharmony_ci				status = "okay";
1088c2ecf20Sopenharmony_ci				slot@1 {
1098c2ecf20Sopenharmony_ci					reg = <1>;
1108c2ecf20Sopenharmony_ci					bus-width = <4>;
1118c2ecf20Sopenharmony_ci					cd-gpios = <&pioC 9 GPIO_ACTIVE_HIGH>;
1128c2ecf20Sopenharmony_ci				};
1138c2ecf20Sopenharmony_ci			};
1148c2ecf20Sopenharmony_ci
1158c2ecf20Sopenharmony_ci			ssc0: ssc@fffbc000 {
1168c2ecf20Sopenharmony_ci				status = "okay";
1178c2ecf20Sopenharmony_ci				pinctrl-0 = <&pinctrl_ssc0_tx>;
1188c2ecf20Sopenharmony_ci			};
1198c2ecf20Sopenharmony_ci
1208c2ecf20Sopenharmony_ci			spi0: spi@fffc8000 {
1218c2ecf20Sopenharmony_ci				cs-gpios = <0>, <&pioC 11 0>, <0>, <0>;
1228c2ecf20Sopenharmony_ci				mtd_dataflash@1 {
1238c2ecf20Sopenharmony_ci					compatible = "atmel,at45", "atmel,dataflash";
1248c2ecf20Sopenharmony_ci					spi-max-frequency = <50000000>;
1258c2ecf20Sopenharmony_ci					reg = <1>;
1268c2ecf20Sopenharmony_ci				};
1278c2ecf20Sopenharmony_ci			};
1288c2ecf20Sopenharmony_ci
1298c2ecf20Sopenharmony_ci			shdwc@fffffd10 {
1308c2ecf20Sopenharmony_ci				atmel,wakeup-counter = <10>;
1318c2ecf20Sopenharmony_ci				atmel,wakeup-rtt-timer;
1328c2ecf20Sopenharmony_ci			};
1338c2ecf20Sopenharmony_ci
1348c2ecf20Sopenharmony_ci			rtc@fffffd20 {
1358c2ecf20Sopenharmony_ci				atmel,rtt-rtc-time-reg = <&gpbr 0x0>;
1368c2ecf20Sopenharmony_ci				status = "okay";
1378c2ecf20Sopenharmony_ci			};
1388c2ecf20Sopenharmony_ci
1398c2ecf20Sopenharmony_ci			watchdog@fffffd40 {
1408c2ecf20Sopenharmony_ci				status = "okay";
1418c2ecf20Sopenharmony_ci			};
1428c2ecf20Sopenharmony_ci
1438c2ecf20Sopenharmony_ci			gpbr: syscon@fffffd50 {
1448c2ecf20Sopenharmony_ci				status = "okay";
1458c2ecf20Sopenharmony_ci			};
1468c2ecf20Sopenharmony_ci		};
1478c2ecf20Sopenharmony_ci
1488c2ecf20Sopenharmony_ci		ebi: ebi@10000000 {
1498c2ecf20Sopenharmony_ci			status = "okay";
1508c2ecf20Sopenharmony_ci
1518c2ecf20Sopenharmony_ci			nand_controller: nand-controller {
1528c2ecf20Sopenharmony_ci				status = "okay";
1538c2ecf20Sopenharmony_ci				pinctrl-0 = <&pinctrl_nand_cs &pinctrl_nand_rb>;
1548c2ecf20Sopenharmony_ci				pinctrl-names = "default";
1558c2ecf20Sopenharmony_ci
1568c2ecf20Sopenharmony_ci				nand@3 {
1578c2ecf20Sopenharmony_ci					reg = <0x3 0x0 0x800000>;
1588c2ecf20Sopenharmony_ci					rb-gpios = <&pioC 13 GPIO_ACTIVE_HIGH>;
1598c2ecf20Sopenharmony_ci					cs-gpios = <&pioC 14 GPIO_ACTIVE_HIGH>;
1608c2ecf20Sopenharmony_ci					nand-bus-width = <8>;
1618c2ecf20Sopenharmony_ci					nand-ecc-mode = "soft";
1628c2ecf20Sopenharmony_ci					nand-on-flash-bbt;
1638c2ecf20Sopenharmony_ci					label = "atmel_nand";
1648c2ecf20Sopenharmony_ci
1658c2ecf20Sopenharmony_ci					partitions {
1668c2ecf20Sopenharmony_ci						compatible = "fixed-partitions";
1678c2ecf20Sopenharmony_ci						#address-cells = <1>;
1688c2ecf20Sopenharmony_ci						#size-cells = <1>;
1698c2ecf20Sopenharmony_ci
1708c2ecf20Sopenharmony_ci						at91bootstrap@0 {
1718c2ecf20Sopenharmony_ci							label = "at91bootstrap";
1728c2ecf20Sopenharmony_ci							reg = <0x0 0x20000>;
1738c2ecf20Sopenharmony_ci						};
1748c2ecf20Sopenharmony_ci
1758c2ecf20Sopenharmony_ci						barebox@20000 {
1768c2ecf20Sopenharmony_ci							label = "barebox";
1778c2ecf20Sopenharmony_ci							reg = <0x20000 0x40000>;
1788c2ecf20Sopenharmony_ci						};
1798c2ecf20Sopenharmony_ci
1808c2ecf20Sopenharmony_ci						bareboxenv@60000 {
1818c2ecf20Sopenharmony_ci							label = "bareboxenv";
1828c2ecf20Sopenharmony_ci							reg = <0x60000 0x20000>;
1838c2ecf20Sopenharmony_ci						};
1848c2ecf20Sopenharmony_ci
1858c2ecf20Sopenharmony_ci						bareboxenv2@80000 {
1868c2ecf20Sopenharmony_ci							label = "bareboxenv2";
1878c2ecf20Sopenharmony_ci							reg = <0x80000 0x20000>;
1888c2ecf20Sopenharmony_ci						};
1898c2ecf20Sopenharmony_ci
1908c2ecf20Sopenharmony_ci						oftree@80000 {
1918c2ecf20Sopenharmony_ci							label = "oftree";
1928c2ecf20Sopenharmony_ci							reg = <0xa0000 0x20000>;
1938c2ecf20Sopenharmony_ci						};
1948c2ecf20Sopenharmony_ci
1958c2ecf20Sopenharmony_ci						kernel@a0000 {
1968c2ecf20Sopenharmony_ci							label = "kernel";
1978c2ecf20Sopenharmony_ci							reg = <0xc0000 0x400000>;
1988c2ecf20Sopenharmony_ci						};
1998c2ecf20Sopenharmony_ci
2008c2ecf20Sopenharmony_ci						rootfs@4a0000 {
2018c2ecf20Sopenharmony_ci							label = "rootfs";
2028c2ecf20Sopenharmony_ci							reg = <0x4c0000 0x7800000>;
2038c2ecf20Sopenharmony_ci						};
2048c2ecf20Sopenharmony_ci
2058c2ecf20Sopenharmony_ci						data@7ca0000 {
2068c2ecf20Sopenharmony_ci							label = "data";
2078c2ecf20Sopenharmony_ci							reg = <0x7cc0000 0x8340000>;
2088c2ecf20Sopenharmony_ci						};
2098c2ecf20Sopenharmony_ci					};
2108c2ecf20Sopenharmony_ci				};
2118c2ecf20Sopenharmony_ci			};
2128c2ecf20Sopenharmony_ci		};
2138c2ecf20Sopenharmony_ci
2148c2ecf20Sopenharmony_ci		usb0: ohci@500000 {
2158c2ecf20Sopenharmony_ci			num-ports = <2>;
2168c2ecf20Sopenharmony_ci			status = "okay";
2178c2ecf20Sopenharmony_ci		};
2188c2ecf20Sopenharmony_ci	};
2198c2ecf20Sopenharmony_ci
2208c2ecf20Sopenharmony_ci	i2c-gpio-0 {
2218c2ecf20Sopenharmony_ci		status = "okay";
2228c2ecf20Sopenharmony_ci
2238c2ecf20Sopenharmony_ci		24c512@50 {
2248c2ecf20Sopenharmony_ci			compatible = "atmel,24c512";
2258c2ecf20Sopenharmony_ci			reg = <0x50>;
2268c2ecf20Sopenharmony_ci		};
2278c2ecf20Sopenharmony_ci
2288c2ecf20Sopenharmony_ci		wm8731: wm8731@1b {
2298c2ecf20Sopenharmony_ci			compatible = "wm8731";
2308c2ecf20Sopenharmony_ci			reg = <0x1b>;
2318c2ecf20Sopenharmony_ci
2328c2ecf20Sopenharmony_ci			/* PCK0 at 12MHz */
2338c2ecf20Sopenharmony_ci			clocks = <&pmc PMC_TYPE_SYSTEM 8>;
2348c2ecf20Sopenharmony_ci			clock-names = "mclk";
2358c2ecf20Sopenharmony_ci			assigned-clocks = <&pmc PMC_TYPE_SYSTEM 8>;
2368c2ecf20Sopenharmony_ci			assigned-clock-rates = <12000000>;
2378c2ecf20Sopenharmony_ci		};
2388c2ecf20Sopenharmony_ci	};
2398c2ecf20Sopenharmony_ci
2408c2ecf20Sopenharmony_ci	gpio_keys {
2418c2ecf20Sopenharmony_ci		compatible = "gpio-keys";
2428c2ecf20Sopenharmony_ci
2438c2ecf20Sopenharmony_ci		btn3 {
2448c2ecf20Sopenharmony_ci			label = "Button 3";
2458c2ecf20Sopenharmony_ci			gpios = <&pioA 30 GPIO_ACTIVE_LOW>;
2468c2ecf20Sopenharmony_ci			linux,code = <0x103>;
2478c2ecf20Sopenharmony_ci			wakeup-source;
2488c2ecf20Sopenharmony_ci		};
2498c2ecf20Sopenharmony_ci
2508c2ecf20Sopenharmony_ci		btn4 {
2518c2ecf20Sopenharmony_ci			label = "Button 4";
2528c2ecf20Sopenharmony_ci			gpios = <&pioA 31 GPIO_ACTIVE_LOW>;
2538c2ecf20Sopenharmony_ci			linux,code = <KEY_PROG1>;
2548c2ecf20Sopenharmony_ci			wakeup-source;
2558c2ecf20Sopenharmony_ci		};
2568c2ecf20Sopenharmony_ci	};
2578c2ecf20Sopenharmony_ci
2588c2ecf20Sopenharmony_ci	sound {
2598c2ecf20Sopenharmony_ci		compatible = "atmel,at91sam9g20ek-wm8731-audio";
2608c2ecf20Sopenharmony_ci		pinctrl-names = "default";
2618c2ecf20Sopenharmony_ci		pinctrl-0 = <&pinctrl_pck0_as_mck>;
2628c2ecf20Sopenharmony_ci
2638c2ecf20Sopenharmony_ci		atmel,model = "wm8731 @ AT91SAMG20EK";
2648c2ecf20Sopenharmony_ci
2658c2ecf20Sopenharmony_ci		atmel,audio-routing =
2668c2ecf20Sopenharmony_ci			"Ext Spk", "LHPOUT",
2678c2ecf20Sopenharmony_ci			"Int Mic", "MICIN";
2688c2ecf20Sopenharmony_ci
2698c2ecf20Sopenharmony_ci		atmel,ssc-controller = <&ssc0>;
2708c2ecf20Sopenharmony_ci		atmel,audio-codec = <&wm8731>;
2718c2ecf20Sopenharmony_ci	};
2728c2ecf20Sopenharmony_ci};
273