Commit 371a47c9 authored by Varshini Rajendran's avatar Varshini Rajendran Committed by Claudiu Beznea
Browse files

ARM: dts: microchip: sam9x75_curiosity: add sam9x75 curiosity board

parent 4157293c
Loading
Loading
Loading
Loading
+3 −0
Original line number Diff line number Diff line
@@ -2,6 +2,7 @@
# Enables support for device-tree overlays
DTC_FLAGS_at91-sam9x60_curiosity := -@
DTC_FLAGS_at91-sam9x60ek := -@
DTC_FLAGS_at91-sam9x75_curiosity := -@
DTC_FLAGS_at91-sama5d27_som1_ek := -@
DTC_FLAGS_at91-sama5d27_wlsom1_ek := -@
DTC_FLAGS_at91-sama5d29_curiosity := -@
@@ -60,6 +61,8 @@ dtb-$(CONFIG_SOC_AT91SAM9) += \
dtb-$(CONFIG_SOC_SAM9X60) += \
	at91-sam9x60_curiosity.dtb \
	at91-sam9x60ek.dtb
dtb-$(CONFIG_SOC_SAM9X7) += \
	at91-sam9x75_curiosity.dtb
dtb-$(CONFIG_SOC_SAM_V7) += \
	at91-kizbox2-2.dtb \
	at91-kizbox3-hs.dtb \
+324 −0
Original line number Diff line number Diff line
// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
/*
 * at91-sam9x75_curiosity.dts - Device Tree file for Microchip SAM9X75 Curiosity board
 *
 * Copyright (C) 2023 Microchip Technology Inc. and its subsidiaries
 *
 * Author: Varshini Rajendran <varshini.rajendran@microchip.com>
 */
/dts-v1/;
#include "sam9x7.dtsi"
#include <dt-bindings/input/input.h>

/ {
	model = "Microchip SAM9X75 Curiosity";
	compatible = "microchip,sam9x75-curiosity", "microchip,sam9x7", "atmel,at91sam9";

	aliases {
		i2c0 = &i2c6;
	};

	chosen {
		stdout-path = "serial0:115200n8";
	};

	gpio-keys {
		compatible = "gpio-keys";
		pinctrl-names = "default";
		pinctrl-0 = <&pinctrl_key_gpio_default>;

		button-user {
			label = "USER";
			gpios = <&pioC 9 GPIO_ACTIVE_LOW>;
			linux,code = <KEY_0>;
			wakeup-source;
		};
	};

	led-controller {
		compatible = "gpio-leds";

		led_red: led-red {
			label = "red";
			gpios = <&pioC 14 GPIO_ACTIVE_HIGH>;
			pinctrl-0 = <&pinctrl_red_led_gpio_default>;
		};

		led_green: led-green {
			label = "green";
			gpios = <&pioC 21 GPIO_ACTIVE_HIGH>;
			pinctrl-0 = <&pinctrl_green_led_gpio_default>;
		};

		led_blue: led-blue {
			label = "blue";
			gpios = <&pioC 20 GPIO_ACTIVE_HIGH>;
			pinctrl-0 = <&pinctrl_blue_led_gpio_default>;
			linux,default-trigger = "heartbeat";
		};
	};

	memory@20000000 {
		reg = <0x20000000 0x10000000>;
		device_type = "memory";
	};
};

&classd {
	pinctrl-names = "default";
	pinctrl-0 = <&pinctrl_classd_default>;
	atmel,pwm-type = "diff";
	atmel,non-overlap-time = <10>;
	status = "okay";
};

&dbgu {
	pinctrl-names = "default";
	pinctrl-0 = <&pinctrl_dbgu_default>;
	status = "okay";
};

&dma0 {
	status = "okay";
};

&flx6 {
	atmel,flexcom-mode = <ATMEL_FLEXCOM_MODE_TWI>;
	status = "okay";
};

