mbox series

[V5,0/3] drm/panel: Add NewVision NV3051D Panels

Message ID 20221111203130.9615-1-macroalpha82@gmail.com (mailing list archive)
Headers show
Series drm/panel: Add NewVision NV3051D Panels | expand

Message

Chris Morgan Nov. 11, 2022, 8:31 p.m. UTC
From: Chris Morgan <macromorgan@hotmail.com>

Add the NewVision NV3051D panel as found on the Anbernic RG353P and
RG353V. The underlying LCD panel itself is unknown (the NV3051D is
the controller), so the device name is used for the panel with a
fallback to the driver IC.

Changes from V4:
 - Removed "prepared" as its tracked by the framework.
 - Use mipi_dsi_dcs_write_seq instead of custom implementation.
 - Changed devm_gpiod_get_optional to assert GPIO as high at probe so
   it is held in reset on suggestion from maintainer.
 - Removed requirement for vdd-supply in documentation.
 - Added description in documentation for reset gpio to note it should
   be active low.

Changes from V3:
 - Changed driver remove function from int to void to match change
   made to mipi_dsi_driver struct.

Changes from V2:
 - Ensured dt_binding_check and dtbs_check successfully passed.
 - Corrected some minor formatting issues in documentation.
 - Added another mode per userspace request for 100hz. I was unable
   to find a supported 50hz mode that would also work, so for now
   only 60hz, 100hz, and 120hz are supported.

Changes from V1:
 - Changed compatible string to the driver IC.
 - Updated documentation to use new compatible string with board
   name.
 - Refactored somewhat to make it easier to support other LCD panels
   with this kernel module.
 - Added support for 60hz mode. Adjusted pixel clock to ensure proper
   60hz and 120hz (previously was running at 124hz).
 - Added vendor prefix for NewVision. Anbernic vendor prefix added in
   https://lore.kernel.org/linux-devicetree/20220906210324.28986-2-macroalpha82@gmail.com

Chris Morgan (3):
  dt-bindings: vendor-prefixes: add NewVision vendor prefix
  dt-bindings: display: panel: Add NewVision NV3051D  bindings
  drm/panel: Add NewVision NV3051D MIPI-DSI LCD panel

 .../display/panel/newvision,nv3051d.yaml      |  63 +++
 .../devicetree/bindings/vendor-prefixes.yaml  |   2 +
 drivers/gpu/drm/panel/Kconfig                 |   9 +
 drivers/gpu/drm/panel/Makefile                |   1 +
 .../gpu/drm/panel/panel-newvision-nv3051d.c   | 504 ++++++++++++++++++
 5 files changed, 579 insertions(+)
 create mode 100644 Documentation/devicetree/bindings/display/panel/newvision,nv3051d.yaml
 create mode 100644 drivers/gpu/drm/panel/panel-newvision-nv3051d.c

Comments

Linus Walleij Nov. 14, 2022, 11:46 a.m. UTC | #1
On Fri, Nov 11, 2022 at 9:31 PM Chris Morgan <macroalpha82@gmail.com> wrote:

> From: Chris Morgan <macromorgan@hotmail.com>
>
> Add the NewVision NV3051D panel as found on the Anbernic RG353P and
> RG353V. The underlying LCD panel itself is unknown (the NV3051D is
> the controller), so the device name is used for the panel with a
> fallback to the driver IC.
>
> Changes from V4:
>  - Removed "prepared" as its tracked by the framework.
>  - Use mipi_dsi_dcs_write_seq instead of custom implementation.
>  - Changed devm_gpiod_get_optional to assert GPIO as high at probe so
>    it is held in reset on suggestion from maintainer.
>  - Removed requirement for vdd-supply in documentation.
>  - Added description in documentation for reset gpio to note it should
>    be active low.

v5 looks good, patches applied to drm-misc-next and pushed, I had to fix
a minor checkpatch complaint in the driver but it was trivial.

Yours,
Linus Walleij