Support the "rotation" DT property for ILI9881C based panels.
The first patch is a fix for the binding, then the usual binding update followed by the corresponding driver update.
John Keeping (3): dt-bindings: ili9881c: add missing panel-common inheritance dt-bindings: ili9881c: add rotation property drm/panel: ilitek-ili9881c: Read panel orientation
.../bindings/display/panel/ilitek,ili9881c.yaml | 4 ++++ drivers/gpu/drm/panel/panel-ilitek-ili9881c.c | 11 +++++++++++ 2 files changed, 15 insertions(+)
The properties below refer to items in panel-common.yaml, which means that needs to be referenced in the schema.
Signed-off-by: John Keeping john@metanate.com --- .../devicetree/bindings/display/panel/ilitek,ili9881c.yaml | 3 +++ 1 file changed, 3 insertions(+)
diff --git a/Documentation/devicetree/bindings/display/panel/ilitek,ili9881c.yaml b/Documentation/devicetree/bindings/display/panel/ilitek,ili9881c.yaml index 07789d554889..032bae7891ad 100644 --- a/Documentation/devicetree/bindings/display/panel/ilitek,ili9881c.yaml +++ b/Documentation/devicetree/bindings/display/panel/ilitek,ili9881c.yaml @@ -9,6 +9,9 @@ title: Ilitek ILI9881c based MIPI-DSI panels maintainers: - Maxime Ripard mripard@kernel.org
+allOf: + - $ref: panel-common.yaml# + properties: compatible: items:
Allow the standard rotation property from panel-common for ILI9881C based panels.
Signed-off-by: John Keeping john@metanate.com --- .../devicetree/bindings/display/panel/ilitek,ili9881c.yaml | 1 + 1 file changed, 1 insertion(+)
diff --git a/Documentation/devicetree/bindings/display/panel/ilitek,ili9881c.yaml b/Documentation/devicetree/bindings/display/panel/ilitek,ili9881c.yaml index 032bae7891ad..c5d1df680858 100644 --- a/Documentation/devicetree/bindings/display/panel/ilitek,ili9881c.yaml +++ b/Documentation/devicetree/bindings/display/panel/ilitek,ili9881c.yaml @@ -25,6 +25,7 @@ properties: power-supply: true reg: true reset-gpios: true + rotation: true
required: - compatible
The panel orientation needs to parsed from a device-tree and assigned to the panel's connector in order to make orientation property available to userspace. That's what this patch does for ILI9881C based panels.
Signed-off-by: John Keeping john@metanate.com --- drivers/gpu/drm/panel/panel-ilitek-ili9881c.c | 11 +++++++++++ 1 file changed, 11 insertions(+)
diff --git a/drivers/gpu/drm/panel/panel-ilitek-ili9881c.c b/drivers/gpu/drm/panel/panel-ilitek-ili9881c.c index d68c52bd53c2..ba30d11547ad 100644 --- a/drivers/gpu/drm/panel/panel-ilitek-ili9881c.c +++ b/drivers/gpu/drm/panel/panel-ilitek-ili9881c.c @@ -52,6 +52,8 @@ struct ili9881c {
struct regulator *power; struct gpio_desc *reset; + + enum drm_panel_orientation orientation; };
#define ILI9881C_SWITCH_PAGE_INSTR(_page) \ @@ -851,6 +853,8 @@ static int ili9881c_get_modes(struct drm_panel *panel, connector->display_info.width_mm = mode->width_mm; connector->display_info.height_mm = mode->height_mm;
+ drm_connector_set_panel_orientation(connector, ctx->orientation); + return 1; }
@@ -887,6 +891,13 @@ static int ili9881c_dsi_probe(struct mipi_dsi_device *dsi) return dev_err_probe(&dsi->dev, PTR_ERR(ctx->reset), "Couldn't get our reset GPIO\n");
+ ret = of_drm_get_panel_orientation(dsi->dev.of_node, &ctx->orientation); + if (ret) { + dev_err(&dsi->dev, "%pOF: failed to get orientation: %d\n", + dsi->dev.of_node, ret); + return ret; + } + ret = drm_panel_of_backlight(&ctx->panel); if (ret) return ret;
Hi John,
On Wed, Oct 20, 2021 at 04:34:27PM +0100, John Keeping wrote:
Support the "rotation" DT property for ILI9881C based panels.
The first patch is a fix for the binding, then the usual binding update followed by the corresponding driver update.
John Keeping (3): dt-bindings: ili9881c: add missing panel-common inheritance dt-bindings: ili9881c: add rotation property drm/panel: ilitek-ili9881c: Read panel orientation
Thanks for fixing my mistake in ilitek,ili9881c.yaml. All patches applied to drm-misc-next. They will show up in -next in 1-2 weeks.
Sam
dri-devel@lists.freedesktop.org