On Fri, Apr 8, 2022 at 9:22 AM Jagan Teki jagan@amarulasolutions.com wrote:
This series supports common bridge support for Samsung MIPI DSIM which is used in Exynos and i.MX8MM SoC's.
Previous RFC can be available here [1].
The final bridge supports both the Exynos and i.MX8MM DSI devices.
On, summary this patch-set break the entire DSIM driver into
- platform specific glue code for platform ops, component_ops.
- common bridge driver which handle platform glue init and invoke.
Patch 0000: Samsung DSIM bridge
Patch 0001: platform init flag via driver_data
Patch 0002/9: bridge fixes, atomic API's
Patch 0010: document fsl,imx8mm-mipi-dsim
Patch 0011: add i.MX8MM DSIM support
Tested in Engicam i.Core MX8M Mini SoM.
Anyone interested, please have a look on this repo [2]
[2] https://github.com/openedev/kernel/tree/imx8mm-dsi-v1 [1] https://lore.kernel.org/linux-arm-kernel/YP2j9k5SrZ2%2Fo2%2F5@ravnborg.org/T...
Any inputs? Jagan.
Jagan Teki (11): drm: bridge: Add Samsung DSIM bridge driver drm: bridge: samsung-dsim: Handle platform init via driver_data drm: bridge: samsung-dsim: Mark PHY as optional drm: bridge: samsung-dsim: Add DSI init in bridge pre_enable() drm: bridge: samsung-dsim: Fix PLL_P (PMS_P) offset drm: bridge: samsung-dsim: Add module init, exit drm: bridge: samsung-dsim: Add atomic_check drm: bridge: samsung-dsim: Add atomic_get_input_bus_fmts drm: bridge: samsung-dsim: Add input_bus_flags dt-bindings: display: exynos: dsim: Add NXP i.MX8MM support drm: bridge: samsung-dsim: Add i.MX8MM support
.../bindings/display/exynos/exynos_dsim.txt | 1 + MAINTAINERS | 12 + drivers/gpu/drm/bridge/Kconfig | 12 + drivers/gpu/drm/bridge/Makefile | 1 + drivers/gpu/drm/bridge/samsung-dsim.c | 1803 +++++++++++++++++ drivers/gpu/drm/exynos/Kconfig | 1 + drivers/gpu/drm/exynos/exynos_drm_dsi.c | 1704 +--------------- include/drm/bridge/samsung-dsim.h | 97 + 8 files changed, 1982 insertions(+), 1649 deletions(-) create mode 100644 drivers/gpu/drm/bridge/samsung-dsim.c create mode 100644 include/drm/bridge/samsung-dsim.h
-- 2.25.1
Jagan,
Thanks so much for continuing to work this through!
I've successfully tested this series on imx8mm-venice-gw73xx-0x using the following: - DFROBOT 7" raspberrypi touchscreen display (DFR0506) [1] - the following defconfig: CONFIG_REGULATOR_RASPBERRYPI_TOUCHSCREEN_ATTINY CONFIG_DRM_PANEL_SIMPLE CONFIG_DRM_PANEL_BRIDGE CONFIG_DRM_PANEL_RASPBERRYPI_TOUCHSCREEN CONFIG_DRM_TOSHIBA_TC358762 CONFIG_DRM_SAMSUNG_DSIM CONFIG_DRM_MXSFB - the following dt overlay: // SPDX-License-Identifier: (GPL-2.0+ OR MIT) /* * Copyright 2022 Gateworks Corporation */
#include <dt-bindings/gpio/gpio.h>
#include "imx8mm-pinfunc.h"
/dts-v1/; /plugin/;
&{/} { compatible = "gw,imx8mm-gw73xx-0x", "fsl,imx8mm";
panel { compatible = "powertip,ph800480t013-idf02"; power-supply = <&attiny>; backlight = <&attiny>;
port { panel_out_bridge: endpoint { remote-endpoint = <&bridge_out_panel>; }; }; }; };
&i2c3 { #address-cells = <1>; #size-cells = <0>;
attiny: regulator@45 { compatible = "raspberrypi,7inch-touchscreen-panel-regulator"; reg = <0x45>; }; };
&lcdif { status = "okay"; };
&dsi { #address-cells = <1>; #size-cells = <0>; status = "okay";
bridge@0 { compatible = "toshiba,tc358762"; reg = <0>; vddc-supply = <&attiny>; #address-cells = <1>; #size-cells = <0>; status = "okay";
ports { #address-cells = <1>; #size-cells = <0>;
port@0 { reg = <0>; bridge_in_dsi: endpoint { remote-endpoint = <&dsi_out_bridge>; data-lanes = <0 1>; }; };
port@1 { reg = <1>; bridge_out_panel: endpoint { remote-endpoint = <&panel_out_bridge>; }; }; }; };
ports { #address-cells = <1>; #size-cells = <0>;
port@1 { reg = <1>;
dsi_out_bridge: endpoint { remote-endpoint = <&bridge_in_dsi>; }; }; }; };
Tested-by: Tim Harvey tharvey@gateworks.com #imx8mm-venice-gw73xx with DFR0506
I'll be happy to test any follow-on series as needed.
Best Regards,