// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
/*
 * at91-sama5d29_curiosity.dts - Device Tree file for SAMA5D29 Curiosity board
 *
 * Copyright (C) 2023 Microchip Technology Inc. and its subsidiaries
 *
 * Author: Mihai Sain <mihai.sain@microchip.com>
 *
 */
/dts-v1/;
#include "sama5d29.dtsi"
#include "sama5d2-pinfunc.h"
#include <dt-bindings/gpio/gpio.h>
#include <dt-bindings/input/input.h>
#include <dt-bindings/mfd/atmel-flexcom.h>

/ {
	model = "Microchip SAMA5D29 Curiosity";
	compatible = "microchip,sama5d29-curiosity", "atmel,sama5d29", "atmel,sama5d2", "atmel,sama5";

	aliases {
		serial0 = &uart0;	// debug
		serial1 = &uart1;	// RPi
		serial2 = &uart3;	// mikro BUS 2
		serial3 = &uart4;	// mikro BUS 1
		serial4 = &uart6;	// flx1 Bluetooth
		i2c0 = &i2c0;
		i2c1 = &i2c1;
	};

	chosen {
		bootargs = "console=ttyS0,115200 root=/dev/mmcblk0p2 rw rootwait";
		stdout-path = "serial0:115200n8";
	};

	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>;

		button-1 {
			label = "USER BUTTON";
			gpios = <&pioA PIN_PA17 GPIO_ACTIVE_LOW>;
			linux,code = <KEY_PROG1>;
			wakeup-source;
		};
	};

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

		led-red {
			label = "red";
			gpios = <&pioA PIN_PA7 GPIO_ACTIVE_HIGH>;
		};

		led-green {
			label = "green";
			gpios = <&pioA PIN_PA8 GPIO_ACTIVE_HIGH>;
		};

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

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

&adc {
	vddana-supply = <&vdd_3v3>;
	vref-supply = <&vdd_3v3>;
	pinctrl-names = "default";
	pinctrl-0 = <&pinctrl_adc_default &pinctrl_adtrg_default>;
	status = "okay";
};

&can0 {
	pinctrl-names = "default";
	pinctrl-0 = <&pinctrl_can0_default>;
	status = "okay";
};

&can1 {
	pinctrl-names = "default";
	pinctrl-0 = <&pinctrl_can1_default>;
	status = "okay";
};

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

	uart6: serial@200 {
		pinctrl-0 = <&pinctrl_flx1_default>;
		pinctrl-names = "default";
		atmel,use-dma-rx;
		atmel,use-dma-tx;
		status = "okay";
	};
};

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

	spi6: spi@400 {
		dmas = <0>, <0>;
		pinctrl-names = "default";
		pinctrl-0 = <&pinctrl_rpi_spi>;
		status = "okay";
	};
};

