1/*
2 * Copyright (C) 2014 STMicroelectronics (R&D) Limited.
3 * Author: Giuseppe Cavallaro <peppe.cavallaro@st.com>
4 *
5 * This program is free software; you can redistribute it and/or modify
6 * it under the terms of the GNU General Public License version 2 as
7 * published by the Free Software Foundation.
8 */
9#include <dt-bindings/clock/stih407-clks.h>
10#include <dt-bindings/gpio/gpio.h>
11#include <dt-bindings/media/c8sectpfe.h>
12/ {
13	leds {
14		compatible = "gpio-leds";
15		red {
16			label = "Front Panel LED";
17			gpios = <&pio4 1 GPIO_ACTIVE_HIGH>;
18			linux,default-trigger = "heartbeat";
19		};
20		green {
21			gpios = <&pio1 3 GPIO_ACTIVE_HIGH>;
22			default-state = "off";
23		};
24	};
25
26	sound: sound {
27		compatible = "simple-audio-card";
28		simple-audio-card,name = "STI-B2120";
29		status = "okay";
30
31		simple-audio-card,dai-link0 {
32			/* HDMI */
33			format = "i2s";
34			mclk-fs = <128>;
35			cpu {
36				sound-dai = <&sti_uni_player0>;
37			};
38
39			codec {
40				sound-dai = <&sti_hdmi>;
41			};
42		};
43
44		simple-audio-card,dai-link1 {
45			/* DAC */
46			format = "i2s";
47			mclk-fs = <256>;
48			frame-inversion = <1>;
49			cpu {
50				sound-dai = <&sti_uni_player2>;
51			};
52
53			codec {
54				sound-dai = <&sti_sasg_codec 1>;
55			};
56		};
57
58		simple-audio-card,dai-link2 {
59			/* SPDIF */
60			format = "left_j";
61			mclk-fs = <128>;
62			cpu {
63				sound-dai = <&sti_uni_player3>;
64			};
65
66			codec {
67				sound-dai = <&sti_sasg_codec 0>;
68			};
69		};
70	};
71
72	soc {
73		sbc_serial0: serial@9530000 {
74			status = "okay";
75		};
76
77		pwm0: pwm@9810000 {
78			status = "okay";
79		};
80
81		pwm1: pwm@9510000 {
82			status = "okay";
83		};
84
85		ssc2: i2c@9842000 {
86			status = "okay";
87			clock-frequency = <100000>;
88			st,i2c-min-scl-pulse-width-us = <0>;
89			st,i2c-min-sda-pulse-width-us = <5>;
90		};
91
92		ssc3: i2c@9843000 {
93			status = "okay";
94			clock-frequency = <100000>;
95			st,i2c-min-scl-pulse-width-us = <0>;
96			st,i2c-min-sda-pulse-width-us = <5>;
97		};
98
99		i2c@9844000 {
100			status = "okay";
101		};
102
103		i2c@9845000 {
104			status = "okay";
105		};
106
107		i2c@9540000 {
108			status = "okay";
109		};
110
111		mmc0: sdhci@9060000 {
112			non-removable;
113			status = "okay";
114		};
115
116		mmc1: sdhci@9080000 {
117			status = "okay";
118		};
119
120		/* SSC11 to HDMI */
121		hdmiddc: i2c@9541000 {
122			status = "okay";
123			/* HDMI V1.3a supports Standard mode only */
124			clock-frequency = <100000>;
125			st,i2c-min-scl-pulse-width-us = <0>;
126			st,i2c-min-sda-pulse-width-us = <5>;
127		};
128
129		miphy28lp_phy: miphy28lp@0 {
130
131			phy_port0: port@9b22000 {
132				st,osc-rdy;
133			};
134
135			phy_port1: port@9b2a000 {
136				st,osc-force-ext;
137			};
138		};
139
140		st_dwc3: dwc3@8f94000 {
141			status = "okay";
142		};
143
144		ethernet0: dwmac@9630000 {
145			st,tx-retime-src = "clkgen";
146			status = "okay";
147			phy-mode = "rgmii";
148			fixed-link = <0 1 1000 0 0>;
149		};
150
151		demux@8a20000 {
152			compatible	= "st,stih407-c8sectpfe";
153			status		= "okay";
154			reg		= <0x08a20000 0x10000>,
155					  <0x08a00000 0x4000>;
156			reg-names	= "c8sectpfe", "c8sectpfe-ram";
157			interrupts	= <GIC_SPI 34 IRQ_TYPE_LEVEL_HIGH>,
158					  <GIC_SPI 35 IRQ_TYPE_LEVEL_HIGH>;
159			interrupt-names	= "c8sectpfe-error-irq",
160					  "c8sectpfe-idle-irq";
161			pinctrl-0	= <&pinctrl_tsin0_serial>;
162			pinctrl-1	= <&pinctrl_tsin0_parallel>;
163			pinctrl-2	= <&pinctrl_tsin3_serial>;
164			pinctrl-3	= <&pinctrl_tsin4_serial_alt3>;
165			pinctrl-4	= <&pinctrl_tsin5_serial_alt1>;
166			pinctrl-names	= "tsin0-serial",
167					  "tsin0-parallel",
168					  "tsin3-serial",
169					  "tsin4-serial",
170					  "tsin5-serial";
171			clocks		= <&clk_s_c0_flexgen CLK_PROC_STFE>;
172			clock-names	= "c8sectpfe";
173
174			/* tsin0 is TSA on NIMA */
175			tsin0: port {
176				tsin-num	= <0>;
177				serial-not-parallel;
178				i2c-bus		= <&ssc2>;
179				reset-gpios	= <&pio15 4 GPIO_ACTIVE_HIGH>;
180				dvb-card	= <STV0367_TDA18212_NIMA_1>;
181			};
182		};
183
184		sti_uni_player0: sti-uni-player@8d80000 {
185			status = "okay";
186		};
187
188		sti_uni_player2: sti-uni-player@8d82000 {
189			status = "okay";
190		};
191
192		sti_uni_player3: sti-uni-player@8d85000 {
193			status = "okay";
194		};
195
196		syscfg_core: core-syscfg@92b0000 {
197			sti_sasg_codec: sti-sasg-codec {
198				status = "okay";
199				pinctrl-names = "default";
200				pinctrl-0 = <&pinctrl_spdif_out>;
201			};
202		};
203	};
204};
205