162306a36Sopenharmony_ci// SPDX-License-Identifier: GPL-2.0-only
262306a36Sopenharmony_ci/*
362306a36Sopenharmony_ci * Copyright (C) 2014 STMicroelectronics (R&D) Limited.
462306a36Sopenharmony_ci * Author: Giuseppe Cavallaro <peppe.cavallaro@st.com>
562306a36Sopenharmony_ci */
662306a36Sopenharmony_ci#include <dt-bindings/clock/stih407-clks.h>
762306a36Sopenharmony_ci#include <dt-bindings/gpio/gpio.h>
862306a36Sopenharmony_ci#include <dt-bindings/media/c8sectpfe.h>
962306a36Sopenharmony_ci/ {
1062306a36Sopenharmony_ci	leds {
1162306a36Sopenharmony_ci		compatible = "gpio-leds";
1262306a36Sopenharmony_ci		led-red {
1362306a36Sopenharmony_ci			label = "Front Panel LED";
1462306a36Sopenharmony_ci			gpios = <&pio4 1 GPIO_ACTIVE_HIGH>;
1562306a36Sopenharmony_ci			linux,default-trigger = "heartbeat";
1662306a36Sopenharmony_ci		};
1762306a36Sopenharmony_ci		led-green {
1862306a36Sopenharmony_ci			gpios = <&pio1 3 GPIO_ACTIVE_HIGH>;
1962306a36Sopenharmony_ci			default-state = "off";
2062306a36Sopenharmony_ci		};
2162306a36Sopenharmony_ci	};
2262306a36Sopenharmony_ci
2362306a36Sopenharmony_ci	sound: sound {
2462306a36Sopenharmony_ci		compatible = "simple-audio-card";
2562306a36Sopenharmony_ci		simple-audio-card,name = "STI-B2120";
2662306a36Sopenharmony_ci		status = "okay";
2762306a36Sopenharmony_ci		#address-cells = <1>;
2862306a36Sopenharmony_ci		#size-cells = <0>;
2962306a36Sopenharmony_ci
3062306a36Sopenharmony_ci		simple-audio-card,dai-link@0 {
3162306a36Sopenharmony_ci			reg = <0>;
3262306a36Sopenharmony_ci			/* HDMI */
3362306a36Sopenharmony_ci			format = "i2s";
3462306a36Sopenharmony_ci			mclk-fs = <128>;
3562306a36Sopenharmony_ci			cpu {
3662306a36Sopenharmony_ci				sound-dai = <&sti_uni_player0>;
3762306a36Sopenharmony_ci			};
3862306a36Sopenharmony_ci
3962306a36Sopenharmony_ci			codec {
4062306a36Sopenharmony_ci				sound-dai = <&sti_hdmi>;
4162306a36Sopenharmony_ci			};
4262306a36Sopenharmony_ci		};
4362306a36Sopenharmony_ci
4462306a36Sopenharmony_ci		simple-audio-card,dai-link@1 {
4562306a36Sopenharmony_ci			reg = <1>;
4662306a36Sopenharmony_ci			/* DAC */
4762306a36Sopenharmony_ci			format = "i2s";
4862306a36Sopenharmony_ci			mclk-fs = <256>;
4962306a36Sopenharmony_ci			frame-inversion;
5062306a36Sopenharmony_ci			cpu {
5162306a36Sopenharmony_ci				sound-dai = <&sti_uni_player2>;
5262306a36Sopenharmony_ci			};
5362306a36Sopenharmony_ci
5462306a36Sopenharmony_ci			codec {
5562306a36Sopenharmony_ci				sound-dai = <&sti_sasg_codec 1>;
5662306a36Sopenharmony_ci			};
5762306a36Sopenharmony_ci		};
5862306a36Sopenharmony_ci
5962306a36Sopenharmony_ci		simple-audio-card,dai-link@2 {
6062306a36Sopenharmony_ci			reg = <2>;
6162306a36Sopenharmony_ci			/* SPDIF */
6262306a36Sopenharmony_ci			format = "left_j";
6362306a36Sopenharmony_ci			mclk-fs = <128>;
6462306a36Sopenharmony_ci			cpu {
6562306a36Sopenharmony_ci				sound-dai = <&sti_uni_player3>;
6662306a36Sopenharmony_ci			};
6762306a36Sopenharmony_ci
6862306a36Sopenharmony_ci			codec {
6962306a36Sopenharmony_ci				sound-dai = <&sti_sasg_codec 0>;
7062306a36Sopenharmony_ci			};
7162306a36Sopenharmony_ci		};
7262306a36Sopenharmony_ci	};
7362306a36Sopenharmony_ci
7462306a36Sopenharmony_ci	miphy28lp_phy: miphy28lp {
7562306a36Sopenharmony_ci
7662306a36Sopenharmony_ci		phy_port0: port@9b22000 {
7762306a36Sopenharmony_ci			st,osc-rdy;
7862306a36Sopenharmony_ci		};
7962306a36Sopenharmony_ci
8062306a36Sopenharmony_ci		phy_port1: port@9b2a000 {
8162306a36Sopenharmony_ci			st,osc-force-ext;
8262306a36Sopenharmony_ci		};
8362306a36Sopenharmony_ci	};
8462306a36Sopenharmony_ci
8562306a36Sopenharmony_ci	soc {
8662306a36Sopenharmony_ci		sbc_serial0: serial@9530000 {
8762306a36Sopenharmony_ci			status = "okay";
8862306a36Sopenharmony_ci		};
8962306a36Sopenharmony_ci
9062306a36Sopenharmony_ci		pwm0: pwm@9810000 {
9162306a36Sopenharmony_ci			status = "okay";
9262306a36Sopenharmony_ci		};
9362306a36Sopenharmony_ci
9462306a36Sopenharmony_ci		pwm1: pwm@9510000 {
9562306a36Sopenharmony_ci			status = "okay";
9662306a36Sopenharmony_ci		};
9762306a36Sopenharmony_ci
9862306a36Sopenharmony_ci		ssc2: i2c@9842000 {
9962306a36Sopenharmony_ci			status = "okay";
10062306a36Sopenharmony_ci			clock-frequency = <100000>;
10162306a36Sopenharmony_ci			st,i2c-min-scl-pulse-width-us = <0>;
10262306a36Sopenharmony_ci			st,i2c-min-sda-pulse-width-us = <5>;
10362306a36Sopenharmony_ci		};
10462306a36Sopenharmony_ci
10562306a36Sopenharmony_ci		ssc3: i2c@9843000 {
10662306a36Sopenharmony_ci			status = "okay";
10762306a36Sopenharmony_ci			clock-frequency = <100000>;
10862306a36Sopenharmony_ci			st,i2c-min-scl-pulse-width-us = <0>;
10962306a36Sopenharmony_ci			st,i2c-min-sda-pulse-width-us = <5>;
11062306a36Sopenharmony_ci		};
11162306a36Sopenharmony_ci
11262306a36Sopenharmony_ci		i2c@9844000 {
11362306a36Sopenharmony_ci			status = "okay";
11462306a36Sopenharmony_ci		};
11562306a36Sopenharmony_ci
11662306a36Sopenharmony_ci		i2c@9845000 {
11762306a36Sopenharmony_ci			status = "okay";
11862306a36Sopenharmony_ci		};
11962306a36Sopenharmony_ci
12062306a36Sopenharmony_ci		i2c@9540000 {
12162306a36Sopenharmony_ci			status = "okay";
12262306a36Sopenharmony_ci		};
12362306a36Sopenharmony_ci
12462306a36Sopenharmony_ci		mmc0: sdhci@9060000 {
12562306a36Sopenharmony_ci			non-removable;
12662306a36Sopenharmony_ci			status = "okay";
12762306a36Sopenharmony_ci		};
12862306a36Sopenharmony_ci
12962306a36Sopenharmony_ci		mmc1: sdhci@9080000 {
13062306a36Sopenharmony_ci			status = "okay";
13162306a36Sopenharmony_ci		};
13262306a36Sopenharmony_ci
13362306a36Sopenharmony_ci		/* SSC11 to HDMI */
13462306a36Sopenharmony_ci		hdmiddc: i2c@9541000 {
13562306a36Sopenharmony_ci			status = "okay";
13662306a36Sopenharmony_ci			/* HDMI V1.3a supports Standard mode only */
13762306a36Sopenharmony_ci			clock-frequency = <100000>;
13862306a36Sopenharmony_ci			st,i2c-min-scl-pulse-width-us = <0>;
13962306a36Sopenharmony_ci			st,i2c-min-sda-pulse-width-us = <5>;
14062306a36Sopenharmony_ci		};
14162306a36Sopenharmony_ci
14262306a36Sopenharmony_ci		st_dwc3: dwc3@8f94000 {
14362306a36Sopenharmony_ci			status = "okay";
14462306a36Sopenharmony_ci		};
14562306a36Sopenharmony_ci
14662306a36Sopenharmony_ci		ethernet0: dwmac@9630000 {
14762306a36Sopenharmony_ci			st,tx-retime-src = "clkgen";
14862306a36Sopenharmony_ci			status = "okay";
14962306a36Sopenharmony_ci			phy-mode = "rgmii";
15062306a36Sopenharmony_ci			fixed-link = <0 1 1000 0 0>;
15162306a36Sopenharmony_ci		};
15262306a36Sopenharmony_ci
15362306a36Sopenharmony_ci		demux@8a20000 {
15462306a36Sopenharmony_ci			compatible	= "st,stih407-c8sectpfe";
15562306a36Sopenharmony_ci			status		= "okay";
15662306a36Sopenharmony_ci			reg		= <0x08a20000 0x10000>,
15762306a36Sopenharmony_ci					  <0x08a00000 0x4000>;
15862306a36Sopenharmony_ci			reg-names	= "c8sectpfe", "c8sectpfe-ram";
15962306a36Sopenharmony_ci			interrupts	= <GIC_SPI 34 IRQ_TYPE_LEVEL_HIGH>,
16062306a36Sopenharmony_ci					  <GIC_SPI 35 IRQ_TYPE_LEVEL_HIGH>;
16162306a36Sopenharmony_ci			interrupt-names	= "c8sectpfe-error-irq",
16262306a36Sopenharmony_ci					  "c8sectpfe-idle-irq";
16362306a36Sopenharmony_ci			pinctrl-0	= <&pinctrl_tsin0_serial>;
16462306a36Sopenharmony_ci			pinctrl-1	= <&pinctrl_tsin0_parallel>;
16562306a36Sopenharmony_ci			pinctrl-2	= <&pinctrl_tsin3_serial>;
16662306a36Sopenharmony_ci			pinctrl-3	= <&pinctrl_tsin4_serial_alt3>;
16762306a36Sopenharmony_ci			pinctrl-4	= <&pinctrl_tsin5_serial_alt1>;
16862306a36Sopenharmony_ci			pinctrl-names	= "tsin0-serial",
16962306a36Sopenharmony_ci					  "tsin0-parallel",
17062306a36Sopenharmony_ci					  "tsin3-serial",
17162306a36Sopenharmony_ci					  "tsin4-serial",
17262306a36Sopenharmony_ci					  "tsin5-serial";
17362306a36Sopenharmony_ci			clocks		= <&clk_s_c0_flexgen CLK_PROC_STFE>;
17462306a36Sopenharmony_ci			clock-names	= "c8sectpfe";
17562306a36Sopenharmony_ci
17662306a36Sopenharmony_ci			/* tsin0 is TSA on NIMA */
17762306a36Sopenharmony_ci			tsin0: port {
17862306a36Sopenharmony_ci				tsin-num = <0>;
17962306a36Sopenharmony_ci				serial-not-parallel;
18062306a36Sopenharmony_ci				i2c-bus = <&ssc2>;
18162306a36Sopenharmony_ci				reset-gpios = <&pio15 4 GPIO_ACTIVE_LOW>;
18262306a36Sopenharmony_ci				dvb-card = <STV0367_TDA18212_NIMA_1>;
18362306a36Sopenharmony_ci			};
18462306a36Sopenharmony_ci		};
18562306a36Sopenharmony_ci
18662306a36Sopenharmony_ci		sti_uni_player0: sti-uni-player@8d80000 {
18762306a36Sopenharmony_ci			status = "okay";
18862306a36Sopenharmony_ci		};
18962306a36Sopenharmony_ci
19062306a36Sopenharmony_ci		sti_uni_player2: sti-uni-player@8d82000 {
19162306a36Sopenharmony_ci			status = "okay";
19262306a36Sopenharmony_ci		};
19362306a36Sopenharmony_ci
19462306a36Sopenharmony_ci		sti_uni_player3: sti-uni-player@8d85000 {
19562306a36Sopenharmony_ci			status = "okay";
19662306a36Sopenharmony_ci		};
19762306a36Sopenharmony_ci
19862306a36Sopenharmony_ci		syscfg_core: core-syscfg@92b0000 {
19962306a36Sopenharmony_ci			sti_sasg_codec: sti-sasg-codec {
20062306a36Sopenharmony_ci				status = "okay";
20162306a36Sopenharmony_ci				pinctrl-names = "default";
20262306a36Sopenharmony_ci				pinctrl-0 = <&pinctrl_spdif_out>;
20362306a36Sopenharmony_ci			};
20462306a36Sopenharmony_ci		};
20562306a36Sopenharmony_ci	};
20662306a36Sopenharmony_ci};
207