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