&i2c0 {
	dmas = <0>, <0>;
	pinctrl-names = "default", "gpio";
	pinctrl-0 = <&pinctrl_i2c0_default>;
	pinctrl-1 = <&pinctrl_i2c0_gpio>;
	sda-gpios = <&pioA PIN_PB31 GPIO_ACTIVE_HIGH>;
	scl-gpios = <&pioA PIN_PC0 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
	i2c-sda-hold-time-ns = <350>;
	status = "okay";

	mcp16502@5b {
		compatible = "microchip,mcp16502";
		reg = <0x5b>;
		status = "okay";
		lpm-gpios = <&pioBU 0 GPIO_ACTIVE_LOW>;

		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-off-in-suspend;
					regulator-mode = <4>;
				};
			};

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

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

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

			vdd_core: VDD_CORE {
				regulator-name = "VDD_CORE";
				regulator-min-microvolt = <1250000>;
				regulator-max-microvolt = <1250000>;
				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>;
				};
			};

			vdd_ddr: VDD_OTHER {
				regulator-name = "VDD_OTHER";
				regulator-min-microvolt = <1800000>;
				regulator-max-microvolt = <1800000>;
				regulator-initial-mode = <2>;
				regulator-allowed-modes = <2>, <4>;
				regulator-always-on;

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

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

			LDO1 {
				regulator-name = "LDO1";
				regulator-min-microvolt = <2500000>;
				regulator-max-microvolt = <2500000>;
				regulator-always-on;

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

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

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

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

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

&i2c1 {
	dmas = <0>, <0>;
	pinctrl-names = "default", "gpio";
	pinctrl-0 = <&pinctrl_i2c1_default>;
	pinctrl-1 = <&pinctrl_i2c1_gpio>;
	i2c-analog-filter;
	i2c-digital-filter;
	i2c-digital-filter-width-ns = <35>;
	sda-gpios = <&pioA PIN_PD4 GPIO_ACTIVE_HIGH>;
	scl-gpios = <&pioA PIN_PD5 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
	status = "okay";
};

&pioA {
	pinctrl_adc_default: adc-default {
		pinmux = <PIN_PD25__GPIO>,
			 <PIN_PD26__GPIO>;
		bias-disable;
	};

	pinctrl_adtrg_default: adtrg-default {
		pinmux = <PIN_PD31__ADTRG>;
		bias-pull-up;
	};

	pinctrl_can0_default: can0-default {
		pinmux = <PIN_PC10__CANTX0>,
			 <PIN_PC11__CANRX0>;
		bias-disable;
	};

	pinctrl_can1_default: can1-default {
		pinmux = <PIN_PC26__CANTX1>,
			 <PIN_PC27__CANRX1>;
		bias-disable;
	};

	pinctrl_debug_uart: debug-uart {
		pinmux = <PIN_PB26__URXD0>,
			 <PIN_PB27__UTXD0>;
		bias-disable;
	};

	pinctrl_flx1_default: flx1-default {
		pinmux = <PIN_PA24__FLEXCOM1_IO0>,
			 <PIN_PA23__FLEXCOM1_IO1>,
			 <PIN_PA25__FLEXCOM1_IO3>,
			 <PIN_PA26__FLEXCOM1_IO4>;
		bias-disable;
	};

	pinctrl_i2c0_default: i2c0-default {
		pinmux = <PIN_PB31__TWD0>,
			 <PIN_PC0__TWCK0>;
		bias-disable;
	};

	pinctrl_i2c0_gpio: i2c0-gpio-default {
		pinmux = <PIN_PB31__GPIO>,
			 <PIN_PC0__GPIO>;
		bias-disable;
	};

	pinctrl_i2c1_default: i2c1-default {
		pinmux = <PIN_PD4__TWD1>,
			 <PIN_PD5__TWCK1>;
		bias-disable;
	};

	pinctrl_i2c1_gpio: i2c1-gpio-default {
		pinmux = <PIN_PD4__GPIO>,
			 <PIN_PD5__GPIO>;
		bias-disable;
	};

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

	pinctrl_led_gpio_default: led-gpio-default {
		pinmux = <PIN_PA7__GPIO>,
			 <PIN_PA8__GPIO>,
			 <PIN_PA9__GPIO>;
		bias-pull-up;
	};

	pinctrl_mikrobus1_pwm: mikrobus1-pwm {
		pinmux = <PIN_PA31__PWML0>;
		bias-disable;
	};

	pinctrl_mikrobus2_pwm: mikrobus2-pwm {
		pinmux = <PIN_PB0__PWMH1>;
		bias-disable;
	};

	pinctrl_mikrobus1_uart: mikrobus1-uart {
		pinmux = <PIN_PB3__URXD4>,
			 <PIN_PB4__UTXD4>;
		bias-disable;
	};

	pinctrl_mikrobus2_uart: mikrobus2-uart {
		pinmux = <PIN_PB11__URXD3>,
			 <PIN_PB12__UTXD3>;
		bias-disable;
	};

	pinctrl_qspi1_default: qspi1-default {
		pinmux = <PIN_PB5__QSPI1_SCK>,
			 <PIN_PB6__QSPI1_CS>,
			 <PIN_PB7__QSPI1_IO0>,
			 <PIN_PB8__QSPI1_IO1>,
			 <PIN_PB9__QSPI1_IO2>,
			 <PIN_PB10__QSPI1_IO3>;
		bias-disable;
	};

	pinctrl_rpi_spi: rpi-spi {
		pinmux = <PIN_PD12__FLEXCOM4_IO0>,
			 <PIN_PD13__FLEXCOM4_IO1>,
			 <PIN_PD14__FLEXCOM4_IO2>,
			 <PIN_PD15__FLEXCOM4_IO3>,
			 <PIN_PD16__FLEXCOM4_IO4>;
		bias-disable;
	};

	pinctrl_rpi_uart: rpi-uart {
		pinmux = <PIN_PD2__URXD1>,
			 <PIN_PD3__UTXD1>;
		bias-disable;
	};

	pinctrl_sdmmc0_default: sdmmc0-default {
		pinmux = <PIN_PA0__SDMMC0_CK>,
			 <PIN_PA1__SDMMC0_CMD>,
			 <PIN_PA2__SDMMC0_DAT0>,
			 <PIN_PA3__SDMMC0_DAT1>,
			 <PIN_PA4__SDMMC0_DAT2>,
			 <PIN_PA5__SDMMC0_DAT3>,
			 <PIN_PA11__SDMMC0_VDDSEL>,
			 <PIN_PA13__SDMMC0_CD>;
		bias-disable;
	};

	pinctrl_sdmmc1_default: sdmmc1-default {
		pinmux = <PIN_PA18__SDMMC1_DAT0>,
			 <PIN_PA19__SDMMC1_DAT1>,
			 <PIN_PA20__SDMMC1_DAT2>,
			 <PIN_PA21__SDMMC1_DAT3>,
			 <PIN_PA22__SDMMC1_CK>,
			 <PIN_PA28__SDMMC1_CMD>,
			 <PIN_PA30__SDMMC1_CD>;
		bias-disable;
	};

	pinctrl_spi1_default: spi1-default {
		pinmux = <PIN_PC1__SPI1_SPCK>,
			 <PIN_PC2__SPI1_MOSI>,
			 <PIN_PC3__SPI1_MISO>,
			 <PIN_PC4__SPI1_NPCS0>,
			 <PIN_PC5__SPI1_NPCS1>,
			 <PIN_PC6__SPI1_NPCS2>,
			 <PIN_PC7__SPI1_NPCS3>;
		bias-disable;
	};

	pinctrl_usb_default: usb-default {
		pinmux = <PIN_PA6__GPIO>;
		bias-disable;
	};

	pinctrl_usba_vbus: usba-vbus {
		pinmux = <PIN_PB13__GPIO>;
		bias-disable;
	};
};

&pwm0 {
	pinctrl-names = "default";
	pinctrl-0 = <&pinctrl_mikrobus1_pwm &pinctrl_mikrobus2_pwm>;
	status = "okay";
};

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

	flash@0 {
		#address-cells = <1>;
		#size-cells = <1>;
		compatible = "jedec,spi-nor";
		reg = <0>;
		spi-max-frequency = <80000000>;
		spi-tx-bus-width = <4>;
		spi-rx-bus-width = <4>;
		m25p,fast-read;
		label = "atmel_qspi1";
		status = "okay";

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

		bootloader@40000 {
			label = "bootloader";
			reg = <0x40000 0xc0000>;
		};

		bootloaderenvred@100000 {
			label = "bootloader env redundant";
			reg = <0x100000 0x40000>;
		};

		bootloaderenv@140000 {
			label = "bootloader env";
			reg = <0x140000 0x40000>;
		};

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

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

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

&sdmmc1 {
	bus-width = <4>;
	pinctrl-names = "default";
	pinctrl-0 = <&pinctrl_sdmmc1_default>;
	disable-wp;
	status = "okay";
};

&shutdown_controller {
	debounce-delay-us = <976>;
	atmel,wakeup-rtc-timer;

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

&spi1 {
	pinctrl-names = "default";
	pinctrl-0 = <&pinctrl_spi1_default>;
	status = "okay";
};

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

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

&uart0 {
	pinctrl-names = "default";
	pinctrl-0 = <&pinctrl_debug_uart>;
	atmel,use-dma-rx;
	atmel,use-dma-tx;
	status = "okay";
};

&uart1 {
	pinctrl-names = "default";
	pinctrl-0 = <&pinctrl_rpi_uart>;
	atmel,use-dma-rx;
	atmel,use-dma-tx;
	status = "okay";
};

&uart3 {
	pinctrl-names = "default";
	pinctrl-0 = <&pinctrl_mikrobus2_uart>;
	atmel,use-dma-rx;
	atmel,use-dma-tx;
	status = "okay";
};

&uart4 {
	pinctrl-names = "default";
	pinctrl-0 = <&pinctrl_mikrobus1_uart>;
	atmel,use-dma-rx;
	atmel,use-dma-tx;
	status = "okay";
};

&usb0 {
	atmel,vbus-gpio = <&pioA PIN_PB13 GPIO_ACTIVE_HIGH>;
	pinctrl-names = "default";
	pinctrl-0 = <&pinctrl_usba_vbus>;
	status = "okay";
};

&usb1 {
	num-ports = <3>;
	atmel,vbus-gpio = <0
			   &pioA PIN_PA6 GPIO_ACTIVE_HIGH
			   0>;
	pinctrl-names = "default";
	pinctrl-0 = <&pinctrl_usb_default>;
	status = "okay";
};

&usb2 {
	status = "okay";
};

&watchdog {
	status = "okay";
};