&i2c6 {
	#address-cells = <1>;
	#size-cells = <0>;
	pinctrl-names = "default";
	pinctrl-0 = <&pinctrl_flx6_default>;
	i2c-analog-filter;
	i2c-digital-filter;
	i2c-digital-filter-width-ns = <35>;
	status = "okay";

	pmic@5b {
		compatible = "microchip,mcp16502";
		reg = <0x5b>;

		regulators {
			vdd_3v3: VDD_IO {
				regulator-name = "VDD_IO";
				regulator-min-microvolt = <3300000>;
				regulator-max-microvolt = <3300000>;
				regulator-initial-mode = <2>;
				regulator-allowed-modes = <2>, <4>;
				regulator-always-on;

				regulator-state-standby {
					regulator-on-in-suspend;
					regulator-mode = <4>;
				};

				regulator-state-mem {
					regulator-mode = <4>;
				};
			};

			vddioddr: VDD_DDR {
				regulator-name = "VDD_DDR";
				regulator-min-microvolt = <1350000>;
				regulator-max-microvolt = <1350000>;
				regulator-initial-mode = <2>;
				regulator-allowed-modes = <2>, <4>;
				regulator-always-on;

				regulator-state-standby {
					regulator-on-in-suspend;
					regulator-mode = <4>;
				};

				regulator-state-mem {
					regulator-on-in-suspend;
					regulator-mode = <4>;
				};
			};

			vddcore: VDD_CORE {
				regulator-name = "VDD_CORE";
				regulator-min-microvolt = <1150000>;
				regulator-max-microvolt = <1150000>;
				regulator-initial-mode = <2>;
				regulator-allowed-modes = <2>, <4>;
				regulator-always-on;

				regulator-state-standby {
					regulator-on-in-suspend;
					regulator-mode = <4>;
				};

				regulator-state-mem {
					regulator-mode = <4>;
				};
			};

			dcdc4: VDD_OTHER {
				regulator-name = "VDD_OTHER";
				regulator-min-microvolt = <1150000>;
				regulator-max-microvolt = <1150000>;
				regulator-initial-mode = <2>;
				regulator-allowed-modes = <2>, <4>;
				regulator-ramp-delay = <3125>;
				regulator-always-on;

				regulator-state-standby {
					regulator-on-in-suspend;
					regulator-mode = <4>;
				};

				regulator-state-mem {
					regulator-mode = <4>;
				};
			};

			vldo1: LDO1 {
				regulator-name = "LDO1";
				regulator-min-microvolt = <3300000>;
				regulator-max-microvolt = <3300000>;
				regulator-always-on;

				regulator-state-standby {
					regulator-on-in-suspend;
				};
			};

			vldo2: LDO2 {
				regulator-name = "LDO2";
				regulator-min-microvolt = <1800000>;
				regulator-max-microvolt = <1800000>;

				regulator-state-standby {
					regulator-on-in-suspend;
				};
			};
		};
	};
};

&i2s {
	pinctrl-names = "default";
	pinctrl-0 = <&pinctrl_i2s_default>;
	#sound-dai-cells = <0>;
	status = "okay";
};

&main_xtal {
	clock-frequency = <24000000>;
};

