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