// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
/*
 * at91-sama7g54_curiosity.dts - Device Tree file for SAMA7G54 Curiosity Board
 *
 * Copyright (C) 2024 Microchip Technology Inc. and its subsidiaries
 *
 * Author: Mihai Sain <mihai.sain@microchip.com>
 *
 */
/dts-v1/;
#include "sama7g5-pinfunc.h"
#include "sama7g5.dtsi"
#include <dt-bindings/input/input.h>
#include <dt-bindings/leds/common.h>
#include <dt-bindings/mfd/atmel-flexcom.h>
#include <dt-bindings/pinctrl/at91.h>

/ {
	model = "Microchip SAMA7G54 Curiosity";
	compatible = "microchip,sama7g54-curiosity", "microchip,sama7g5", "microchip,sama7";

	aliases {
		serial0 = &uart3;
		i2c0 = &i2c10;
	};

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

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

		button-user {
			label = "user-button";
			gpios = <&pioA PIN_PD19 GPIO_ACTIVE_LOW>;
			linux,code = <KEY_PROG1>;
			wakeup-source;
		};
	};

	leds {
		compatible = "gpio-leds";
		pinctrl-names = "default";
		pinctrl-0 = <&pinctrl_led_gpio_default>;

		led-red {
			color = <LED_COLOR_ID_RED>;
			function = LED_FUNCTION_POWER;
			gpios = <&pioA PIN_PD13 GPIO_ACTIVE_HIGH>;
			default-state = "off";
		};

		led-green {
			color = <LED_COLOR_ID_GREEN>;
			function = LED_FUNCTION_BOOT;
			gpios = <&pioA PIN_PD14 GPIO_ACTIVE_HIGH>;
			default-state = "off";
		};

		led-blue {
			color = <LED_COLOR_ID_BLUE>;
			function = LED_FUNCTION_CPU;
			gpios = <&pioA PIN_PB15 GPIO_ACTIVE_HIGH>;
			linux,default-trigger = "heartbeat";
		};
	};

	memory@60000000 {
		device_type = "memory";
		reg = <0x60000000 0x10000000>; /* 256 MiB DDR3L-1066 16-bit */
	};

	reg_5v: regulator-5v {
		compatible = "regulator-fixed";
		regulator-name = "5V_MAIN";
		regulator-min-microvolt = <5000000>;
		regulator-max-microvolt = <5000000>;
		regulator-always-on;
	};
};

&adc {
	vddana-supply = <&vddout25>;
	vref-supply = <&vddout25>;
	pinctrl-names = "default";
	pinctrl-0 = <&pinctrl_mikrobus1_an_default &pinctrl_mikrobus2_an_default>;
	status = "okay";
};

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

&dma0 {
	status = "okay";
};

&dma1 {
	status = "okay";
};

&dma2 {
	status = "okay";
};

&ebi {
	pinctrl-names = "default";
	pinctrl-0 = <&pinctrl_nand_default>;
	status = "okay";

	nand_controller: nand-controller {
		status = "okay";

		nand@3 {
			reg = <0x3 0x0 0x800000>;
			atmel,rb = <0>;
			nand-bus-width = <8>;
			nand-ecc-mode = "hw";
			nand-ecc-strength = <8>;
			nand-ecc-step-size = <512>;
			nand-on-flash-bbt;
			label = "nand";

			partitions {
				compatible = "fixed-partitions";
				#address-cells = <1>;
				#size-cells = <1>;

				at91bootstrap@0 {
					label = "nand: at91bootstrap";
					reg = <0x0 0x40000>;
				};

				bootloader@40000 {
					label = "nand: u-boot";
					reg = <0x40000 0x100000>;
				};

				bootloaderenv@140000 {
					label = "nand: u-boot env";
					reg = <0x140000 0x40000>;
				};

				dtb@180000 {
					label = "nand: device tree";
					reg = <0x180000 0x80000>;
				};

				kernel@200000 {
					label = "nand: kernel";
					reg = <0x200000 0x600000>;
				};

				rootfs@800000 {
					label = "nand: rootfs";
					reg = <0x800000 0x1f800000>;
				};
			};
		};
	};
};

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

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

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

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

		eeprom@51 {
			compatible = "atmel,24c02";
			reg = <0x51>;
			pagesize = <16>;
			size = <256>;
			vcc-supply = <&vdd_3v3>;
		};

		pmic@5b {
			compatible = "microchip,mcp16502";
			reg = <0x5b>;
			lvin-supply = <&reg_5v>;
			pvin1-supply = <&reg_5v>;
			pvin2-supply = <&reg_5v>;
			pvin3-supply = <&reg_5v>;
			pvin4-supply = <&reg_5v>;

			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-suspend-microvolt = <3300000>;
						regulator-mode = <4>;
					};

					regulator-state-mem {
						regulator-off-in-suspend;
						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-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 = <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-suspend-microvolt = <1150000>;
						regulator-mode = <4>;
					};

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

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

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

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

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

					regulator-state-standby {
						regulator-suspend-microvolt = <1800000>;
						regulator-on-in-suspend;
					};

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

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

					regulator-state-standby {
						regulator-suspend-microvolt = <3300000>;
						regulator-on-in-suspend;
					};

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

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

