// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
/*
 *  at91-sama7g5ek.dts - Device Tree file for SAMA7G5-EK board
 *
 *  Copyright (c) 2020 Microchip Technology Inc. and its subsidiaries
 *
 *  Author: Eugen Hristev <eugen.hristev@microchip.com>
 *  Author: Claudiu Beznea <claudiu.beznea@microchip.com>
 *
 */
/dts-v1/;
#include "sama7g5-pinfunc.h"
#include "sama7g5.dtsi"
#include <dt-bindings/mfd/atmel-flexcom.h>
#include <dt-bindings/input/input.h>

/ {
	model = "Microchip SAMA7G5-EK";
	compatible = "microchip,sama7g5ek", "microchip,sama7g5", "microchip,sama7";

	chosen {
		bootargs = "rw root=/dev/mmcblk1p2 rootfstype=ext4 rootwait";
		stdout-path = "serial0:115200n8";
	};

	aliases {
		serial0 = &uart3;
		serial1 = &uart4;
		serial2 = &uart7;
		serial3 = &uart0;
		i2c0 = &i2c1;
		i2c1 = &i2c8;
		i2c2 = &i2c9;
	};

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

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

	gpio_keys {
		compatible = "gpio-keys";

		pinctrl-names = "default";
		pinctrl-0 = <&pinctrl_key_gpio_default>;

		bp1 {
			label = "PB_USER";
			gpios = <&pioA PIN_PA12 GPIO_ACTIVE_LOW>;
			linux,code = <KEY_PROG1>;
			wakeup-source;
		};
	};

	leds {
		compatible = "gpio-leds";
		pinctrl-names = "default";
		pinctrl-0 = <&pinctrl_led_gpio_default>;
		status = "okay"; /* Conflict with pwm. */

		red_led {
			label = "red";
			gpios = <&pioA PIN_PB8 GPIO_ACTIVE_HIGH>;
		};

		green_led {
			label = "green";
			gpios = <&pioA PIN_PA13 GPIO_ACTIVE_HIGH>;
		};

		blue_led {
			label = "blue";
			gpios = <&pioA PIN_PD20 GPIO_ACTIVE_HIGH>;
			linux,default-trigger = "heartbeat";
		};
	};

	/* 512 M */
	memory@60000000 {
		device_type = "memory";
		reg = <0x60000000 0x20000000>;
	};

	sound: sound {
		compatible = "simple-audio-card";
		simple-audio-card,name = "sama7g5ek audio";
		#address-cells = <1>;
		#size-cells = <0>;
		simple-audio-card,dai-link@0 {
			reg = <0>;
			cpu {
				sound-dai = <&spdiftx>;
			};
			codec {
				sound-dai = <&spdif_out>;
			};
		};
		simple-audio-card,dai-link@1 {
			reg = <1>;
			cpu {
				sound-dai = <&spdifrx>;
			};
			codec {
				sound-dai = <&spdif_in>;
			};
		};
	};

	spdif_in: spdif-in {
		#sound-dai-cells = <0>;
		compatible = "linux,spdif-dir";
	};

	spdif_out: spdif-out {
		#sound-dai-cells = <0>;
		compatible = "linux,spdif-dit";
	};
};

&cpu0 {
	cpu-supply = <&vddcpu>;
};

&dma0 {
	status = "okay";
};

&dma1 {
	status = "okay";
};

&dma2 {
	status = "okay";
};

&flx0 {
	atmel,flexcom-mode = <ATMEL_FLEXCOM_MODE_USART>;
	status = "disabled";

	uart0: serial@200 {
		pinctrl-names = "default";
		pinctrl-0 = <&pinctrl_flx0_default>;
		status = "disabled";
	};
};

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

	i2c1: i2c@600 {
		pinctrl-names = "default";
		pinctrl-0 = <&pinctrl_i2c1_default>;
		i2c-analog-filter;
		i2c-digital-filter;
		i2c-digital-filter-width-ns = <35>;
		status = "okay";

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

			regulators {
				vdd_3v3: VDD_IO {
					regulator-name = "VDD_IO";
					regulator-min-microvolt = <1200000>;
					regulator-max-microvolt = <3700000>;
					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-off-in-suspend;
						regulator-mode = <4>;
					};
				};

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

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

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

				vddcore: VDD_CORE {
					regulator-name = "VDD_CORE";
					regulator-min-microvolt = <1100000>;
					regulator-max-microvolt = <1850000>;
					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-off-in-suspend;
						regulator-mode = <4>;
					};
				};

				vddcpu: VDD_OTHER {
					regulator-name = "VDD_OTHER";
					regulator-min-microvolt = <1125000>;
					regulator-max-microvolt = <1850000>;
					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-off-in-suspend;
						regulator-mode = <4>;
					};
				};

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

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

					regulator-state-mem {
						regulator-off-in-suspend;
					};
				};

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

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

					regulator-state-mem {
						regulator-off-in-suspend;
					};
				};
			};
		};
	};
};

