From: Biju Das <[email protected]> Add support for the RZ/G3L LVDS encoder driver. It operates in single-link mode with 4 lanes (Data) + 1 lane (Clock) and supports pixel clock rates from 25 to 87 MHz. The LVDS module cannot be used at the same time as MIPI-DSI. However, LVDS and the DSI interface share a peripheral clock and the MIPI_DSI_PRESET_N reset signal. Also, the MIPI_DSI_CMN_RSTB and MIPI_DSI_ARESET_N reset signals must be asserted before using the LVDS module.
This patch series depend upon [1] [1] https://lore.kernel.org/all/[email protected]/ v3->v4: * Reworked bindings, dropping parent node containing simple-mfd and syson. * Dropped the tags * Dropped the header files clk.h and syscon.h * Dropped next_bridge check in attach(). * Dropped syscon for getting regmap. * Replaced the below macros to match the hardware manual: LVDS_0_CTL_FMT_SEL_MSK->LVDS_0_CTL_FMT_SEL0_MSK LVDS_0_PHY_CH_IO_EN_MSK->LVDS_0_PHY_CH_IO_EN0_MSK Replaced LVDS_0_PHY_CH_IO_EN->LVDS_0_PHY_CH_IO_EN0 * Replaced atomic_reset()->atomic_create_state(). v2->v3: * Collected tags. v2->v2[1]: * Dropped patch#1 as it is accepted. * Replace drm_atomic_state with drm_atomic_commit in rzg3l_lvds_atomic_{en,dis}able(). * Drop local variable ret and dev_err() messages in rzg3l_lvds_atomic_enable(); use WARN_ON() instead to capture unexpected failures since atomic_enable should not fail. * Drop local variable next_bridge from rzg3l_lvds_probe(). [1] https://lore.kernel.org/all/[email protected]/ v1->v2: * Collected the tags for binding patches. * Dropped unused function rzg3l_lvds_is_connected() and removed the corresponding header file rzg3l_lvds.h * Dropped next_bridge from struct rzg3l_lvds instead using bridge's next_bridge. * Replaced pm_runtime_resume_and_get()->pm_runtime_get_sync() as atomic_enable doesn't fail and for each enable there always will be an atomic_disable() call. * Started using DEFINE_RUNTIME_DEV_PM_OPS for PM callback. * Replaced rzg3l_lvds_parse_dt() with devm_drm_of_get_bridge() in probe() * Started using reset_control_bulk_*() in rzg3l_lvds_pm_runtime_{suspend, resume}(). Biju Das (2): dt-bindings: display: bridge: Document Renesas RZ/G3L LVDS encoder drm: renesas: rz-du: Add support for RZ/G3L LVDS encoder .../bridge/renesas,r9a08g046-lvds.yaml | 120 ++++++++ drivers/gpu/drm/renesas/rz-du/Kconfig | 13 + drivers/gpu/drm/renesas/rz-du/Makefile | 1 + drivers/gpu/drm/renesas/rz-du/rzg3l_lvds.c | 285 ++++++++++++++++++ .../gpu/drm/renesas/rz-du/rzg3l_lvds_regs.h | 26 ++ 5 files changed, 445 insertions(+) create mode 100644 Documentation/devicetree/bindings/display/bridge/renesas,r9a08g046-lvds.yaml create mode 100644 drivers/gpu/drm/renesas/rz-du/rzg3l_lvds.c create mode 100644 drivers/gpu/drm/renesas/rz-du/rzg3l_lvds_regs.h -- 2.43.0
