// SPDX-License-Identifier: GPL-2.0+
/*
 * Device Tree file for the Kontron SMARC-sAL28 board.
 *
 * Copyright (C) 2021 Michael Walle <michael@walle.cc>
 *
 */

/dts-v1/;
#include "fsl-ls1028a.dtsi"
#include <dt-bindings/interrupt-controller/irq.h>
#include <dt-bindings/gpio/gpio.h>
#include <dt-bindings/input/input.h>

/ {
	model = "Kontron SMARC-sAL28";
	compatible = "kontron,sl28", "fsl,ls1028a";

	aliases {
		crypto = &crypto;
		serial0 = &duart0;
		serial1 = &duart1;
		serial2 = &lpuart1;
		spi0 = &fspi;
		spi1 = &dspi2;
		mmc0 = &esdhc1;
		mmc1 = &esdhc;
		rtc0 = &rtc;
		rtc1 = &ftm_alarm0;
	};

	buttons0 {
		compatible = "gpio-keys";

		power-button {
			interrupts-extended = <&sl28cpld_intc
					       4 IRQ_TYPE_EDGE_BOTH>;
			linux,code = <KEY_POWER>;
			label = "Power";
		};

		sleep-button {
			interrupts-extended = <&sl28cpld_intc
					       5 IRQ_TYPE_EDGE_BOTH>;
			linux,code = <KEY_SLEEP>;
			label = "Sleep";
		};
	};

	buttons1 {
		compatible = "gpio-keys-polled";
		poll-interval = <200>;

		lid-switch {
			linux,input-type = <EV_SW>;
			linux,code = <SW_LID>;
			gpios = <&sl28cpld_gpio3 4 GPIO_ACTIVE_LOW>;
			label = "Lid";
		};
	};

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

&can0 {
	status = "okay";
};

&dspi2 {
	status = "okay";
};

&duart0 {
	status = "okay";
};

&duart1 {
	status = "okay";
};

&enetc_mdio_pf3 {
	phy0: ethernet-phy@5 {
		reg = <0x5>;
		eee-broken-1000t;
		eee-broken-100tx;
	};
};

&enetc_port0 {
	phy-handle = <&phy0>;
	phy-mode = "sgmii";
	managed = "in-band-status";
	status = "okay";
};

&esdhc {
	sd-uhs-sdr104;
	sd-uhs-sdr50;
	sd-uhs-sdr25;
	sd-uhs-sdr12;
	status = "okay";
};

&esdhc1 {
	mmc-hs200-1_8v;
	mmc-hs400-1_8v;
	bus-width = <8>;
	status = "okay";
};

&fspi {
	status = "okay";

	flash@0 {
		compatible = "jedec,spi-nor";
		m25p,fast-read;
		spi-max-frequency = <133000000>;
		reg = <0>;
		/* The following setting enables 1-1-2 (CMD-ADDR-DATA) mode */
		spi-rx-bus-width = <2>; /* 2 SPI Rx lines */
		spi-tx-bus-width = <1>; /* 1 SPI Tx line */

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

			partition@0 {
				reg = <0x000000 0x010000>;
				label = "rcw";
				read-only;
			};

			partition@10000 {
				reg = <0x010000 0x1d0000>;
				label = "failsafe bootloader";
				read-only;
			};

			partition@200000 {
				reg = <0x200000 0x010000>;
				label = "configuration store";
			};

			partition@210000 {
				reg = <0x210000 0x1d0000>;
				label = "bootloader";
			};

			partition@3e0000 {
				reg = <0x3e0000 0x020000>;
				label = "bootloader environment";
			};
		};
	};
};

&gpio1 {
	gpio-line-names =
		"", "", "", "", "", "", "", "",
		"", "", "", "", "", "", "", "",
		"", "", "", "", "", "", "TDO", "TCK",
		"", "", "", "", "", "", "", "";
};