&flx3 {
	atmel,flexcom-mode = <ATMEL_FLEXCOM_MODE_USART>;
	status = "okay";

	uart3: serial@200 {
		pinctrl-names = "default";
		pinctrl-0 = <&pinctrl_flx3_default>;
		status = "okay";
	};
};

&flx4 {
	atmel,flexcom-mode = <ATMEL_FLEXCOM_MODE_USART>;
	status = "okay";

	uart4: serial@200 {
		pinctrl-names = "default";
		pinctrl-0 = <&pinctrl_flx4_default>;
		status = "okay";
	};
};

&flx7 {
	atmel,flexcom-mode = <ATMEL_FLEXCOM_MODE_USART>;
	status = "okay";

	uart7: serial@200 {
		pinctrl-names = "default";
		pinctrl-0 = <&pinctrl_flx7_default>;
		status = "okay";
	};
};

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

	i2c8: i2c@600 {
		pinctrl-names = "default";
		pinctrl-0 = <&pinctrl_i2c8_default>;
		i2c-analog-filter;
		i2c-digital-filter;
		i2c-digital-filter-width-ns = <35>;
		status = "okay";
	};
};

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

	i2c9: i2c@600 {
		pinctrl-names = "default";
		pinctrl-0 = <&pinctrl_i2c9_default>;
		i2c-analog-filter;
		i2c-digital-filter;
		i2c-digital-filter-width-ns = <35>;
		status = "okay";
	};
};

&flx11 {
	atmel,flexcom-mode = <ATMEL_FLEXCOM_MODE_SPI>;
	status = "okay";

	spi11: spi@400 {
		pinctrl-names = "default";
		pinctrl-0 = <&pinctrl_mikrobus1_spi &pinctrl_mikrobus1_spi_cs>;
		status = "okay";
	};
};

&gmac0 {
	#address-cells = <1>;
	#size-cells = <0>;
	pinctrl-names = "default";
	pinctrl-0 = <&pinctrl_gmac0_default
		     &pinctrl_gmac0_mdio_default
		     &pinctrl_gmac0_txck_default
		     &pinctrl_gmac0_phy_irq>;
	phy-mode = "rgmii-id";
	status = "okay";

	ethernet-phy@7 {
		reg = <0x7>;
		interrupt-parent = <&pioA>;
		interrupts = <PIN_PA31 IRQ_TYPE_LEVEL_LOW>;
	};
};

&gmac1 {
	#address-cells = <1>;
	#size-cells = <0>;
	pinctrl-names = "default";
	pinctrl-0 = <&pinctrl_gmac1_default
		     &pinctrl_gmac1_mdio_default
		     &pinctrl_gmac1_phy_irq>;
	phy-mode = "rmii";
	status = "okay";

	ethernet-phy@0 {
		reg = <0x0>;
		interrupt-parent = <&pioA>;
		interrupts = <PIN_PA21 IRQ_TYPE_LEVEL_LOW>;
	};
};

&i2s0 {
	pinctrl-names = "default";
	pinctrl-0 = <&pinctrl_i2s0_default>;
};

