162306a36Sopenharmony_ci// SPDX-License-Identifier: GPL-2.0-only
262306a36Sopenharmony_ci/*
362306a36Sopenharmony_ci * Copyright (C) 2014 STMicroelectronics Limited.
462306a36Sopenharmony_ci * Author: Peter Griffin <peter.griffin@linaro.org>
562306a36Sopenharmony_ci */
662306a36Sopenharmony_ci#include "stih410-clock.dtsi"
762306a36Sopenharmony_ci#include "stih407-family.dtsi"
862306a36Sopenharmony_ci#include "stih410-pinctrl.dtsi"
962306a36Sopenharmony_ci#include <dt-bindings/gpio/gpio.h>
1062306a36Sopenharmony_ci/ {
1162306a36Sopenharmony_ci	aliases {
1262306a36Sopenharmony_ci		bdisp0 = &bdisp0;
1362306a36Sopenharmony_ci	};
1462306a36Sopenharmony_ci
1562306a36Sopenharmony_ci	usb2_picophy1: phy2 {
1662306a36Sopenharmony_ci		compatible = "st,stih407-usb2-phy";
1762306a36Sopenharmony_ci		#phy-cells = <0>;
1862306a36Sopenharmony_ci		st,syscfg = <&syscfg_core 0xf8 0xf4>;
1962306a36Sopenharmony_ci		resets = <&softreset STIH407_PICOPHY_SOFTRESET>,
2062306a36Sopenharmony_ci			 <&picophyreset STIH407_PICOPHY0_RESET>;
2162306a36Sopenharmony_ci		reset-names = "global", "port";
2262306a36Sopenharmony_ci
2362306a36Sopenharmony_ci		status = "disabled";
2462306a36Sopenharmony_ci	};
2562306a36Sopenharmony_ci
2662306a36Sopenharmony_ci	usb2_picophy2: phy3 {
2762306a36Sopenharmony_ci		compatible = "st,stih407-usb2-phy";
2862306a36Sopenharmony_ci		#phy-cells = <0>;
2962306a36Sopenharmony_ci		st,syscfg = <&syscfg_core 0xfc 0xf4>;
3062306a36Sopenharmony_ci		resets = <&softreset STIH407_PICOPHY_SOFTRESET>,
3162306a36Sopenharmony_ci			 <&picophyreset STIH407_PICOPHY1_RESET>;
3262306a36Sopenharmony_ci		reset-names = "global", "port";
3362306a36Sopenharmony_ci
3462306a36Sopenharmony_ci		status = "disabled";
3562306a36Sopenharmony_ci	};
3662306a36Sopenharmony_ci
3762306a36Sopenharmony_ci	soc {
3862306a36Sopenharmony_ci		ohci0: usb@9a03c00 {
3962306a36Sopenharmony_ci			compatible = "st,st-ohci-300x";
4062306a36Sopenharmony_ci			reg = <0x9a03c00 0x100>;
4162306a36Sopenharmony_ci			interrupts = <GIC_SPI 180 IRQ_TYPE_LEVEL_HIGH>;
4262306a36Sopenharmony_ci			clocks = <&clk_s_c0_flexgen CLK_TX_ICN_DISP_0>,
4362306a36Sopenharmony_ci				 <&clk_s_c0_flexgen CLK_RX_ICN_DISP_0>;
4462306a36Sopenharmony_ci			resets = <&powerdown STIH407_USB2_PORT0_POWERDOWN>,
4562306a36Sopenharmony_ci				 <&softreset STIH407_USB2_PORT0_SOFTRESET>;
4662306a36Sopenharmony_ci			reset-names = "power", "softreset";
4762306a36Sopenharmony_ci			phys = <&usb2_picophy1>;
4862306a36Sopenharmony_ci			phy-names = "usb";
4962306a36Sopenharmony_ci
5062306a36Sopenharmony_ci			status = "disabled";
5162306a36Sopenharmony_ci		};
5262306a36Sopenharmony_ci
5362306a36Sopenharmony_ci		ehci0: usb@9a03e00 {
5462306a36Sopenharmony_ci			compatible = "st,st-ehci-300x";
5562306a36Sopenharmony_ci			reg = <0x9a03e00 0x100>;
5662306a36Sopenharmony_ci			interrupts = <GIC_SPI 151 IRQ_TYPE_LEVEL_HIGH>;
5762306a36Sopenharmony_ci			pinctrl-names = "default";
5862306a36Sopenharmony_ci			pinctrl-0 = <&pinctrl_usb0>;
5962306a36Sopenharmony_ci			clocks = <&clk_s_c0_flexgen CLK_TX_ICN_DISP_0>,
6062306a36Sopenharmony_ci				 <&clk_s_c0_flexgen CLK_RX_ICN_DISP_0>;
6162306a36Sopenharmony_ci			resets = <&powerdown STIH407_USB2_PORT0_POWERDOWN>,
6262306a36Sopenharmony_ci				 <&softreset STIH407_USB2_PORT0_SOFTRESET>;
6362306a36Sopenharmony_ci			reset-names = "power", "softreset";
6462306a36Sopenharmony_ci			phys = <&usb2_picophy1>;
6562306a36Sopenharmony_ci			phy-names = "usb";
6662306a36Sopenharmony_ci
6762306a36Sopenharmony_ci			status = "disabled";
6862306a36Sopenharmony_ci		};
6962306a36Sopenharmony_ci
7062306a36Sopenharmony_ci		ohci1: usb@9a83c00 {
7162306a36Sopenharmony_ci			compatible = "st,st-ohci-300x";
7262306a36Sopenharmony_ci			reg = <0x9a83c00 0x100>;
7362306a36Sopenharmony_ci			interrupts = <GIC_SPI 181 IRQ_TYPE_LEVEL_HIGH>;
7462306a36Sopenharmony_ci			clocks = <&clk_s_c0_flexgen CLK_TX_ICN_DISP_0>,
7562306a36Sopenharmony_ci				 <&clk_s_c0_flexgen CLK_RX_ICN_DISP_0>;
7662306a36Sopenharmony_ci			resets = <&powerdown STIH407_USB2_PORT1_POWERDOWN>,
7762306a36Sopenharmony_ci				 <&softreset STIH407_USB2_PORT1_SOFTRESET>;
7862306a36Sopenharmony_ci			reset-names = "power", "softreset";
7962306a36Sopenharmony_ci			phys = <&usb2_picophy2>;
8062306a36Sopenharmony_ci			phy-names = "usb";
8162306a36Sopenharmony_ci
8262306a36Sopenharmony_ci			status = "disabled";
8362306a36Sopenharmony_ci		};
8462306a36Sopenharmony_ci
8562306a36Sopenharmony_ci		ehci1: usb@9a83e00 {
8662306a36Sopenharmony_ci			compatible = "st,st-ehci-300x";
8762306a36Sopenharmony_ci			reg = <0x9a83e00 0x100>;
8862306a36Sopenharmony_ci			interrupts = <GIC_SPI 153 IRQ_TYPE_LEVEL_HIGH>;
8962306a36Sopenharmony_ci			pinctrl-names = "default";
9062306a36Sopenharmony_ci			pinctrl-0 = <&pinctrl_usb1>;
9162306a36Sopenharmony_ci			clocks = <&clk_s_c0_flexgen CLK_TX_ICN_DISP_0>,
9262306a36Sopenharmony_ci				 <&clk_s_c0_flexgen CLK_RX_ICN_DISP_0>;
9362306a36Sopenharmony_ci			resets = <&powerdown STIH407_USB2_PORT1_POWERDOWN>,
9462306a36Sopenharmony_ci				 <&softreset STIH407_USB2_PORT1_SOFTRESET>;
9562306a36Sopenharmony_ci			reset-names = "power", "softreset";
9662306a36Sopenharmony_ci			phys = <&usb2_picophy2>;
9762306a36Sopenharmony_ci			phy-names = "usb";
9862306a36Sopenharmony_ci
9962306a36Sopenharmony_ci			status = "disabled";
10062306a36Sopenharmony_ci		};
10162306a36Sopenharmony_ci
10262306a36Sopenharmony_ci		sti-display-subsystem@0 {
10362306a36Sopenharmony_ci			compatible = "st,sti-display-subsystem";
10462306a36Sopenharmony_ci			#address-cells = <1>;
10562306a36Sopenharmony_ci			#size-cells = <1>;
10662306a36Sopenharmony_ci
10762306a36Sopenharmony_ci			reg = <0 0>;
10862306a36Sopenharmony_ci			assigned-clocks = <&clk_s_d2_quadfs 0>,
10962306a36Sopenharmony_ci					  <&clk_s_d2_quadfs 1>,
11062306a36Sopenharmony_ci					  <&clk_s_c0_pll1 0>,
11162306a36Sopenharmony_ci					  <&clk_s_c0_flexgen CLK_COMPO_DVP>,
11262306a36Sopenharmony_ci					  <&clk_s_c0_flexgen CLK_MAIN_DISP>,
11362306a36Sopenharmony_ci					  <&clk_s_d2_flexgen CLK_PIX_MAIN_DISP>,
11462306a36Sopenharmony_ci					  <&clk_s_d2_flexgen CLK_PIX_AUX_DISP>,
11562306a36Sopenharmony_ci					  <&clk_s_d2_flexgen CLK_PIX_GDP1>,
11662306a36Sopenharmony_ci					  <&clk_s_d2_flexgen CLK_PIX_GDP2>,
11762306a36Sopenharmony_ci					  <&clk_s_d2_flexgen CLK_PIX_GDP3>,
11862306a36Sopenharmony_ci					  <&clk_s_d2_flexgen CLK_PIX_GDP4>;
11962306a36Sopenharmony_ci
12062306a36Sopenharmony_ci			assigned-clock-parents = <0>,
12162306a36Sopenharmony_ci						 <0>,
12262306a36Sopenharmony_ci						 <0>,
12362306a36Sopenharmony_ci						 <&clk_s_c0_pll1 0>,
12462306a36Sopenharmony_ci						 <&clk_s_c0_pll1 0>,
12562306a36Sopenharmony_ci						 <&clk_s_d2_quadfs 0>,
12662306a36Sopenharmony_ci						 <&clk_s_d2_quadfs 1>,
12762306a36Sopenharmony_ci						 <&clk_s_d2_quadfs 0>,
12862306a36Sopenharmony_ci						 <&clk_s_d2_quadfs 0>,
12962306a36Sopenharmony_ci						 <&clk_s_d2_quadfs 0>,
13062306a36Sopenharmony_ci						 <&clk_s_d2_quadfs 0>;
13162306a36Sopenharmony_ci
13262306a36Sopenharmony_ci			assigned-clock-rates = <297000000>,
13362306a36Sopenharmony_ci					       <297000000>,
13462306a36Sopenharmony_ci					       <0>,
13562306a36Sopenharmony_ci					       <400000000>,
13662306a36Sopenharmony_ci					       <400000000>;
13762306a36Sopenharmony_ci
13862306a36Sopenharmony_ci			ranges;
13962306a36Sopenharmony_ci
14062306a36Sopenharmony_ci			sti-compositor@9d11000 {
14162306a36Sopenharmony_ci				compatible = "st,stih407-compositor";
14262306a36Sopenharmony_ci				reg = <0x9d11000 0x1000>;
14362306a36Sopenharmony_ci
14462306a36Sopenharmony_ci				clock-names = "compo_main",
14562306a36Sopenharmony_ci					      "compo_aux",
14662306a36Sopenharmony_ci					      "pix_main",
14762306a36Sopenharmony_ci					      "pix_aux",
14862306a36Sopenharmony_ci					      "pix_gdp1",
14962306a36Sopenharmony_ci					      "pix_gdp2",
15062306a36Sopenharmony_ci					      "pix_gdp3",
15162306a36Sopenharmony_ci					      "pix_gdp4",
15262306a36Sopenharmony_ci					      "main_parent",
15362306a36Sopenharmony_ci					      "aux_parent";
15462306a36Sopenharmony_ci
15562306a36Sopenharmony_ci				clocks = <&clk_s_c0_flexgen CLK_COMPO_DVP>,
15662306a36Sopenharmony_ci					 <&clk_s_c0_flexgen CLK_COMPO_DVP>,
15762306a36Sopenharmony_ci					 <&clk_s_d2_flexgen CLK_PIX_MAIN_DISP>,
15862306a36Sopenharmony_ci					 <&clk_s_d2_flexgen CLK_PIX_AUX_DISP>,
15962306a36Sopenharmony_ci					 <&clk_s_d2_flexgen CLK_PIX_GDP1>,
16062306a36Sopenharmony_ci					 <&clk_s_d2_flexgen CLK_PIX_GDP2>,
16162306a36Sopenharmony_ci					 <&clk_s_d2_flexgen CLK_PIX_GDP3>,
16262306a36Sopenharmony_ci					 <&clk_s_d2_flexgen CLK_PIX_GDP4>,
16362306a36Sopenharmony_ci					 <&clk_s_d2_quadfs 0>,
16462306a36Sopenharmony_ci					 <&clk_s_d2_quadfs 1>;
16562306a36Sopenharmony_ci
16662306a36Sopenharmony_ci				reset-names = "compo-main", "compo-aux";
16762306a36Sopenharmony_ci				resets = <&softreset STIH407_COMPO_SOFTRESET>,
16862306a36Sopenharmony_ci					 <&softreset STIH407_COMPO_SOFTRESET>;
16962306a36Sopenharmony_ci				st,vtg = <&vtg_main>, <&vtg_aux>;
17062306a36Sopenharmony_ci			};
17162306a36Sopenharmony_ci
17262306a36Sopenharmony_ci			sti-tvout@8d08000 {
17362306a36Sopenharmony_ci				compatible = "st,stih407-tvout";
17462306a36Sopenharmony_ci				reg = <0x8d08000 0x1000>;
17562306a36Sopenharmony_ci				reg-names = "tvout-reg";
17662306a36Sopenharmony_ci				reset-names = "tvout";
17762306a36Sopenharmony_ci				resets = <&softreset STIH407_HDTVOUT_SOFTRESET>;
17862306a36Sopenharmony_ci				#address-cells = <1>;
17962306a36Sopenharmony_ci				#size-cells = <1>;
18062306a36Sopenharmony_ci				assigned-clocks = <&clk_s_d2_flexgen CLK_PIX_HDMI>,
18162306a36Sopenharmony_ci						  <&clk_s_d2_flexgen CLK_TMDS_HDMI>,
18262306a36Sopenharmony_ci						  <&clk_s_d2_flexgen CLK_REF_HDMIPHY>,
18362306a36Sopenharmony_ci						  <&clk_s_d0_flexgen CLK_PCM_0>,
18462306a36Sopenharmony_ci						  <&clk_s_d2_flexgen CLK_PIX_HDDAC>,
18562306a36Sopenharmony_ci						  <&clk_s_d2_flexgen CLK_HDDAC>;
18662306a36Sopenharmony_ci
18762306a36Sopenharmony_ci				assigned-clock-parents = <&clk_s_d2_quadfs 0>,
18862306a36Sopenharmony_ci							 <&clk_tmdsout_hdmi>,
18962306a36Sopenharmony_ci							 <&clk_s_d2_quadfs 0>,
19062306a36Sopenharmony_ci							 <&clk_s_d0_quadfs 0>,
19162306a36Sopenharmony_ci							 <&clk_s_d2_quadfs 0>,
19262306a36Sopenharmony_ci							 <&clk_s_d2_quadfs 0>;
19362306a36Sopenharmony_ci			};
19462306a36Sopenharmony_ci
19562306a36Sopenharmony_ci			sti_hdmi: sti-hdmi@8d04000 {
19662306a36Sopenharmony_ci				compatible = "st,stih407-hdmi";
19762306a36Sopenharmony_ci				reg = <0x8d04000 0x1000>;
19862306a36Sopenharmony_ci				reg-names = "hdmi-reg";
19962306a36Sopenharmony_ci				#sound-dai-cells = <0>;
20062306a36Sopenharmony_ci				interrupts = <GIC_SPI 106 IRQ_TYPE_LEVEL_HIGH>;
20162306a36Sopenharmony_ci				interrupt-names = "irq";
20262306a36Sopenharmony_ci				clock-names = "pix",
20362306a36Sopenharmony_ci					      "tmds",
20462306a36Sopenharmony_ci					      "phy",
20562306a36Sopenharmony_ci					      "audio",
20662306a36Sopenharmony_ci					      "main_parent",
20762306a36Sopenharmony_ci					      "aux_parent";
20862306a36Sopenharmony_ci
20962306a36Sopenharmony_ci				clocks = <&clk_s_d2_flexgen CLK_PIX_HDMI>,
21062306a36Sopenharmony_ci					 <&clk_s_d2_flexgen CLK_TMDS_HDMI>,
21162306a36Sopenharmony_ci					 <&clk_s_d2_flexgen CLK_REF_HDMIPHY>,
21262306a36Sopenharmony_ci					 <&clk_s_d0_flexgen CLK_PCM_0>,
21362306a36Sopenharmony_ci					 <&clk_s_d2_quadfs 0>,
21462306a36Sopenharmony_ci					 <&clk_s_d2_quadfs 1>;
21562306a36Sopenharmony_ci
21662306a36Sopenharmony_ci				hdmi,hpd-gpio = <&pio5 3 GPIO_ACTIVE_LOW>;
21762306a36Sopenharmony_ci				reset-names = "hdmi";
21862306a36Sopenharmony_ci				resets = <&softreset STIH407_HDMI_TX_PHY_SOFTRESET>;
21962306a36Sopenharmony_ci				ddc = <&hdmiddc>;
22062306a36Sopenharmony_ci			};
22162306a36Sopenharmony_ci
22262306a36Sopenharmony_ci			sti-hda@8d02000 {
22362306a36Sopenharmony_ci				compatible = "st,stih407-hda";
22462306a36Sopenharmony_ci				status = "disabled";
22562306a36Sopenharmony_ci				reg = <0x8d02000 0x400>, <0x92b0120 0x4>;
22662306a36Sopenharmony_ci				reg-names = "hda-reg", "video-dacs-ctrl";
22762306a36Sopenharmony_ci				clock-names = "pix",
22862306a36Sopenharmony_ci					      "hddac",
22962306a36Sopenharmony_ci					      "main_parent",
23062306a36Sopenharmony_ci					      "aux_parent";
23162306a36Sopenharmony_ci				clocks = <&clk_s_d2_flexgen CLK_PIX_HDDAC>,
23262306a36Sopenharmony_ci					 <&clk_s_d2_flexgen CLK_HDDAC>,
23362306a36Sopenharmony_ci					 <&clk_s_d2_quadfs 0>,
23462306a36Sopenharmony_ci					 <&clk_s_d2_quadfs 1>;
23562306a36Sopenharmony_ci			};
23662306a36Sopenharmony_ci
23762306a36Sopenharmony_ci			sti-hqvdp@9c00000 {
23862306a36Sopenharmony_ci				compatible = "st,stih407-hqvdp";
23962306a36Sopenharmony_ci				reg = <0x9C00000 0x100000>;
24062306a36Sopenharmony_ci				clock-names = "hqvdp", "pix_main";
24162306a36Sopenharmony_ci				clocks = <&clk_s_c0_flexgen CLK_MAIN_DISP>,
24262306a36Sopenharmony_ci					 <&clk_s_d2_flexgen CLK_PIX_MAIN_DISP>;
24362306a36Sopenharmony_ci				reset-names = "hqvdp";
24462306a36Sopenharmony_ci				resets = <&softreset STIH407_HDQVDP_SOFTRESET>;
24562306a36Sopenharmony_ci				st,vtg = <&vtg_main>;
24662306a36Sopenharmony_ci			};
24762306a36Sopenharmony_ci		};
24862306a36Sopenharmony_ci
24962306a36Sopenharmony_ci		bdisp0:bdisp@9f10000 {
25062306a36Sopenharmony_ci			compatible = "st,stih407-bdisp";
25162306a36Sopenharmony_ci			reg = <0x9f10000 0x1000>;
25262306a36Sopenharmony_ci			interrupts = <GIC_SPI 38 IRQ_TYPE_LEVEL_HIGH>;
25362306a36Sopenharmony_ci			clock-names = "bdisp";
25462306a36Sopenharmony_ci			clocks = <&clk_s_c0_flexgen CLK_IC_BDISP_0>;
25562306a36Sopenharmony_ci		};
25662306a36Sopenharmony_ci
25762306a36Sopenharmony_ci		hva@8c85000 {
25862306a36Sopenharmony_ci			compatible = "st,st-hva";
25962306a36Sopenharmony_ci			reg = <0x8c85000 0x400>, <0x6000000 0x40000>;
26062306a36Sopenharmony_ci			reg-names = "hva_registers", "hva_esram";
26162306a36Sopenharmony_ci			interrupts = <GIC_SPI 58 IRQ_TYPE_LEVEL_HIGH>,
26262306a36Sopenharmony_ci				     <GIC_SPI 59 IRQ_TYPE_LEVEL_HIGH>;
26362306a36Sopenharmony_ci			clock-names = "clk_hva";
26462306a36Sopenharmony_ci			clocks = <&clk_s_c0_flexgen CLK_HVA>;
26562306a36Sopenharmony_ci		};
26662306a36Sopenharmony_ci
26762306a36Sopenharmony_ci		thermal@91a0000 {
26862306a36Sopenharmony_ci			compatible = "st,stih407-thermal";
26962306a36Sopenharmony_ci			reg = <0x91a0000 0x28>;
27062306a36Sopenharmony_ci			clock-names = "thermal";
27162306a36Sopenharmony_ci			clocks = <&clk_sysin>;
27262306a36Sopenharmony_ci			interrupts = <GIC_SPI 205 IRQ_TYPE_EDGE_RISING>;
27362306a36Sopenharmony_ci		};
27462306a36Sopenharmony_ci
27562306a36Sopenharmony_ci		cec@94a087c {
27662306a36Sopenharmony_ci			compatible = "st,stih-cec";
27762306a36Sopenharmony_ci			reg = <0x94a087c 0x64>;
27862306a36Sopenharmony_ci			clocks = <&clk_sysin>;
27962306a36Sopenharmony_ci			clock-names = "cec-clk";
28062306a36Sopenharmony_ci			interrupts = <GIC_SPI 140 IRQ_TYPE_LEVEL_HIGH>;
28162306a36Sopenharmony_ci			interrupt-names = "cec-irq";
28262306a36Sopenharmony_ci			pinctrl-names = "default";
28362306a36Sopenharmony_ci			pinctrl-0 = <&pinctrl_cec0_default>;
28462306a36Sopenharmony_ci			resets = <&softreset STIH407_LPM_SOFTRESET>;
28562306a36Sopenharmony_ci			hdmi-phandle = <&sti_hdmi>;
28662306a36Sopenharmony_ci		};
28762306a36Sopenharmony_ci	};
28862306a36Sopenharmony_ci};
289