// SPDX-License-Identifier: GPL-2.0-only
/*
 * Copyright (C) 2016 STMicroelectronics (R&D) Limited.
 * Author: Patrice Chotard <patrice.chotard@st.com>
 */
/dts-v1/;
#include "stih410.dtsi"
#include <dt-bindings/gpio/gpio.h>

/ {
	model = "STiH410 B2260";
	compatible = "st,stih410-b2260", "st,stih410";

	chosen {
		stdout-path = &uart1;
	};

	memory@40000000 {
		device_type = "memory";
		reg = <0x40000000 0x40000000>;
	};

	aliases {
		serial1 = &uart1;
		ethernet0 = &ethernet0;
	};

	leds {
		compatible = "gpio-leds";
		user_green_1 {
			label = "User_green_1";
			gpios = <&pio1 3 GPIO_ACTIVE_LOW>;
			linux,default-trigger = "heartbeat";
			default-state = "off";
		};

		user_green_2 {
			label = "User_green_2";
			gpios = <&pio4 1 GPIO_ACTIVE_LOW>;
			default-state = "off";
		};

		user_green_3 {
			label = "User_green_3";
			gpios = <&pio2 1 GPIO_ACTIVE_LOW>;
			default-state = "off";
		};

		user_green_4 {
			label = "User_green_4";
			gpios = <&pio2 5 GPIO_ACTIVE_LOW>;
			default-state = "off";
		};
	};

	sound: sound {
		compatible = "simple-audio-card";
		simple-audio-card,name = "STI-B2260";
		status = "okay";
		#address-cells = <1>;
		#size-cells = <0>;

		simple-audio-card,dai-link@0 {
			reg = <0>;
			/* DAC */
			format = "i2s";
			mclk-fs = <128>;
			cpu {
				sound-dai = <&sti_uni_player0>;
			};

			codec {
				sound-dai = <&sti_hdmi>;
			};
		};
	};

	soc {
		/* Low speed expansion connector */
		uart0: serial@9830000 {
			label = "LS-UART0";
			pinctrl-names = "default", "no-hw-flowctrl";
			pinctrl-0 = <&pinctrl_serial0_hw_flowctrl>;
			pinctrl-1 = <&pinctrl_serial0>;
			rts-gpios = <&pio17 3 GPIO_ACTIVE_LOW>;
			uart-has-rtscts;
			status = "okay";
		};

		/* Low speed expansion connector */
		uart1: serial@9831000 {
			label = "LS-UART1";
			status = "okay";
		};

		/* Low speed expansion connector */
		spi0: spi@9844000 {
			label = "LS-SPI0";
			cs-gpios = <&pio30 3 0>;
			status = "okay";
		};

		/* Low speed expansion connector */
		i2c0: i2c@9840000 {
			label = "LS-I2C0";
			status = "okay";
		};

		/* Low speed expansion connector */
		i2c1: i2c@9841000 {
			label = "LS-I2C1";
			status = "okay";
		};

		/* high speed expansion connector */
		i2c2: i2c@9842000 {
			label = "HS-I2C2";
			pinctrl-0 = <&pinctrl_i2c2_alt2_1>;
			status = "okay";
		};

		/* high speed expansion connector */
		i2c3: i2c@9843000 {
			label = "HS-I2C3";
			pinctrl-0 = <&pinctrl_i2c3_alt3_0>;
			status = "okay";
		};

		mmc0: sdhci@9060000 {
			pinctrl-0 = <&pinctrl_sd0>;
			bus-width = <4>;
			status = "okay";
		};

		/* high speed expansion connector */
		mmc1: sdhci@9080000 {
			status = "okay";
		};

		pwm0: pwm@9810000 {
			status = "okay";
		};

		pwm1: pwm@9510000 {
			status = "okay";
		};

		usb2_picophy1: phy2@0 {
			status = "okay";
		};

		usb2_picophy2: phy3@0 {
			status = "okay";
		};

		ohci0: usb@9a03c00 {
			status = "okay";
		};

		ehci0: usb@9a03e00 {
			status = "okay";
		};

		ohci1: usb@9a83c00 {
			status = "okay";
		};

		ehci1: usb@9a83e00 {
			status = "okay";
		};

		st_dwc3: dwc3@8f94000 {
			status = "okay";
		};

		ethernet0: dwmac@9630000 {
			phy-mode = "rgmii";
			pinctrl-0 = <&pinctrl_rgmii1 &pinctrl_rgmii1_mdio_1>;

			snps,reset-gpio = <&pio0 7 0>;
			snps,reset-active-low;
			snps,reset-delays-us = <0 10000 1000000>;

			status = "okay";
		};

		sti_uni_player0: sti-uni-player@8d80000 {
			status = "okay";
		};
		/* SSC11 to HDMI */
		hdmiddc: i2c@9541000 {
			/* HDMI V1.3a supports Standard mode only */
			clock-frequency = <100000>;
			st,i2c-min-scl-pulse-width-us = <0>;
			st,i2c-min-sda-pulse-width-us = <5>;
			status = "okay";
		};

		miphy28lp_phy: miphy28lp@0 {

			phy_port1: port@9b2a000 {
				st,osc-force-ext;
			};
		};

		sata1: sata@9b28000 {
			status = "okay";
		};
	};
};
