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