&pioA {
	pinctrl_flx0_default: flx0_default {
		pinmux = <PIN_PE3__FLEXCOM0_IO0>,
			 <PIN_PE4__FLEXCOM0_IO1>,
			 <PIN_PE6__FLEXCOM0_IO3>,
			 <PIN_PE7__FLEXCOM0_IO4>;
		bias-disable;
	};

	pinctrl_flx3_default: flx3_default {
		pinmux = <PIN_PD16__FLEXCOM3_IO0>,
			 <PIN_PD17__FLEXCOM3_IO1>;
		bias-disable;
	};

	pinctrl_flx4_default: flx4_default {
		pinmux = <PIN_PD18__FLEXCOM4_IO0>,
			 <PIN_PD19__FLEXCOM4_IO1>;
		bias-disable;
	};

	pinctrl_flx7_default: flx7_default {
		pinmux = <PIN_PC23__FLEXCOM7_IO0>,
			 <PIN_PC24__FLEXCOM7_IO1>;
		bias-disable;
	};

	pinctrl_gmac0_default: gmac0_default {
		pinmux = <PIN_PA16__G0_TX0>,
			 <PIN_PA17__G0_TX1>,
			 <PIN_PA26__G0_TX2>,
			 <PIN_PA27__G0_TX3>,
			 <PIN_PA19__G0_RX0>,
			 <PIN_PA20__G0_RX1>,
			 <PIN_PA28__G0_RX2>,
			 <PIN_PA29__G0_RX3>,
			 <PIN_PA15__G0_TXEN>,
			 <PIN_PA30__G0_RXCK>,
			 <PIN_PA18__G0_RXDV>,
			 <PIN_PA25__G0_125CK>;
		slew-rate = <0>;
		bias-disable;
	};

	pinctrl_gmac0_mdio_default: gmac0_mdio_default {
		pinmux = <PIN_PA22__G0_MDC>,
			 <PIN_PA23__G0_MDIO>;
		bias-disable;
	};

	pinctrl_gmac0_txck_default: gmac0_txck_default {
		pinmux = <PIN_PA24__G0_TXCK>;
		slew-rate = <0>;
		bias-pull-up;
	};

	pinctrl_gmac0_phy_irq: gmac0_phy_irq {
		pinmux = <PIN_PA31__GPIO>;
		bias-disable;
	};

	pinctrl_gmac1_default: gmac1_default {
		pinmux = <PIN_PD30__G1_TXCK>,
			 <PIN_PD22__G1_TX0>,
			 <PIN_PD23__G1_TX1>,
			 <PIN_PD21__G1_TXEN>,
			 <PIN_PD25__G1_RX0>,
			 <PIN_PD26__G1_RX1>,
			 <PIN_PD27__G1_RXER>,
			 <PIN_PD24__G1_RXDV>;
		slew-rate = <0>;
		bias-disable;
	};

	pinctrl_gmac1_mdio_default: gmac1_mdio_default {
		pinmux = <PIN_PD28__G1_MDC>,
			 <PIN_PD29__G1_MDIO>;
		bias-disable;
	};

	pinctrl_gmac1_phy_irq: gmac1_phy_irq {
		pinmux = <PIN_PA21__GPIO>;
		bias-disable;
	};

	pinctrl_i2c1_default: i2c1_default {
		pinmux = <PIN_PC9__FLEXCOM1_IO0>,
			 <PIN_PC10__FLEXCOM1_IO1>;
		bias-disable;
	};

	pinctrl_i2c8_default: i2c8_default {
		pinmux = <PIN_PC14__FLEXCOM8_IO0>,
			 <PIN_PC13__FLEXCOM8_IO1>;
		bias-disable;
	};

	pinctrl_i2c9_default: i2c9_default {
		pinmux = <PIN_PC18__FLEXCOM9_IO0>,
			 <PIN_PC19__FLEXCOM9_IO1>;
		bias-disable;
	};

	pinctrl_i2s0_default: i2s0_default {
		pinmux = <PIN_PB23__I2SMCC0_CK>,
			 <PIN_PB24__I2SMCC0_WS>,
			 <PIN_PB25__I2SMCC0_DOUT1>,
			 <PIN_PB26__I2SMCC0_DOUT0>,
			 <PIN_PB27__I2SMCC0_MCK>;
		bias-disable;
	};

	pinctrl_key_gpio_default: key_gpio_default {
		pinmux = <PIN_PA12__GPIO>;
		bias-pull-up;
	};

	pinctrl_led_gpio_default: led_gpio_default {
		pinmux = <PIN_PA13__GPIO>,
			 <PIN_PB8__GPIO>,
			 <PIN_PD20__GPIO>;
		bias-pull-up;
	};

	pinctrl_mikrobus1_an_default: mikrobus1_an_default {
		pinmux = <PIN_PD0__GPIO>;
		bias-disable;
	};

	pinctrl_mikrobus2_an_default: mikrobus2_an_default {
		pinmux = <PIN_PD1__GPIO>;
		bias-disable;
	};

	pinctrl_mikrobus1_pwm2_default: mikrobus1_pwm2_default {
		pinmux = <PIN_PA13__PWMH2>;
		bias-disable;
	};

	pinctrl_mikrobus2_pwm3_default: mikrobus2_pwm3_default {
		pinmux = <PIN_PD20__PWMH3>;
		bias-disable;
	};

	pinctrl_mikrobus1_spi_cs: mikrobus1_spi_cs {
		pinmux = <PIN_PB6__FLEXCOM11_IO3>;
		bias-disable;
	};

	pinctrl_mikrobus1_spi: mikrobus1_spi {
		pinmux = <PIN_PB3__FLEXCOM11_IO0>,
			 <PIN_PB4__FLEXCOM11_IO1>,
			 <PIN_PB5__FLEXCOM11_IO2>;
		bias-disable;
	};

	pinctrl_sdmmc0_default: sdmmc0_default {
		cmd_data {
			pinmux = <PIN_PA1__SDMMC0_CMD>,
				 <PIN_PA3__SDMMC0_DAT0>,
				 <PIN_PA4__SDMMC0_DAT1>,
				 <PIN_PA5__SDMMC0_DAT2>,
				 <PIN_PA6__SDMMC0_DAT3>,
				 <PIN_PA7__SDMMC0_DAT4>,
				 <PIN_PA8__SDMMC0_DAT5>,
				 <PIN_PA9__SDMMC0_DAT6>,
				 <PIN_PA10__SDMMC0_DAT7>;
			slew-rate = <0>;
			bias-pull-up;
		};

		ck_cd_rstn_vddsel {
			pinmux = <PIN_PA0__SDMMC0_CK>,
				 <PIN_PA2__SDMMC0_RSTN>,
				 <PIN_PA11__SDMMC0_DS>;
			slew-rate = <0>;
			bias-pull-up;
		};
	};

	pinctrl_sdmmc1_default: sdmmc1_default {
		cmd_data {
			pinmux = <PIN_PB29__SDMMC1_CMD>,
				 <PIN_PB31__SDMMC1_DAT0>,
				 <PIN_PC0__SDMMC1_DAT1>,
				 <PIN_PC1__SDMMC1_DAT2>,
				 <PIN_PC2__SDMMC1_DAT3>;
			slew-rate = <0>;
			bias-pull-up;
		};

		ck_cd_rstn_vddsel {
			pinmux = <PIN_PB30__SDMMC1_CK>,
				 <PIN_PB28__SDMMC1_RSTN>,
				 <PIN_PC5__SDMMC1_1V8SEL>,
				 <PIN_PC4__SDMMC1_CD>;
			slew-rate = <0>;
			bias-pull-up;
		};
	};

	pinctrl_sdmmc2_default: sdmmc2_default {
		cmd_data {
			pinmux = <PIN_PD3__SDMMC2_CMD>,
				 <PIN_PD5__SDMMC2_DAT0>,
				 <PIN_PD6__SDMMC2_DAT1>,
				 <PIN_PD7__SDMMC2_DAT2>,
				 <PIN_PD8__SDMMC2_DAT3>;
			slew-rate = <0>;
			bias-pull-up;
		};

		ck {
			pinmux = <PIN_PD4__SDMMC2_CK>;
			slew-rate = <0>;
			bias-pull-up;
		};
	};

	pinctrl_spdifrx_default: spdifrx_default {
		pinmux = <PIN_PB0__SPDIF_RX>;
		bias-disable;
	};

	pinctrl_spdiftx_default: spdiftx_default {
		pinmux = <PIN_PB1__SPDIF_TX>;
		bias-disable;
	};
};

