/*
 * Copyright (C) 2016 STMicroelectronics (R&D) Limited.
 * Author: Patrice Chotard <patrice.chotard@st.com>
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License version 2 as
 * published by the Free Software Foundation.
 */
/dts-v1/;
#include "stih410.dtsi"
#include <dt-bindings/gpio/gpio.h>

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

	chosen {
		bootargs = "console=ttyAS1,115200";
		linux,stdout-path = &uart1;
		stdout-path = &uart1;
	};

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

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

	soc {

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

			wifi_yellow {
				label = "Wifi_yellow";
				gpios = <&pio4 0 GPIO_ACTIVE_LOW>;
				linux,default-trigger = "wifi-activity";
				default-state = "off";
			};

			bt_blue {
				label = "Bluetooth_blue";
				gpios = <&pio3 3 GPIO_ACTIVE_LOW>;
				linux,default-trigger = "hci0-power";
				default-state = "off";
			};
		};

		/* Low speed expansion connector */
		uart0: serial@9830000 {
			label = "LS-UART0";
			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@09060000 {
			pinctrl-0 = <&pinctrl_sd0>;
			bus-width = <4>;
			status = "okay";
		};

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

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

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

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

		usb2_picophy2: phy3 {
			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,phy-bus-name = "stmmac";
			snps,phy-bus-id = <0>;
			snps,phy-addr = <0>;
			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 = <1>;
			status = "okay";
		};

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

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

		sound {
			compatible = "simple-audio-card";
			simple-audio-card,name = "STI-B2260";
			status = "okay";

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

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

	};
};