&pinctrl {
	classd {
		pinctrl_classd_default: classd-default {
			atmel,pins =
				<AT91_PIOA 18 AT91_PERIPH_C AT91_PINCTRL_PULL_UP>,
				<AT91_PIOA 19 AT91_PERIPH_C AT91_PINCTRL_PULL_DOWN>;
		};
	};

	dbgu {
		pinctrl_dbgu_default: dbgu-default {
			atmel,pins = <AT91_PIOA 26 AT91_PERIPH_A AT91_PINCTRL_PULL_UP>,
				     <AT91_PIOA 27 AT91_PERIPH_A AT91_PINCTRL_NONE>;
		};
	};

	flexcom {
		pinctrl_flx6_default: flx6-default {
			atmel,pins =
				<AT91_PIOA 24 AT91_PERIPH_A AT91_PINCTRL_PULL_UP>,
				<AT91_PIOA 25 AT91_PERIPH_A AT91_PINCTRL_PULL_UP>;
		};
	};

	gpio-keys {
		pinctrl_key_gpio_default: key-gpio-default {
			atmel,pins = <AT91_PIOC 9 AT91_PERIPH_GPIO AT91_PINCTRL_NONE>;
		};
	};

	i2s {
		pinctrl_i2s_default: i2s-default {
			atmel,pins =
				<AT91_PIOB 26 AT91_PERIPH_D AT91_PINCTRL_NONE>,		/* I2SCK */
				<AT91_PIOB 15 AT91_PERIPH_D AT91_PINCTRL_NONE>,		/* I2SWS */
				<AT91_PIOB 16 AT91_PERIPH_D AT91_PINCTRL_NONE>,		/* I2SDIN */
				<AT91_PIOB 17 AT91_PERIPH_D AT91_PINCTRL_NONE>,		/* I2SDOUT */
				<AT91_PIOB 25 AT91_PERIPH_D AT91_PINCTRL_NONE>;		/* I2SMCK */
		};
	};

	led-controller {
		pinctrl_red_led_gpio_default: red-led-gpio-default {
			atmel,pins = <AT91_PIOC 14 AT91_PERIPH_GPIO AT91_PINCTRL_NONE>;
		};
		pinctrl_green_led_gpio_default: green-led-gpio-default {
			atmel,pins = <AT91_PIOC 21 AT91_PERIPH_GPIO AT91_PINCTRL_NONE>;
		};
		pinctrl_blue_led_gpio_default: blue-led-gpio-default {
			atmel,pins = <AT91_PIOC 20 AT91_PERIPH_GPIO AT91_PINCTRL_NONE>;
		};
	};

	sdmmc0 {
		pinctrl_sdmmc0_default: sdmmc0-default {
			atmel,pins =
				<AT91_PIOA 2 AT91_PERIPH_A (AT91_PINCTRL_DRIVE_STRENGTH_HI | AT91_PINCTRL_SLEWRATE_ENA)>,				/* PA2 CK  periph A with pullup */
				<AT91_PIOA 1 AT91_PERIPH_A (AT91_PINCTRL_PULL_UP | AT91_PINCTRL_DRIVE_STRENGTH_HI | AT91_PINCTRL_SLEWRATE_ENA)>,	/* PA1 CMD periph A with pullup */
				<AT91_PIOA 0 AT91_PERIPH_A (AT91_PINCTRL_PULL_UP | AT91_PINCTRL_DRIVE_STRENGTH_HI | AT91_PINCTRL_SLEWRATE_ENA)>,	/* PA0 DAT0 periph A */
				<AT91_PIOA 3 AT91_PERIPH_A (AT91_PINCTRL_PULL_UP | AT91_PINCTRL_DRIVE_STRENGTH_HI | AT91_PINCTRL_SLEWRATE_ENA)>,	/* PA3 DAT1 periph A with pullup */
				<AT91_PIOA 4 AT91_PERIPH_A (AT91_PINCTRL_PULL_UP | AT91_PINCTRL_DRIVE_STRENGTH_HI | AT91_PINCTRL_SLEWRATE_ENA)>,	/* PA4 DAT2 periph A with pullup */
				<AT91_PIOA 5 AT91_PERIPH_A (AT91_PINCTRL_PULL_UP | AT91_PINCTRL_DRIVE_STRENGTH_HI | AT91_PINCTRL_SLEWRATE_ENA)>;	/* PA5 DAT3 periph A with pullup */
		};
	};
}; /* pinctrl */

&poweroff {
	debounce-delay-us = <976>;
	status = "okay";

	input@0 {
		reg = <0>;
	};
};

&rtt {
	atmel,rtt-rtc-time-reg = <&gpbr 0x0>;
};

&sdmmc0 {
	bus-width = <4>;
	pinctrl-names = "default";
	pinctrl-0 = <&pinctrl_sdmmc0_default>;
	cd-gpios = <&pioA 23 GPIO_ACTIVE_LOW>;
	disable-wp;
	status = "okay";
};

&slow_xtal {
	clock-frequency = <32768>;
};

&tcb {
	timer0: timer@0 {
		compatible = "atmel,tcb-timer";
		reg = <0>;
	};

	timer1: timer@1 {
		compatible = "atmel,tcb-timer";
		reg = <1>;
	};
};

&trng {
	status = "okay";
};

&watchdog {
	status = "okay";
};