&pwm {
	pinctrl-names = "default";
	pinctrl-0 = <&pinctrl_mikrobus1_pwm2_default &pinctrl_mikrobus2_pwm3_default>;
	status = "disabled"; /* Conflict with leds. */
};

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

&sdmmc0 {
	bus-width = <8>;
	non-removable;
	no-1-8-v;
	sdhci-caps-mask = <0x0 0x00200000>;
	pinctrl-names = "default";
	pinctrl-0 = <&pinctrl_sdmmc0_default>;
	status = "okay";
};

&sdmmc1 {
	bus-width = <4>;
	no-1-8-v;
	sdhci-caps-mask = <0x0 0x00200000>;
	pinctrl-names = "default";
	pinctrl-0 = <&pinctrl_sdmmc1_default>;
	status = "okay";
};

&sdmmc2 {
	bus-width = <4>;
	no-1-8-v;
	sdhci-caps-mask = <0x0 0x00200000>;
	pinctrl-names = "default";
	pinctrl-0 = <&pinctrl_sdmmc2_default>;
};

&shdwc {
	atmel,shdwc-debouncer = <976>;
	status = "okay";

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

&spdifrx {
	pinctrl-names = "default";
	pinctrl-0 = <&pinctrl_spdifrx_default>;
	status = "okay";
};

&spdiftx {
	pinctrl-names = "default";
	pinctrl-0 = <&pinctrl_spdiftx_default>;
	status = "okay";
};

&trng {
	status = "okay";
};

&vddout25 {
	vin-supply = <&vdd_3v3>;
	status = "okay";
};