&gpio2 {
	gpio-line-names =
		"", "", "", "", "", "", "TMS", "TDI",
		"", "", "", "", "", "", "", "",
		"", "", "", "", "", "", "", "",
		"", "", "", "", "", "", "", "";
};

&i2c0 {
	status = "okay";

	rtc: rtc@32 {
		compatible = "microcrystal,rv8803";
		reg = <0x32>;
	};

	sl28cpld@4a {
		compatible = "kontron,sl28cpld";
		reg = <0x4a>;
		#address-cells = <1>;
		#size-cells = <0>;

		watchdog@4 {
			compatible = "kontron,sl28cpld-wdt";
			reg = <0x4>;
			kontron,assert-wdt-timeout-pin;
		};

		hwmon@b {
			compatible = "kontron,sl28cpld-fan";
			reg = <0xb>;
		};

		sl28cpld_pwm0: pwm@c {
			compatible = "kontron,sl28cpld-pwm";
			reg = <0xc>;
			#pwm-cells = <2>;
		};

		sl28cpld_pwm1: pwm@e {
			compatible = "kontron,sl28cpld-pwm";
			reg = <0xe>;
			#pwm-cells = <2>;
		};

		sl28cpld_gpio0: gpio@10 {
			compatible = "kontron,sl28cpld-gpio";
			reg = <0x10>;
			interrupts-extended = <&gpio2 6
					       IRQ_TYPE_EDGE_FALLING>;

			gpio-controller;
			#gpio-cells = <2>;
			gpio-line-names =
				"GPIO0_CAM0_PWR_N", "GPIO1_CAM1_PWR_N",
				"GPIO2_CAM0_RST_N", "GPIO3_CAM1_RST_N",
				"GPIO4_HDA_RST_N", "GPIO5_PWM_OUT",
				"GPIO6_TACHIN", "GPIO7";

			interrupt-controller;
			#interrupt-cells = <2>;
		};

		sl28cpld_gpio1: gpio@15 {
			compatible = "kontron,sl28cpld-gpio";
			reg = <0x15>;
			interrupts-extended = <&gpio2 6
					       IRQ_TYPE_EDGE_FALLING>;

			gpio-controller;
			#gpio-cells = <2>;
			gpio-line-names =
				"GPIO8", "GPIO9", "GPIO10", "GPIO11",
				"", "", "", "";

			interrupt-controller;
			#interrupt-cells = <2>;
		};

		sl28cpld_gpio2: gpio@1a {
			compatible = "kontron,sl28cpld-gpo";
			reg = <0x1a>;

			gpio-controller;
			#gpio-cells = <2>;
			gpio-line-names =
				"LCD0 voltage enable",
				"LCD0 backlight enable",
				"eMMC reset", "LVDS bridge reset",
				"LVDS bridge power-down",
				"SDIO power enable",
				"", "";
		};

		sl28cpld_gpio3: gpio@1b {
			compatible = "kontron,sl28cpld-gpi";
			reg = <0x1b>;

			gpio-controller;
			#gpio-cells = <2>;
			gpio-line-names =
				"Power button", "Force recovery", "Sleep",
				"Battery low", "Lid state", "Charging",
				"Charger present", "";
		};

		sl28cpld_intc: interrupt-controller@1c {
			compatible = "kontron,sl28cpld-intc";
			reg = <0x1c>;
			interrupts-extended = <&gpio2 6
					       IRQ_TYPE_EDGE_FALLING>;

			interrupt-controller;
			#interrupt-cells = <2>;
		};
	};

	eeprom@50 {
		compatible = "atmel,24c32";
		reg = <0x50>;
		pagesize = <32>;
	};
};

&i2c3 {
	status = "okay";
};

&i2c4 {
	status = "okay";

	eeprom@50 {
		compatible = "atmel,24c32";
		reg = <0x50>;
		pagesize = <32>;
	};
};

&lpuart1 {
	status = "okay";
};

&usb0 {
	status = "okay";
};

&usb1 {
	status = "okay";
};
