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		led-red {
13			label = "Front Panel LED";
14			gpios = <&pio4 1 GPIO_ACTIVE_HIGH>;
15			linux,default-trigger = "heartbeat";
16		};
17		led-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;
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	miphy28lp_phy: miphy28lp {
75
76		phy_port0: port@9b22000 {
77			st,osc-rdy;
78		};
79
80		phy_port1: port@9b2a000 {
81			st,osc-force-ext;
82		};
83	};
84
85	soc {
86		sbc_serial0: serial@9530000 {
87			status = "okay";
88		};
89
90		pwm0: pwm@9810000 {
91			status = "okay";
92		};
93
94		pwm1: pwm@9510000 {
95			status = "okay";
96		};
97
98		ssc2: i2c@9842000 {
99			status = "okay";
100			clock-frequency = <100000>;
101			st,i2c-min-scl-pulse-width-us = <0>;
102			st,i2c-min-sda-pulse-width-us = <5>;
103		};
104
105		ssc3: i2c@9843000 {
106			status = "okay";
107			clock-frequency = <100000>;
108			st,i2c-min-scl-pulse-width-us = <0>;
109			st,i2c-min-sda-pulse-width-us = <5>;
110		};
111
112		i2c@9844000 {
113			status = "okay";
114		};
115
116		i2c@9845000 {
117			status = "okay";
118		};
119
120		i2c@9540000 {
121			status = "okay";
122		};
123
124		mmc0: sdhci@9060000 {
125			non-removable;
126			status = "okay";
127		};
128
129		mmc1: sdhci@9080000 {
130			status = "okay";
131		};
132
133		/* SSC11 to HDMI */
134		hdmiddc: i2c@9541000 {
135			status = "okay";
136			/* HDMI V1.3a supports Standard mode only */
137			clock-frequency = <100000>;
138			st,i2c-min-scl-pulse-width-us = <0>;
139			st,i2c-min-sda-pulse-width-us = <5>;
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_LOW>;
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