Message ID | 20190207083647.20615-3-linus.walleij@linaro.org (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | DRM driver for ST-Ericsson MCDE | expand |
On Thu, Feb 07, 2019 at 09:36:45AM +0100, Linus Walleij wrote: > This adds the device tree bindings for the ST-Ericsson > Multi Channel Display Engine MCDE as found in the U8500 > SoCs. > > Cc: devicetree@vger.kernel.org > Signed-off-by: Linus Walleij <linus.walleij@linaro.org> > --- > .../devicetree/bindings/display/ste,mcde.txt | 110 ++++++++++++++++++ > 1 file changed, 110 insertions(+) > create mode 100644 Documentation/devicetree/bindings/display/ste,mcde.txt > > diff --git a/Documentation/devicetree/bindings/display/ste,mcde.txt b/Documentation/devicetree/bindings/display/ste,mcde.txt > new file mode 100644 > index 000000000000..fc58aa5effb5 > --- /dev/null > +++ b/Documentation/devicetree/bindings/display/ste,mcde.txt > @@ -0,0 +1,110 @@ > +ST-Ericsson Multi Channel Display Engine MCDE > + > +The ST-Ericsson MCDE is a display controller with support for compositing > +and displaying several channels memory resident graphics data on DSI or > +LCD displays or bridges. It is used in the ST-Ericsson U8500 platform. > + > +Required properties: > + > +- compatible: must be: > + "ste,mcde" Only one version? This too is old enough, I'm not too worried about how specific the compatibles are here. > +- reg: register base for the main MCDE control registers, should be > + 0x1000 in size > +- interrupts: the interrupt line for the MCDE > +- epod-supply: a phandle to the EPOD regulator > +- vana-supply: a phandle to the analog voltage regulator > +- clocks: an array of the MCDE clocks in this strict order: > + MCDECLK (main MCDE clock), LCDCLK (LCD clock), PLLDSI > + (HDMI clock), DSI0ESCLK (DSI0 energy save clock), > + DSI1ESCLK (DSI1 energy save clock), DSI2ESCLK (DSI2 energy > + save clock) > +- clock-names: must be the following array: > + "mcde", "lcd", "hdmi", "dsi0", "dsi1", "dsi0es", "dsi1es", "dsi2es" dsi2 clock? Should the dsi clocks be in the child nodes? > + to match the required clock inputs above. > +- #address-cells: should be <1> (for the DSI hosts that will be children) > +- #size-cells: should be <1> (for the DSI hosts that will be children) > +- ranges: this should always be stated > + > +Required subnodes: > + > +The devicetree must specify subnodes for the DSI host adapters. > +These must have the following characteristics: > + > +- compatible: must be: > + "ste,mcde-dsi" > +- reg: must specify the register range for the DSI host > +- vana-supply: phandle to the VANA voltage regulator > +- #address-cells: should be <1> > +- #size-cells: should be <0> > + > +Display panels and bridges will appear as children on the DSI hosts, and > +the displays are connected to the DSI hosts using the common binding > +for video transmitter interfaces; see > +Documentation/devicetree/bindings/media/video-interfaces.txt > + > +If a DSI host is unused (not connected) it will have no children or ports > +defined. > + > +Example: > + > +mcde@a0350000 { > + compatible = "ste,mcde"; > + reg = <0xa0350000 0x1000>; > + interrupts = <GIC_SPI 48 IRQ_TYPE_LEVEL_HIGH>; > + epod-supply = <&db8500_b2r2_mcde_reg>; > + vana-supply = <&ab8500_ldo_ana_reg>; > + clocks = <&prcmu_clk PRCMU_MCDECLK>, /* Main MCDE clock */ > + <&prcmu_clk PRCMU_LCDCLK>, /* LCD clock */ > + <&prcmu_clk PRCMU_PLLDSI>, /* HDMI clock */ > + <&prcmu_clk PRCMU_DSI0CLK>, /* DSI 0 */ > + <&prcmu_clk PRCMU_DSI1CLK>, /* DSI 1 */ > + <&prcmu_clk PRCMU_DSI0ESCCLK>, /* TVout clock 0 */ > + <&prcmu_clk PRCMU_DSI1ESCCLK>, /* TVout clock 1 */ > + <&prcmu_clk PRCMU_DSI2ESCCLK>; /* TVout clock 2 */ > + clock-names = "mcde", "lcd", "hdmi", "dsi0", "dsi1", > + "dsi0es", "dsi1es", "dsi2es"; > + #address-cells = <1>; > + #size-cells = <1>; > + ranges; A non-empty ranges is preferred, then you can just do offsets below. > + > + dsi0: dsi@a0351000 { > + compatible = "ste,mcde-dsi"; > + reg = <0xa0351000 0x1000>; > + vana-supply = <&ab8500_ldo_ana_reg>; > + #address-cells = <1>; > + #size-cells = <0>; > + port { > + dsi0_out: endpoint { > + remote-endpoint = <&panel_in>; > + }; > + }; > + > + panel: display { 'panel' would be the somewhat more standard node name. > + compatible = "samsung,s6d16d0"; > + reg = <0>; > + vdd1-supply = <&ab8500_ldo_aux1_reg>; > + reset-gpios = <&gpio2 1 GPIO_ACTIVE_LOW>; > + > + port { > + panel_in: endpoint { > + remote-endpoint = <&dsi0_out>; You don't really need the graph here as it is already a child. Generally it is either or. The driver can support both ways though. > + }; > + }; > + }; > + > + }; > + dsi1: dsi@a0352000 { > + compatible = "ste,mcde-dsi"; > + reg = <0xa0352000 0x1000>; > + vana-supply = <&ab8500_ldo_ana_reg>; > + #address-cells = <1>; > + #size-cells = <0>; > + }; > + dsi2: dsi@a0353000 { > + compatible = "ste,mcde-dsi"; > + reg = <0xa0353000 0x1000>; > + vana-supply = <&ab8500_ldo_ana_reg>; > + #address-cells = <1>; > + #size-cells = <0>; > + }; > +}; > -- > 2.20.1 >
diff --git a/Documentation/devicetree/bindings/display/ste,mcde.txt b/Documentation/devicetree/bindings/display/ste,mcde.txt new file mode 100644 index 000000000000..fc58aa5effb5 --- /dev/null +++ b/Documentation/devicetree/bindings/display/ste,mcde.txt @@ -0,0 +1,110 @@ +ST-Ericsson Multi Channel Display Engine MCDE + +The ST-Ericsson MCDE is a display controller with support for compositing +and displaying several channels memory resident graphics data on DSI or +LCD displays or bridges. It is used in the ST-Ericsson U8500 platform. + +Required properties: + +- compatible: must be: + "ste,mcde" +- reg: register base for the main MCDE control registers, should be + 0x1000 in size +- interrupts: the interrupt line for the MCDE +- epod-supply: a phandle to the EPOD regulator +- vana-supply: a phandle to the analog voltage regulator +- clocks: an array of the MCDE clocks in this strict order: + MCDECLK (main MCDE clock), LCDCLK (LCD clock), PLLDSI + (HDMI clock), DSI0ESCLK (DSI0 energy save clock), + DSI1ESCLK (DSI1 energy save clock), DSI2ESCLK (DSI2 energy + save clock) +- clock-names: must be the following array: + "mcde", "lcd", "hdmi", "dsi0", "dsi1", "dsi0es", "dsi1es", "dsi2es" + to match the required clock inputs above. +- #address-cells: should be <1> (for the DSI hosts that will be children) +- #size-cells: should be <1> (for the DSI hosts that will be children) +- ranges: this should always be stated + +Required subnodes: + +The devicetree must specify subnodes for the DSI host adapters. +These must have the following characteristics: + +- compatible: must be: + "ste,mcde-dsi" +- reg: must specify the register range for the DSI host +- vana-supply: phandle to the VANA voltage regulator +- #address-cells: should be <1> +- #size-cells: should be <0> + +Display panels and bridges will appear as children on the DSI hosts, and +the displays are connected to the DSI hosts using the common binding +for video transmitter interfaces; see +Documentation/devicetree/bindings/media/video-interfaces.txt + +If a DSI host is unused (not connected) it will have no children or ports +defined. + +Example: + +mcde@a0350000 { + compatible = "ste,mcde"; + reg = <0xa0350000 0x1000>; + interrupts = <GIC_SPI 48 IRQ_TYPE_LEVEL_HIGH>; + epod-supply = <&db8500_b2r2_mcde_reg>; + vana-supply = <&ab8500_ldo_ana_reg>; + clocks = <&prcmu_clk PRCMU_MCDECLK>, /* Main MCDE clock */ + <&prcmu_clk PRCMU_LCDCLK>, /* LCD clock */ + <&prcmu_clk PRCMU_PLLDSI>, /* HDMI clock */ + <&prcmu_clk PRCMU_DSI0CLK>, /* DSI 0 */ + <&prcmu_clk PRCMU_DSI1CLK>, /* DSI 1 */ + <&prcmu_clk PRCMU_DSI0ESCCLK>, /* TVout clock 0 */ + <&prcmu_clk PRCMU_DSI1ESCCLK>, /* TVout clock 1 */ + <&prcmu_clk PRCMU_DSI2ESCCLK>; /* TVout clock 2 */ + clock-names = "mcde", "lcd", "hdmi", "dsi0", "dsi1", + "dsi0es", "dsi1es", "dsi2es"; + #address-cells = <1>; + #size-cells = <1>; + ranges; + + dsi0: dsi@a0351000 { + compatible = "ste,mcde-dsi"; + reg = <0xa0351000 0x1000>; + vana-supply = <&ab8500_ldo_ana_reg>; + #address-cells = <1>; + #size-cells = <0>; + port { + dsi0_out: endpoint { + remote-endpoint = <&panel_in>; + }; + }; + + panel: display { + compatible = "samsung,s6d16d0"; + reg = <0>; + vdd1-supply = <&ab8500_ldo_aux1_reg>; + reset-gpios = <&gpio2 1 GPIO_ACTIVE_LOW>; + + port { + panel_in: endpoint { + remote-endpoint = <&dsi0_out>; + }; + }; + }; + + }; + dsi1: dsi@a0352000 { + compatible = "ste,mcde-dsi"; + reg = <0xa0352000 0x1000>; + vana-supply = <&ab8500_ldo_ana_reg>; + #address-cells = <1>; + #size-cells = <0>; + }; + dsi2: dsi@a0353000 { + compatible = "ste,mcde-dsi"; + reg = <0xa0353000 0x1000>; + vana-supply = <&ab8500_ldo_ana_reg>; + #address-cells = <1>; + #size-cells = <0>; + }; +};
This adds the device tree bindings for the ST-Ericsson Multi Channel Display Engine MCDE as found in the U8500 SoCs. Cc: devicetree@vger.kernel.org Signed-off-by: Linus Walleij <linus.walleij@linaro.org> --- .../devicetree/bindings/display/ste,mcde.txt | 110 ++++++++++++++++++ 1 file changed, 110 insertions(+) create mode 100644 Documentation/devicetree/bindings/display/ste,mcde.txt