xref: /freebsd/sys/contrib/device-tree/Bindings/display/ste,mcde.txt (revision c66ec88fed842fbaad62c30d510644ceb7bd2d71)
1*c66ec88fSEmmanuel VadotST-Ericsson Multi Channel Display Engine MCDE
2*c66ec88fSEmmanuel Vadot
3*c66ec88fSEmmanuel VadotThe ST-Ericsson MCDE is a display controller with support for compositing
4*c66ec88fSEmmanuel Vadotand displaying several channels memory resident graphics data on DSI or
5*c66ec88fSEmmanuel VadotLCD displays or bridges. It is used in the ST-Ericsson U8500 platform.
6*c66ec88fSEmmanuel Vadot
7*c66ec88fSEmmanuel VadotRequired properties:
8*c66ec88fSEmmanuel Vadot
9*c66ec88fSEmmanuel Vadot- compatible: must be:
10*c66ec88fSEmmanuel Vadot  "ste,mcde"
11*c66ec88fSEmmanuel Vadot- reg: register base for the main MCDE control registers, should be
12*c66ec88fSEmmanuel Vadot  0x1000 in size
13*c66ec88fSEmmanuel Vadot- interrupts: the interrupt line for the MCDE
14*c66ec88fSEmmanuel Vadot- epod-supply: a phandle to the EPOD regulator
15*c66ec88fSEmmanuel Vadot- vana-supply: a phandle to the analog voltage regulator
16*c66ec88fSEmmanuel Vadot- clocks: an array of the MCDE clocks in this strict order:
17*c66ec88fSEmmanuel Vadot  MCDECLK (main MCDE clock), LCDCLK (LCD clock), PLLDSI
18*c66ec88fSEmmanuel Vadot  (HDMI clock), DSI0ESCLK (DSI0 energy save clock),
19*c66ec88fSEmmanuel Vadot  DSI1ESCLK (DSI1 energy save clock), DSI2ESCLK (DSI2 energy
20*c66ec88fSEmmanuel Vadot  save clock)
21*c66ec88fSEmmanuel Vadot- clock-names: must be the following array:
22*c66ec88fSEmmanuel Vadot  "mcde", "lcd", "hdmi"
23*c66ec88fSEmmanuel Vadot  to match the required clock inputs above.
24*c66ec88fSEmmanuel Vadot- #address-cells: should be <1> (for the DSI hosts that will be children)
25*c66ec88fSEmmanuel Vadot- #size-cells: should be <1> (for the DSI hosts that will be children)
26*c66ec88fSEmmanuel Vadot- ranges: this should always be stated
27*c66ec88fSEmmanuel Vadot
28*c66ec88fSEmmanuel VadotRequired subnodes:
29*c66ec88fSEmmanuel Vadot
30*c66ec88fSEmmanuel VadotThe devicetree must specify subnodes for the DSI host adapters.
31*c66ec88fSEmmanuel VadotThese must have the following characteristics:
32*c66ec88fSEmmanuel Vadot
33*c66ec88fSEmmanuel Vadot- compatible: must be:
34*c66ec88fSEmmanuel Vadot  "ste,mcde-dsi"
35*c66ec88fSEmmanuel Vadot- reg: must specify the register range for the DSI host
36*c66ec88fSEmmanuel Vadot- vana-supply: phandle to the VANA voltage regulator
37*c66ec88fSEmmanuel Vadot- clocks: phandles to the high speed and low power (energy save) clocks
38*c66ec88fSEmmanuel Vadot  the high speed clock is not present on the third (dsi2) block, so it
39*c66ec88fSEmmanuel Vadot  should only have the "lp" clock
40*c66ec88fSEmmanuel Vadot- clock-names: "hs" for the high speed clock and "lp" for the low power
41*c66ec88fSEmmanuel Vadot  (energy save) clock
42*c66ec88fSEmmanuel Vadot- #address-cells: should be <1>
43*c66ec88fSEmmanuel Vadot- #size-cells: should be <0>
44*c66ec88fSEmmanuel Vadot
45*c66ec88fSEmmanuel VadotDisplay panels and bridges will appear as children on the DSI hosts, and
46*c66ec88fSEmmanuel Vadotthe displays are connected to the DSI hosts using the common binding
47*c66ec88fSEmmanuel Vadotfor video transmitter interfaces; see
48*c66ec88fSEmmanuel VadotDocumentation/devicetree/bindings/media/video-interfaces.txt
49*c66ec88fSEmmanuel Vadot
50*c66ec88fSEmmanuel VadotIf a DSI host is unused (not connected) it will have no children defined.
51*c66ec88fSEmmanuel Vadot
52*c66ec88fSEmmanuel VadotExample:
53*c66ec88fSEmmanuel Vadot
54*c66ec88fSEmmanuel Vadotmcde@a0350000 {
55*c66ec88fSEmmanuel Vadot	compatible = "ste,mcde";
56*c66ec88fSEmmanuel Vadot	reg = <0xa0350000 0x1000>;
57*c66ec88fSEmmanuel Vadot	interrupts = <GIC_SPI 48 IRQ_TYPE_LEVEL_HIGH>;
58*c66ec88fSEmmanuel Vadot	epod-supply = <&db8500_b2r2_mcde_reg>;
59*c66ec88fSEmmanuel Vadot	vana-supply = <&ab8500_ldo_ana_reg>;
60*c66ec88fSEmmanuel Vadot	clocks = <&prcmu_clk PRCMU_MCDECLK>, /* Main MCDE clock */
61*c66ec88fSEmmanuel Vadot		 <&prcmu_clk PRCMU_LCDCLK>, /* LCD clock */
62*c66ec88fSEmmanuel Vadot		 <&prcmu_clk PRCMU_PLLDSI>; /* HDMI clock */
63*c66ec88fSEmmanuel Vadot	clock-names = "mcde", "lcd", "hdmi";
64*c66ec88fSEmmanuel Vadot	#address-cells = <1>;
65*c66ec88fSEmmanuel Vadot	#size-cells = <1>;
66*c66ec88fSEmmanuel Vadot	ranges;
67*c66ec88fSEmmanuel Vadot
68*c66ec88fSEmmanuel Vadot	dsi0: dsi@a0351000 {
69*c66ec88fSEmmanuel Vadot		compatible = "ste,mcde-dsi";
70*c66ec88fSEmmanuel Vadot		reg = <0xa0351000 0x1000>;
71*c66ec88fSEmmanuel Vadot		vana-supply = <&ab8500_ldo_ana_reg>;
72*c66ec88fSEmmanuel Vadot		clocks = <&prcmu_clk PRCMU_DSI0CLK>, <&prcmu_clk PRCMU_DSI0ESCCLK>;
73*c66ec88fSEmmanuel Vadot		clock-names = "hs", "lp";
74*c66ec88fSEmmanuel Vadot		#address-cells = <1>;
75*c66ec88fSEmmanuel Vadot		#size-cells = <0>;
76*c66ec88fSEmmanuel Vadot
77*c66ec88fSEmmanuel Vadot		panel {
78*c66ec88fSEmmanuel Vadot			compatible = "samsung,s6d16d0";
79*c66ec88fSEmmanuel Vadot			reg = <0>;
80*c66ec88fSEmmanuel Vadot			vdd1-supply = <&ab8500_ldo_aux1_reg>;
81*c66ec88fSEmmanuel Vadot			reset-gpios = <&gpio2 1 GPIO_ACTIVE_LOW>;
82*c66ec88fSEmmanuel Vadot		};
83*c66ec88fSEmmanuel Vadot
84*c66ec88fSEmmanuel Vadot	};
85*c66ec88fSEmmanuel Vadot	dsi1: dsi@a0352000 {
86*c66ec88fSEmmanuel Vadot		compatible = "ste,mcde-dsi";
87*c66ec88fSEmmanuel Vadot		reg = <0xa0352000 0x1000>;
88*c66ec88fSEmmanuel Vadot		vana-supply = <&ab8500_ldo_ana_reg>;
89*c66ec88fSEmmanuel Vadot		clocks = <&prcmu_clk PRCMU_DSI1CLK>, <&prcmu_clk PRCMU_DSI1ESCCLK>;
90*c66ec88fSEmmanuel Vadot		clock-names = "hs", "lp";
91*c66ec88fSEmmanuel Vadot		#address-cells = <1>;
92*c66ec88fSEmmanuel Vadot		#size-cells = <0>;
93*c66ec88fSEmmanuel Vadot	};
94*c66ec88fSEmmanuel Vadot	dsi2: dsi@a0353000 {
95*c66ec88fSEmmanuel Vadot		compatible = "ste,mcde-dsi";
96*c66ec88fSEmmanuel Vadot		reg = <0xa0353000 0x1000>;
97*c66ec88fSEmmanuel Vadot		vana-supply = <&ab8500_ldo_ana_reg>;
98*c66ec88fSEmmanuel Vadot		/* This DSI port only has the Low Power / Energy Save clock */
99*c66ec88fSEmmanuel Vadot		clocks = <&prcmu_clk PRCMU_DSI2ESCCLK>;
100*c66ec88fSEmmanuel Vadot		clock-names = "lp";
101*c66ec88fSEmmanuel Vadot		#address-cells = <1>;
102*c66ec88fSEmmanuel Vadot		#size-cells = <0>;
103*c66ec88fSEmmanuel Vadot	};
104*c66ec88fSEmmanuel Vadot};
105