Re: [PATCH 2/5] dt-bindings: display/panel: Expand rotation documentation

From: Rob Herring
Date: Tue Jun 11 2019 - 11:30:21 EST


On Mon, Jun 10, 2019 at 10:03 PM Derek Basehore <dbasehore@xxxxxxxxxxxx> wrote:
>
> This adds to the rotation documentation to explain how drivers should
> use the property and gives an example of the property in a devicetree
> node.
>
> Signed-off-by: Derek Basehore <dbasehore@xxxxxxxxxxxx>
> ---
> .../bindings/display/panel/panel.txt | 32 +++++++++++++++++++
> 1 file changed, 32 insertions(+)
>
> diff --git a/Documentation/devicetree/bindings/display/panel/panel.txt b/Documentation/devicetree/bindings/display/panel/panel.txt
> index e2e6867852b8..f35d62d933fc 100644
> --- a/Documentation/devicetree/bindings/display/panel/panel.txt
> +++ b/Documentation/devicetree/bindings/display/panel/panel.txt
> @@ -2,3 +2,35 @@ Common display properties
> -------------------------
>
> - rotation: Display rotation in degrees counter clockwise (0,90,180,270)
> +
> +Property read from the device tree using of of_drm_get_panel_orientation

Don't put kernel specifics into bindings.

> +
> +The panel driver may apply the rotation at the TCON level, which will

What's TCON? Something Mediatek specific IIRC.

> +make the panel look like it isn't rotated to the kernel and any other
> +software.
> +
> +If not, a panel orientation property should be added through the SoC
> +vendor DRM code using the drm_connector_init_panel_orientation_property
> +function.

The 'rotation' property should be defined purely based on how the
panel is mounted relative to a device's orientation. If the display
pipeline has some ability to handle rotation, that's a feature of the
display pipeline and not the panel.

> +
> +Example:

This file is a collection of common properties. It shouldn't have an
example especially as this example is mostly non-common properties.

> + panel: panel@0 {
> + compatible = "boe,himax8279d8p";
> + reg = <0>;
> + enable-gpios = <&pio 45 0>;

> + pp33-gpios = <&pio 35 0>;
> + pp18-gpios = <&pio 36 0>;

BTW, are these upstream because they look like GPIO controlled
supplies which we model with gpio-regulator binding typically.

> + pinctrl-names = "default", "state_3300mv", "state_1800mv";
> + pinctrl-0 = <&panel_pins_default>;
> + pinctrl-1 = <&panel_pins_3300mv>;
> + pinctrl-2 = <&panel_pins_1800mv>;
> + backlight = <&backlight_lcd0>;
> + rotation = <180>;
> + status = "okay";
> +
> + port {
> + panel_in: endpoint {
> + remote-endpoint = <&dsi_out>;
> + };
> + };
> + };
> --
> 2.22.0.rc2.383.gf4fbbf30c2-goog
>