xref: /freebsd-src/sys/contrib/device-tree/Bindings/display/msm/hdmi.txt (revision c66ec88fed842fbaad62c30d510644ceb7bd2d71)
1*c66ec88fSEmmanuel VadotQualcomm adreno/snapdragon hdmi output
2*c66ec88fSEmmanuel Vadot
3*c66ec88fSEmmanuel VadotRequired properties:
4*c66ec88fSEmmanuel Vadot- compatible: one of the following
5*c66ec88fSEmmanuel Vadot   * "qcom,hdmi-tx-8996"
6*c66ec88fSEmmanuel Vadot   * "qcom,hdmi-tx-8994"
7*c66ec88fSEmmanuel Vadot   * "qcom,hdmi-tx-8084"
8*c66ec88fSEmmanuel Vadot   * "qcom,hdmi-tx-8974"
9*c66ec88fSEmmanuel Vadot   * "qcom,hdmi-tx-8660"
10*c66ec88fSEmmanuel Vadot   * "qcom,hdmi-tx-8960"
11*c66ec88fSEmmanuel Vadot- reg: Physical base address and length of the controller's registers
12*c66ec88fSEmmanuel Vadot- reg-names: "core_physical"
13*c66ec88fSEmmanuel Vadot- interrupts: The interrupt signal from the hdmi block.
14*c66ec88fSEmmanuel Vadot- power-domains: Should be <&mmcc MDSS_GDSC>.
15*c66ec88fSEmmanuel Vadot- clocks: device clocks
16*c66ec88fSEmmanuel Vadot  See ../clocks/clock-bindings.txt for details.
17*c66ec88fSEmmanuel Vadot- core-vdda-supply: phandle to supply regulator
18*c66ec88fSEmmanuel Vadot- hdmi-mux-supply: phandle to mux regulator
19*c66ec88fSEmmanuel Vadot- phys: the phandle for the HDMI PHY device
20*c66ec88fSEmmanuel Vadot- phy-names: the name of the corresponding PHY device
21*c66ec88fSEmmanuel Vadot
22*c66ec88fSEmmanuel VadotOptional properties:
23*c66ec88fSEmmanuel Vadot- hpd-gpios: hpd pin
24*c66ec88fSEmmanuel Vadot- qcom,hdmi-tx-mux-en-gpios: hdmi mux enable pin
25*c66ec88fSEmmanuel Vadot- qcom,hdmi-tx-mux-sel-gpios: hdmi mux select pin
26*c66ec88fSEmmanuel Vadot- qcom,hdmi-tx-mux-lpm-gpios: hdmi mux lpm pin
27*c66ec88fSEmmanuel Vadot- power-domains: reference to the power domain(s), if available.
28*c66ec88fSEmmanuel Vadot- pinctrl-names: the pin control state names; should contain "default"
29*c66ec88fSEmmanuel Vadot- pinctrl-0: the default pinctrl state (active)
30*c66ec88fSEmmanuel Vadot- pinctrl-1: the "sleep" pinctrl state
31*c66ec88fSEmmanuel Vadot
32*c66ec88fSEmmanuel VadotHDMI PHY:
33*c66ec88fSEmmanuel VadotRequired properties:
34*c66ec88fSEmmanuel Vadot- compatible: Could be the following
35*c66ec88fSEmmanuel Vadot  * "qcom,hdmi-phy-8660"
36*c66ec88fSEmmanuel Vadot  * "qcom,hdmi-phy-8960"
37*c66ec88fSEmmanuel Vadot  * "qcom,hdmi-phy-8974"
38*c66ec88fSEmmanuel Vadot  * "qcom,hdmi-phy-8084"
39*c66ec88fSEmmanuel Vadot  * "qcom,hdmi-phy-8996"
40*c66ec88fSEmmanuel Vadot- #phy-cells: Number of cells in a PHY specifier; Should be 0.
41*c66ec88fSEmmanuel Vadot- reg: Physical base address and length of the registers of the PHY sub blocks.
42*c66ec88fSEmmanuel Vadot- reg-names: The names of register regions. The following regions are required:
43*c66ec88fSEmmanuel Vadot  * "hdmi_phy"
44*c66ec88fSEmmanuel Vadot  * "hdmi_pll"
45*c66ec88fSEmmanuel Vadot  For HDMI PHY on msm8996, these additional register regions are required:
46*c66ec88fSEmmanuel Vadot    * "hdmi_tx_l0"
47*c66ec88fSEmmanuel Vadot    * "hdmi_tx_l1"
48*c66ec88fSEmmanuel Vadot    * "hdmi_tx_l3"
49*c66ec88fSEmmanuel Vadot    * "hdmi_tx_l4"
50*c66ec88fSEmmanuel Vadot- power-domains: Should be <&mmcc MDSS_GDSC>.
51*c66ec88fSEmmanuel Vadot- clocks: device clocks
52*c66ec88fSEmmanuel Vadot  See Documentation/devicetree/bindings/clock/clock-bindings.txt for details.
53*c66ec88fSEmmanuel Vadot- core-vdda-supply: phandle to vdda regulator device node
54*c66ec88fSEmmanuel Vadot
55*c66ec88fSEmmanuel VadotExample:
56*c66ec88fSEmmanuel Vadot
57*c66ec88fSEmmanuel Vadot/ {
58*c66ec88fSEmmanuel Vadot	...
59*c66ec88fSEmmanuel Vadot
60*c66ec88fSEmmanuel Vadot	hdmi: hdmi@4a00000 {
61*c66ec88fSEmmanuel Vadot		compatible = "qcom,hdmi-tx-8960";
62*c66ec88fSEmmanuel Vadot		reg-names = "core_physical";
63*c66ec88fSEmmanuel Vadot		reg = <0x04a00000 0x2f0>;
64*c66ec88fSEmmanuel Vadot		interrupts = <GIC_SPI 79 0>;
65*c66ec88fSEmmanuel Vadot		power-domains = <&mmcc MDSS_GDSC>;
66*c66ec88fSEmmanuel Vadot		clock-names =
67*c66ec88fSEmmanuel Vadot		    "core",
68*c66ec88fSEmmanuel Vadot		    "master_iface",
69*c66ec88fSEmmanuel Vadot		    "slave_iface";
70*c66ec88fSEmmanuel Vadot		clocks =
71*c66ec88fSEmmanuel Vadot		    <&mmcc HDMI_APP_CLK>,
72*c66ec88fSEmmanuel Vadot		    <&mmcc HDMI_M_AHB_CLK>,
73*c66ec88fSEmmanuel Vadot		    <&mmcc HDMI_S_AHB_CLK>;
74*c66ec88fSEmmanuel Vadot		qcom,hdmi-tx-ddc-clk = <&msmgpio 70 GPIO_ACTIVE_HIGH>;
75*c66ec88fSEmmanuel Vadot		qcom,hdmi-tx-ddc-data = <&msmgpio 71 GPIO_ACTIVE_HIGH>;
76*c66ec88fSEmmanuel Vadot		qcom,hdmi-tx-hpd = <&msmgpio 72 GPIO_ACTIVE_HIGH>;
77*c66ec88fSEmmanuel Vadot		core-vdda-supply = <&pm8921_hdmi_mvs>;
78*c66ec88fSEmmanuel Vadot		hdmi-mux-supply = <&ext_3p3v>;
79*c66ec88fSEmmanuel Vadot		pinctrl-names = "default", "sleep";
80*c66ec88fSEmmanuel Vadot		pinctrl-0 = <&hpd_active  &ddc_active  &cec_active>;
81*c66ec88fSEmmanuel Vadot		pinctrl-1 = <&hpd_suspend &ddc_suspend &cec_suspend>;
82*c66ec88fSEmmanuel Vadot
83*c66ec88fSEmmanuel Vadot		phys = <&hdmi_phy>;
84*c66ec88fSEmmanuel Vadot		phy-names = "hdmi_phy";
85*c66ec88fSEmmanuel Vadot	};
86*c66ec88fSEmmanuel Vadot
87*c66ec88fSEmmanuel Vadot	hdmi_phy: phy@4a00400 {
88*c66ec88fSEmmanuel Vadot		compatible = "qcom,hdmi-phy-8960";
89*c66ec88fSEmmanuel Vadot		reg-names = "hdmi_phy",
90*c66ec88fSEmmanuel Vadot			    "hdmi_pll";
91*c66ec88fSEmmanuel Vadot		reg = <0x4a00400 0x60>,
92*c66ec88fSEmmanuel Vadot		      <0x4a00500 0x100>;
93*c66ec88fSEmmanuel Vadot		#phy-cells = <0>;
94*c66ec88fSEmmanuel Vadot		power-domains = <&mmcc MDSS_GDSC>;
95*c66ec88fSEmmanuel Vadot		clock-names = "slave_iface";
96*c66ec88fSEmmanuel Vadot		clocks = <&mmcc HDMI_S_AHB_CLK>;
97*c66ec88fSEmmanuel Vadot		core-vdda-supply = <&pm8921_hdmi_mvs>;
98*c66ec88fSEmmanuel Vadot	};
99*c66ec88fSEmmanuel Vadot};
100