&qspi1 {
	pinctrl-names = "default";
	pinctrl-0 = <&pinctrl_qspi1_default>;
	status = "okay";

	flash@0 {
		compatible = "jedec,spi-nor";
		reg = <0x0>;
		spi-max-frequency = <100000000>;
		spi-tx-bus-width = <4>;
		spi-rx-bus-width = <4>;
		m25p,fast-read;
	};
};

&pioA {
	pinctrl_flx3_default: flx3-default {
		pinmux = <PIN_PD16__FLEXCOM3_IO0>,
			 <PIN_PD17__FLEXCOM3_IO1>;
		bias-pull-up;
	};

	pinctrl_flx10_default: flx10-default {
		pinmux = <PIN_PC30__FLEXCOM10_IO0>,
			 <PIN_PC31__FLEXCOM10_IO1>;
		bias-pull-up;
	};

	pinctrl_key_gpio_default: key-gpio-default {
		pinmux = <PIN_PD19__GPIO>;
		bias-pull-up;
	};

	pinctrl_led_gpio_default: led-gpio-default {
		pinmux = <PIN_PD13__GPIO>,
			 <PIN_PD14__GPIO>,
			 <PIN_PB15__GPIO>;
		bias-pull-up;
	};

	pinctrl_mikrobus1_an_default: mikrobus1-an-default {
		pinmux = <PIN_PC15__GPIO>;
		bias-disable;
	};

	pinctrl_mikrobus2_an_default: mikrobus2-an-default {
		pinmux = <PIN_PC13__GPIO>;
		bias-disable;
	};

	pinctrl_nand_default: nand-default {
		pinmux = <PIN_PD9__D0>,
			 <PIN_PD10__D1>,
			 <PIN_PD11__D2>,
			 <PIN_PC21__D3>,
			 <PIN_PC22__D4>,
			 <PIN_PC23__D5>,
			 <PIN_PC24__D6>,
			 <PIN_PD2__D7>,
			 <PIN_PD3__NANDRDY>,
			 <PIN_PD4__NCS3_NANDCS>,
			 <PIN_PD5__NWE_NWR0_NANDWE>,
			 <PIN_PD6__NRD_NANDOE>,
			 <PIN_PD7__A21_NANDALE>,
			 <PIN_PD8__A22_NANDCLE>;
		bias-disable;
		slew-rate = <0>;
	};

	pinctrl_qspi1_default: qspi1-default {
		pinmux = <PIN_PB22__QSPI1_IO3>,
			 <PIN_PB23__QSPI1_IO2>,
			 <PIN_PB24__QSPI1_IO1>,
			 <PIN_PB25__QSPI1_IO0>,
			 <PIN_PB26__QSPI1_CS>,
			 <PIN_PB27__QSPI1_SCK>;
		bias-pull-up;
		slew-rate = <0>;
	};

	pinctrl_sdmmc0_default: sdmmc0-default {
		pinmux = <PIN_PA0__SDMMC0_CK>,
			 <PIN_PA1__SDMMC0_CMD>,
			 <PIN_PA2__SDMMC0_RSTN>,
			 <PIN_PA3__SDMMC0_DAT0>,
			 <PIN_PA4__SDMMC0_DAT1>,
			 <PIN_PA5__SDMMC0_DAT2>,
			 <PIN_PA6__SDMMC0_DAT3>;
		bias-pull-up;
		slew-rate = <0>;
	};

	pinctrl_sdmmc1_default: sdmmc1-default {
		pinmux = <PIN_PB29__SDMMC1_CMD>,
			 <PIN_PB30__SDMMC1_CK>,
			 <PIN_PB31__SDMMC1_DAT0>,
			 <PIN_PC0__SDMMC1_DAT1>,
			 <PIN_PC1__SDMMC1_DAT2>,
			 <PIN_PC2__SDMMC1_DAT3>,
			 <PIN_PC4__SDMMC1_CD>;
		bias-pull-up;
		slew-rate = <0>;
	};
};

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

/* M.2 slot for wireless card */
&sdmmc0 {
	bus-width = <4>;
	cd-gpios = <&pioA 31 GPIO_ACTIVE_LOW>;
	disable-wp;
	sdhci-caps-mask = <0x0 0x00200000>;
	vmmc-supply = <&vdd_3v3>;
	vqmmc-supply = <&vdd_3v3>;
	pinctrl-names = "default";
	pinctrl-0 = <&pinctrl_sdmmc0_default>;
	status = "okay";
};

/* micro SD socket */
&sdmmc1 {
	bus-width = <4>;
	disable-wp;
	sdhci-caps-mask = <0x0 0x00200000>;
	vmmc-supply = <&vdd_3v3>;
	vqmmc-supply = <&vdd_3v3>;
	pinctrl-names = "default";
	pinctrl-0 = <&pinctrl_sdmmc1_default>;
	status = "okay";
};

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

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

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

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

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

&trng {
	status = "okay";
};

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