* [PATCH v8 0/3] Add displays support for bsh-smm-s2/pro boards
@ 2023-12-14 8:24 ` Dario Binacchi
0 siblings, 0 replies; 11+ messages in thread
From: Dario Binacchi @ 2023-12-14 8:24 UTC (permalink / raw)
To: linux-kernel
Cc: michael, Amarula patchwork, Dario Binacchi, Andrzej Hajda,
Conor Dooley, Daniel Vetter, David Airlie, Fabio Estevam,
Inki Dae, Jagan Teki, Jernej Skrabec, Jonas Karlman,
Krzysztof Kozlowski, Laurent Pinchart, Maarten Lankhorst,
Marek Szyprowski, Maxime Ripard, NXP Linux Team, Neil Armstrong,
Pengutronix Kernel Team, Rob Herring, Robert Foss, Sascha Hauer,
Shawn Guo, Thomas Zimmermann, devicetree, dri-devel,
linux-arm-kernel
The series adds drivers for the displays used by bsh-smm-s2/pro boards.
This required applying some patches to the samsung-dsim driver and the
drm_bridge.c module.
Changes in v8:
- Move the 'status' property to the end of the list of nodes:
- pwm1
- lcdif
- mipi_dsi
- Add a newline between properties and child node (mipi_dsi_out).
- Sort the iomuxc node alphabetically
- Rename pwm1grp to blgrp
Changes in v7:
- Drop [3/4] dt-bindings: display: panel: Add synaptics r63353 panel controller
because applied.
Changes in v6:
- Drop patches:
- [06/10] drm/panel: Add Synaptics R63353 panel driver
- [07/10] dt-bindings: display: panel: Add Ilitek ili9805 panel controller
- [08/10] drm/panel: Add Ilitek ILI9805 panel driver
- [09/10] drm/panel: ilitek-ili9805: add support for Tianma TM041XDHG01 panel
Because applied to https://anongit.freedesktop.org/git/drm/drm-misc.git (drm-misc-next)
Drop patches:
- [01/10] drm/bridge: Fix bridge disable logic
- [02/10] drm/bridge: Fix a use case in the bridge disable logic
Because they are wrong
Changes in v3:
- Replace "synaptics,r63353" compatible with "syna,r63353", as
required by vendor-prefixes.yaml.
- Squash patch [09/11] dt-bindings: ili9805: add compatible string for Tianma TM041XDHG01
into [07/11] dt-bindings: display: panel: Add Ilitek ili9805 panel controller.
Changes in v2:
- Adjust the mipi_dsi node based on the latest patches merged into
the mainline in the dtsi files it includes.
- Added to the series the following patches:
- 0001 drm/bridge: Fix bridge disable logic
- 0002 drm/bridge: Fix a use case in the bridge disable logic
- 0003 samsung-dsim: enter display mode in the enable() callback
- 0004 drm: bridge: samsung-dsim: complete the CLKLANE_STOP setting
Dario Binacchi (2):
drm: bridge: samsung-dsim: enter display mode in the enable() callback
drm: bridge: samsung-dsim: complete the CLKLANE_STOP setting
Michael Trimarchi (1):
arm64: dts: imx8mn-bsh-smm-s2/pro: add display setup
.../freescale/imx8mn-bsh-smm-s2-common.dtsi | 1 +
.../freescale/imx8mn-bsh-smm-s2-display.dtsi | 121 ++++++++++++++++++
drivers/gpu/drm/bridge/samsung-dsim.c | 14 +-
3 files changed, 133 insertions(+), 3 deletions(-)
create mode 100644 arch/arm64/boot/dts/freescale/imx8mn-bsh-smm-s2-display.dtsi
--
2.43.0
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
^ permalink raw reply [flat|nested] 11+ messages in thread
* [PATCH v8 0/3] Add displays support for bsh-smm-s2/pro boards
@ 2023-12-14 8:24 ` Dario Binacchi
0 siblings, 0 replies; 11+ messages in thread
From: Dario Binacchi @ 2023-12-14 8:24 UTC (permalink / raw)
To: linux-kernel
Cc: michael, Amarula patchwork, Dario Binacchi, Andrzej Hajda,
Conor Dooley, Daniel Vetter, David Airlie, Fabio Estevam,
Inki Dae, Jagan Teki, Jernej Skrabec, Jonas Karlman,
Krzysztof Kozlowski, Laurent Pinchart, Maarten Lankhorst,
Marek Szyprowski, Maxime Ripard, NXP Linux Team, Neil Armstrong,
Pengutronix Kernel Team, Rob Herring, Robert Foss, Sascha Hauer,
Shawn Guo, Thomas Zimmermann, devicetree, dri-devel,
linux-arm-kernel
The series adds drivers for the displays used by bsh-smm-s2/pro boards.
This required applying some patches to the samsung-dsim driver and the
drm_bridge.c module.
Changes in v8:
- Move the 'status' property to the end of the list of nodes:
- pwm1
- lcdif
- mipi_dsi
- Add a newline between properties and child node (mipi_dsi_out).
- Sort the iomuxc node alphabetically
- Rename pwm1grp to blgrp
Changes in v7:
- Drop [3/4] dt-bindings: display: panel: Add synaptics r63353 panel controller
because applied.
Changes in v6:
- Drop patches:
- [06/10] drm/panel: Add Synaptics R63353 panel driver
- [07/10] dt-bindings: display: panel: Add Ilitek ili9805 panel controller
- [08/10] drm/panel: Add Ilitek ILI9805 panel driver
- [09/10] drm/panel: ilitek-ili9805: add support for Tianma TM041XDHG01 panel
Because applied to https://anongit.freedesktop.org/git/drm/drm-misc.git (drm-misc-next)
Drop patches:
- [01/10] drm/bridge: Fix bridge disable logic
- [02/10] drm/bridge: Fix a use case in the bridge disable logic
Because they are wrong
Changes in v3:
- Replace "synaptics,r63353" compatible with "syna,r63353", as
required by vendor-prefixes.yaml.
- Squash patch [09/11] dt-bindings: ili9805: add compatible string for Tianma TM041XDHG01
into [07/11] dt-bindings: display: panel: Add Ilitek ili9805 panel controller.
Changes in v2:
- Adjust the mipi_dsi node based on the latest patches merged into
the mainline in the dtsi files it includes.
- Added to the series the following patches:
- 0001 drm/bridge: Fix bridge disable logic
- 0002 drm/bridge: Fix a use case in the bridge disable logic
- 0003 samsung-dsim: enter display mode in the enable() callback
- 0004 drm: bridge: samsung-dsim: complete the CLKLANE_STOP setting
Dario Binacchi (2):
drm: bridge: samsung-dsim: enter display mode in the enable() callback
drm: bridge: samsung-dsim: complete the CLKLANE_STOP setting
Michael Trimarchi (1):
arm64: dts: imx8mn-bsh-smm-s2/pro: add display setup
.../freescale/imx8mn-bsh-smm-s2-common.dtsi | 1 +
.../freescale/imx8mn-bsh-smm-s2-display.dtsi | 121 ++++++++++++++++++
drivers/gpu/drm/bridge/samsung-dsim.c | 14 +-
3 files changed, 133 insertions(+), 3 deletions(-)
create mode 100644 arch/arm64/boot/dts/freescale/imx8mn-bsh-smm-s2-display.dtsi
--
2.43.0
^ permalink raw reply [flat|nested] 11+ messages in thread
* [PATCH v8 0/3] Add displays support for bsh-smm-s2/pro boards
@ 2023-12-14 8:24 ` Dario Binacchi
0 siblings, 0 replies; 11+ messages in thread
From: Dario Binacchi @ 2023-12-14 8:24 UTC (permalink / raw)
To: linux-kernel
Cc: Krzysztof Kozlowski, dri-devel, Laurent Pinchart, Andrzej Hajda,
Dario Binacchi, Marek Szyprowski, Robert Foss, Jernej Skrabec,
NXP Linux Team, michael, Jagan Teki, devicetree, Conor Dooley,
Pengutronix Kernel Team, Jonas Karlman, Sascha Hauer,
Maxime Ripard, Rob Herring, linux-arm-kernel, Neil Armstrong,
Thomas Zimmermann, Shawn Guo, Amarula patchwork
The series adds drivers for the displays used by bsh-smm-s2/pro boards.
This required applying some patches to the samsung-dsim driver and the
drm_bridge.c module.
Changes in v8:
- Move the 'status' property to the end of the list of nodes:
- pwm1
- lcdif
- mipi_dsi
- Add a newline between properties and child node (mipi_dsi_out).
- Sort the iomuxc node alphabetically
- Rename pwm1grp to blgrp
Changes in v7:
- Drop [3/4] dt-bindings: display: panel: Add synaptics r63353 panel controller
because applied.
Changes in v6:
- Drop patches:
- [06/10] drm/panel: Add Synaptics R63353 panel driver
- [07/10] dt-bindings: display: panel: Add Ilitek ili9805 panel controller
- [08/10] drm/panel: Add Ilitek ILI9805 panel driver
- [09/10] drm/panel: ilitek-ili9805: add support for Tianma TM041XDHG01 panel
Because applied to https://anongit.freedesktop.org/git/drm/drm-misc.git (drm-misc-next)
Drop patches:
- [01/10] drm/bridge: Fix bridge disable logic
- [02/10] drm/bridge: Fix a use case in the bridge disable logic
Because they are wrong
Changes in v3:
- Replace "synaptics,r63353" compatible with "syna,r63353", as
required by vendor-prefixes.yaml.
- Squash patch [09/11] dt-bindings: ili9805: add compatible string for Tianma TM041XDHG01
into [07/11] dt-bindings: display: panel: Add Ilitek ili9805 panel controller.
Changes in v2:
- Adjust the mipi_dsi node based on the latest patches merged into
the mainline in the dtsi files it includes.
- Added to the series the following patches:
- 0001 drm/bridge: Fix bridge disable logic
- 0002 drm/bridge: Fix a use case in the bridge disable logic
- 0003 samsung-dsim: enter display mode in the enable() callback
- 0004 drm: bridge: samsung-dsim: complete the CLKLANE_STOP setting
Dario Binacchi (2):
drm: bridge: samsung-dsim: enter display mode in the enable() callback
drm: bridge: samsung-dsim: complete the CLKLANE_STOP setting
Michael Trimarchi (1):
arm64: dts: imx8mn-bsh-smm-s2/pro: add display setup
.../freescale/imx8mn-bsh-smm-s2-common.dtsi | 1 +
.../freescale/imx8mn-bsh-smm-s2-display.dtsi | 121 ++++++++++++++++++
drivers/gpu/drm/bridge/samsung-dsim.c | 14 +-
3 files changed, 133 insertions(+), 3 deletions(-)
create mode 100644 arch/arm64/boot/dts/freescale/imx8mn-bsh-smm-s2-display.dtsi
--
2.43.0
^ permalink raw reply [flat|nested] 11+ messages in thread
* [PATCH v8 1/3] drm: bridge: samsung-dsim: enter display mode in the enable() callback
2023-12-14 8:24 ` Dario Binacchi
@ 2023-12-14 8:24 ` Dario Binacchi
-1 siblings, 0 replies; 11+ messages in thread
From: Dario Binacchi @ 2023-12-14 8:24 UTC (permalink / raw)
To: linux-kernel
Cc: Maxime Ripard, Neil Armstrong, Dario Binacchi, Robert Foss,
Andrzej Hajda, Thomas Zimmermann, Jonas Karlman,
Amarula patchwork, dri-devel, Jernej Skrabec, Jagan Teki,
Marek Szyprowski, michael, Laurent Pinchart
The synaptics-r63353 (panel-bridge) can only be configured in command mode.
So, samsung-dsim (bridge) must not be in display mode during the
prepare()/unprepare() of the panel-bridge. Setting the
"pre_enable_prev_first" flag to true allows the prepare() of the
panel-bridge to be called between the pre_enabled() and enabled() of the
bridge. So, the bridge can enter display mode only in the enabled().
The unprepare() of the panel-bridge is instead called between the disable()
and post_disable() of the bridge. So, the disable() must exit the display
mode (i .e. enter command mode) to allow the panel-bridge to receive DSI
commands.
samsung_dsim_atomic_pre_enable -> command mode
r63353_panel_prepare -> send DSI commands
samsung_dsim_atomic_enable -> enter display mode
samsung_dsim_atomic_disable -> exit display mode (command mode)
r63353_panel_unprepare -> send DSI commands
samsung_dsim_atomic_post_disable
Co-developed-by: Michael Trimarchi <michael@amarulasolutions.com>
Signed-off-by: Michael Trimarchi <michael@amarulasolutions.com>
Signed-off-by: Dario Binacchi <dario.binacchi@amarulasolutions.com>
---
(no changes since v1)
drivers/gpu/drm/bridge/samsung-dsim.c | 7 +++++--
1 file changed, 5 insertions(+), 2 deletions(-)
diff --git a/drivers/gpu/drm/bridge/samsung-dsim.c b/drivers/gpu/drm/bridge/samsung-dsim.c
index be5914caa17d..15bf05b2bbe4 100644
--- a/drivers/gpu/drm/bridge/samsung-dsim.c
+++ b/drivers/gpu/drm/bridge/samsung-dsim.c
@@ -1494,7 +1494,6 @@ static void samsung_dsim_atomic_pre_enable(struct drm_bridge *bridge,
return;
samsung_dsim_set_display_mode(dsi);
- samsung_dsim_set_display_enable(dsi, true);
}
}
@@ -1507,6 +1506,7 @@ static void samsung_dsim_atomic_enable(struct drm_bridge *bridge,
samsung_dsim_set_display_mode(dsi);
samsung_dsim_set_display_enable(dsi, true);
} else {
+ samsung_dsim_set_display_enable(dsi, true);
samsung_dsim_set_stop_state(dsi, false);
}
@@ -1524,6 +1524,8 @@ static void samsung_dsim_atomic_disable(struct drm_bridge *bridge,
if (!samsung_dsim_hw_is_exynos(dsi->plat_data->hw_type))
samsung_dsim_set_stop_state(dsi, true);
+ samsung_dsim_set_display_enable(dsi, false);
+
dsi->state &= ~DSIM_STATE_VIDOUT_AVAILABLE;
}
@@ -1532,7 +1534,8 @@ static void samsung_dsim_atomic_post_disable(struct drm_bridge *bridge,
{
struct samsung_dsim *dsi = bridge_to_dsi(bridge);
- samsung_dsim_set_display_enable(dsi, false);
+ if (!samsung_dsim_hw_is_exynos(dsi->plat_data->hw_type))
+ samsung_dsim_set_stop_state(dsi, true);
dsi->state &= ~DSIM_STATE_ENABLED;
pm_runtime_put_sync(dsi->dev);
--
2.43.0
^ permalink raw reply related [flat|nested] 11+ messages in thread
* [PATCH v8 1/3] drm: bridge: samsung-dsim: enter display mode in the enable() callback
@ 2023-12-14 8:24 ` Dario Binacchi
0 siblings, 0 replies; 11+ messages in thread
From: Dario Binacchi @ 2023-12-14 8:24 UTC (permalink / raw)
To: linux-kernel
Cc: michael, Amarula patchwork, Dario Binacchi, Andrzej Hajda,
Daniel Vetter, David Airlie, Inki Dae, Jagan Teki, Jernej Skrabec,
Jonas Karlman, Laurent Pinchart, Maarten Lankhorst,
Marek Szyprowski, Maxime Ripard, Neil Armstrong, Robert Foss,
Thomas Zimmermann, dri-devel
The synaptics-r63353 (panel-bridge) can only be configured in command mode.
So, samsung-dsim (bridge) must not be in display mode during the
prepare()/unprepare() of the panel-bridge. Setting the
"pre_enable_prev_first" flag to true allows the prepare() of the
panel-bridge to be called between the pre_enabled() and enabled() of the
bridge. So, the bridge can enter display mode only in the enabled().
The unprepare() of the panel-bridge is instead called between the disable()
and post_disable() of the bridge. So, the disable() must exit the display
mode (i .e. enter command mode) to allow the panel-bridge to receive DSI
commands.
samsung_dsim_atomic_pre_enable -> command mode
r63353_panel_prepare -> send DSI commands
samsung_dsim_atomic_enable -> enter display mode
samsung_dsim_atomic_disable -> exit display mode (command mode)
r63353_panel_unprepare -> send DSI commands
samsung_dsim_atomic_post_disable
Co-developed-by: Michael Trimarchi <michael@amarulasolutions.com>
Signed-off-by: Michael Trimarchi <michael@amarulasolutions.com>
Signed-off-by: Dario Binacchi <dario.binacchi@amarulasolutions.com>
---
(no changes since v1)
drivers/gpu/drm/bridge/samsung-dsim.c | 7 +++++--
1 file changed, 5 insertions(+), 2 deletions(-)
diff --git a/drivers/gpu/drm/bridge/samsung-dsim.c b/drivers/gpu/drm/bridge/samsung-dsim.c
index be5914caa17d..15bf05b2bbe4 100644
--- a/drivers/gpu/drm/bridge/samsung-dsim.c
+++ b/drivers/gpu/drm/bridge/samsung-dsim.c
@@ -1494,7 +1494,6 @@ static void samsung_dsim_atomic_pre_enable(struct drm_bridge *bridge,
return;
samsung_dsim_set_display_mode(dsi);
- samsung_dsim_set_display_enable(dsi, true);
}
}
@@ -1507,6 +1506,7 @@ static void samsung_dsim_atomic_enable(struct drm_bridge *bridge,
samsung_dsim_set_display_mode(dsi);
samsung_dsim_set_display_enable(dsi, true);
} else {
+ samsung_dsim_set_display_enable(dsi, true);
samsung_dsim_set_stop_state(dsi, false);
}
@@ -1524,6 +1524,8 @@ static void samsung_dsim_atomic_disable(struct drm_bridge *bridge,
if (!samsung_dsim_hw_is_exynos(dsi->plat_data->hw_type))
samsung_dsim_set_stop_state(dsi, true);
+ samsung_dsim_set_display_enable(dsi, false);
+
dsi->state &= ~DSIM_STATE_VIDOUT_AVAILABLE;
}
@@ -1532,7 +1534,8 @@ static void samsung_dsim_atomic_post_disable(struct drm_bridge *bridge,
{
struct samsung_dsim *dsi = bridge_to_dsi(bridge);
- samsung_dsim_set_display_enable(dsi, false);
+ if (!samsung_dsim_hw_is_exynos(dsi->plat_data->hw_type))
+ samsung_dsim_set_stop_state(dsi, true);
dsi->state &= ~DSIM_STATE_ENABLED;
pm_runtime_put_sync(dsi->dev);
--
2.43.0
^ permalink raw reply related [flat|nested] 11+ messages in thread
* [PATCH v8 2/3] drm: bridge: samsung-dsim: complete the CLKLANE_STOP setting
2023-12-14 8:24 ` Dario Binacchi
@ 2023-12-14 8:24 ` Dario Binacchi
-1 siblings, 0 replies; 11+ messages in thread
From: Dario Binacchi @ 2023-12-14 8:24 UTC (permalink / raw)
To: linux-kernel
Cc: Maxime Ripard, Neil Armstrong, Dario Binacchi, Robert Foss,
Andrzej Hajda, Thomas Zimmermann, Jonas Karlman,
Amarula patchwork, dri-devel, Jernej Skrabec, Jagan Teki,
Marek Szyprowski, michael, Laurent Pinchart
The patch completes the setting of CLKLANE_STOP for the imx8mn and imx8mp
platforms (i. e. not exynos).
Co-developed-by: Michael Trimarchi <michael@amarulasolutions.com>
Signed-off-by: Michael Trimarchi <michael@amarulasolutions.com>
Signed-off-by: Dario Binacchi <dario.binacchi@amarulasolutions.com>
---
(no changes since v1)
drivers/gpu/drm/bridge/samsung-dsim.c | 7 ++++++-
1 file changed, 6 insertions(+), 1 deletion(-)
diff --git a/drivers/gpu/drm/bridge/samsung-dsim.c b/drivers/gpu/drm/bridge/samsung-dsim.c
index 15bf05b2bbe4..13f181c99d7e 100644
--- a/drivers/gpu/drm/bridge/samsung-dsim.c
+++ b/drivers/gpu/drm/bridge/samsung-dsim.c
@@ -96,6 +96,7 @@
#define DSIM_MFLUSH_VS BIT(29)
/* This flag is valid only for exynos3250/3472/5260/5430 */
#define DSIM_CLKLANE_STOP BIT(30)
+#define DSIM_NON_CONTINUOUS_CLKLANE BIT(31)
/* DSIM_ESCMODE */
#define DSIM_TX_TRIGGER_RST BIT(4)
@@ -945,8 +946,12 @@ static int samsung_dsim_init_link(struct samsung_dsim *dsi)
* power consumption.
*/
if (driver_data->has_clklane_stop &&
- dsi->mode_flags & MIPI_DSI_CLOCK_NON_CONTINUOUS)
+ dsi->mode_flags & MIPI_DSI_CLOCK_NON_CONTINUOUS) {
+ if (!samsung_dsim_hw_is_exynos(dsi->plat_data->hw_type))
+ reg |= DSIM_NON_CONTINUOUS_CLKLANE;
+
reg |= DSIM_CLKLANE_STOP;
+ }
samsung_dsim_write(dsi, DSIM_CONFIG_REG, reg);
lanes_mask = BIT(dsi->lanes) - 1;
--
2.43.0
^ permalink raw reply related [flat|nested] 11+ messages in thread
* [PATCH v8 2/3] drm: bridge: samsung-dsim: complete the CLKLANE_STOP setting
@ 2023-12-14 8:24 ` Dario Binacchi
0 siblings, 0 replies; 11+ messages in thread
From: Dario Binacchi @ 2023-12-14 8:24 UTC (permalink / raw)
To: linux-kernel
Cc: michael, Amarula patchwork, Dario Binacchi, Andrzej Hajda,
Daniel Vetter, David Airlie, Inki Dae, Jagan Teki, Jernej Skrabec,
Jonas Karlman, Laurent Pinchart, Maarten Lankhorst,
Marek Szyprowski, Maxime Ripard, Neil Armstrong, Robert Foss,
Thomas Zimmermann, dri-devel
The patch completes the setting of CLKLANE_STOP for the imx8mn and imx8mp
platforms (i. e. not exynos).
Co-developed-by: Michael Trimarchi <michael@amarulasolutions.com>
Signed-off-by: Michael Trimarchi <michael@amarulasolutions.com>
Signed-off-by: Dario Binacchi <dario.binacchi@amarulasolutions.com>
---
(no changes since v1)
drivers/gpu/drm/bridge/samsung-dsim.c | 7 ++++++-
1 file changed, 6 insertions(+), 1 deletion(-)
diff --git a/drivers/gpu/drm/bridge/samsung-dsim.c b/drivers/gpu/drm/bridge/samsung-dsim.c
index 15bf05b2bbe4..13f181c99d7e 100644
--- a/drivers/gpu/drm/bridge/samsung-dsim.c
+++ b/drivers/gpu/drm/bridge/samsung-dsim.c
@@ -96,6 +96,7 @@
#define DSIM_MFLUSH_VS BIT(29)
/* This flag is valid only for exynos3250/3472/5260/5430 */
#define DSIM_CLKLANE_STOP BIT(30)
+#define DSIM_NON_CONTINUOUS_CLKLANE BIT(31)
/* DSIM_ESCMODE */
#define DSIM_TX_TRIGGER_RST BIT(4)
@@ -945,8 +946,12 @@ static int samsung_dsim_init_link(struct samsung_dsim *dsi)
* power consumption.
*/
if (driver_data->has_clklane_stop &&
- dsi->mode_flags & MIPI_DSI_CLOCK_NON_CONTINUOUS)
+ dsi->mode_flags & MIPI_DSI_CLOCK_NON_CONTINUOUS) {
+ if (!samsung_dsim_hw_is_exynos(dsi->plat_data->hw_type))
+ reg |= DSIM_NON_CONTINUOUS_CLKLANE;
+
reg |= DSIM_CLKLANE_STOP;
+ }
samsung_dsim_write(dsi, DSIM_CONFIG_REG, reg);
lanes_mask = BIT(dsi->lanes) - 1;
--
2.43.0
^ permalink raw reply related [flat|nested] 11+ messages in thread
* [PATCH v8 3/3] arm64: dts: imx8mn-bsh-smm-s2/pro: add display setup
2023-12-14 8:24 ` Dario Binacchi
@ 2023-12-14 8:24 ` Dario Binacchi
-1 siblings, 0 replies; 11+ messages in thread
From: Dario Binacchi @ 2023-12-14 8:24 UTC (permalink / raw)
To: linux-kernel
Cc: michael, Amarula patchwork, Dario Binacchi, Conor Dooley,
Fabio Estevam, Krzysztof Kozlowski, NXP Linux Team,
Pengutronix Kernel Team, Rob Herring, Sascha Hauer, Shawn Guo,
devicetree, linux-arm-kernel
From: Michael Trimarchi <michael@amarulasolutions.com>
Add the display and nodes required for its operation.
Signed-off-by: Michael Trimarchi <michael@amarulasolutions.com>
Signed-off-by: Dario Binacchi <dario.binacchi@amarulasolutions.com>
---
Changes in v8:
- Move the 'status' property to the end of the list of nodes:
- pwm1
- lcdif
- mipi_dsi
- Add a newline between properties and child node (mipi_dsi_out).
- Sort the iomuxc node alphabetically
- Rename pwm1grp to blgrp
Changes in v7:
- Drop [3/4] dt-bindings: display: panel: Add synaptics r63353 panel controller
because applied.
Changes in v6:
- Drop patches:
- [06/10] drm/panel: Add Synaptics R63353 panel driver
- [07/10] dt-bindings: display: panel: Add Ilitek ili9805 panel controller
- [08/10] drm/panel: Add Ilitek ILI9805 panel driver
- [09/10] drm/panel: ilitek-ili9805: add support for Tianma TM041XDHG01 panel
Because applied to https://anongit.freedesktop.org/git/drm/drm-misc.git (drm-misc-next)
Drop patches:
- [01/10] drm/bridge: Fix bridge disable logic
- [02/10] drm/bridge: Fix a use case in the bridge disable logic
Because they are wrong
Changes in v3:
- Replace "synaptics,r63353" compatible with "syna,r63353", as
required by vendor-prefixes.yaml.
- Squash patch [09/11] dt-bindings: ili9805: add compatible string for Tianma TM041XDHG01
into [07/11] dt-bindings: display: panel: Add Ilitek ili9805 panel controller.
Changes in v2:
- Adjust the mipi_dsi node based on the latest patches merged into
the mainline in the dtsi files it includes.
- Added to the series the following patches:
- 0001 drm/bridge: Fix bridge disable logic
- 0002 drm/bridge: Fix a use case in the bridge disable logic
- 0003 samsung-dsim: enter display mode in the enable() callback
- 0004 drm: bridge: samsung-dsim: complete the CLKLANE_STOP setting
.../freescale/imx8mn-bsh-smm-s2-common.dtsi | 1 +
.../freescale/imx8mn-bsh-smm-s2-display.dtsi | 121 ++++++++++++++++++
2 files changed, 122 insertions(+)
create mode 100644 arch/arm64/boot/dts/freescale/imx8mn-bsh-smm-s2-display.dtsi
diff --git a/arch/arm64/boot/dts/freescale/imx8mn-bsh-smm-s2-common.dtsi b/arch/arm64/boot/dts/freescale/imx8mn-bsh-smm-s2-common.dtsi
index 22a754d438f1..bbb07c650da9 100644
--- a/arch/arm64/boot/dts/freescale/imx8mn-bsh-smm-s2-common.dtsi
+++ b/arch/arm64/boot/dts/freescale/imx8mn-bsh-smm-s2-common.dtsi
@@ -7,6 +7,7 @@
/dts-v1/;
#include "imx8mn.dtsi"
+#include "imx8mn-bsh-smm-s2-display.dtsi"
/ {
chosen {
diff --git a/arch/arm64/boot/dts/freescale/imx8mn-bsh-smm-s2-display.dtsi b/arch/arm64/boot/dts/freescale/imx8mn-bsh-smm-s2-display.dtsi
new file mode 100644
index 000000000000..7675583a6b67
--- /dev/null
+++ b/arch/arm64/boot/dts/freescale/imx8mn-bsh-smm-s2-display.dtsi
@@ -0,0 +1,121 @@
+// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
+/*
+ * Copyright 2021 BSH
+ */
+
+/ {
+ backlight: backlight {
+ compatible = "pwm-backlight";
+ pwms = <&pwm1 0 700000 0>; /* 700000 ns = 1337Hz */
+ brightness-levels = <0 100>;
+ num-interpolated-steps = <100>;
+ default-brightness-level = <50>;
+ status = "okay";
+ };
+
+ reg_3v3_dvdd: regulator-3v3-O3 {
+ compatible = "regulator-fixed";
+ pinctrl-names = "default";
+ pinctrl-0 = <&pinctrl_dvdd>;
+ regulator-name = "3v3-dvdd-supply";
+ regulator-min-microvolt = <3300000>;
+ regulator-max-microvolt = <3300000>;
+ gpio = <&gpio1 7 GPIO_ACTIVE_LOW>;
+ };
+
+ reg_v3v3_avdd: regulator-3v3-O2 {
+ compatible = "regulator-fixed";
+ pinctrl-names = "default";
+ pinctrl-0 = <&pinctrl_avdd>;
+ regulator-name = "3v3-avdd-supply";
+ regulator-min-microvolt = <3300000>;
+ regulator-max-microvolt = <3300000>;
+ gpio = <&gpio1 5 GPIO_ACTIVE_LOW>;
+ };
+};
+
+&pwm1 {
+ pinctrl-names = "default";
+ pinctrl-0 = <&pinctrl_bl>;
+ status = "okay";
+};
+
+&lcdif {
+ assigned-clocks = <&clk IMX8MN_VIDEO_PLL1>;
+ assigned-clock-rates = <594000000>;
+ status = "okay";
+};
+
+&pgc_dispmix {
+ assigned-clocks = <&clk IMX8MN_CLK_DISP_AXI>, <&clk IMX8MN_CLK_DISP_APB>;
+ assigned-clock-parents = <&clk IMX8MN_SYS_PLL2_1000M>, <&clk IMX8MN_SYS_PLL1_800M>;
+ assigned-clock-rates = <500000000>, <200000000>;
+};
+
+&mipi_dsi {
+ #address-cells = <1>;
+ #size-cells = <0>;
+ samsung,esc-clock-frequency = <20000000>;
+ samsung,pll-clock-frequency = <12000000>;
+ status = "okay";
+
+ panel@0 {
+ compatible = "sharp,ls068b3sx02", "syna,r63353";
+ pinctrl-names = "default";
+ pinctrl-0 = <&pinctrl_panel>;
+ reg = <0>;
+
+ backlight = <&backlight>;
+ dvdd-supply = <®_3v3_dvdd>;
+ avdd-supply = <®_v3v3_avdd>;
+ reset-gpios = <&gpio4 29 GPIO_ACTIVE_HIGH>;
+
+ port {
+ panel_in: endpoint {
+ remote-endpoint = <&mipi_dsi_out>;
+ };
+ };
+
+ };
+
+ ports {
+ port@1 {
+ reg = <1>;
+
+ mipi_dsi_out: endpoint {
+ remote-endpoint = <&panel_in>;
+ };
+ };
+ };
+};
+
+&gpu {
+ status = "okay";
+};
+
+&iomuxc {
+ pinctrl_avdd: avddgrp {
+ fsl,pins = <
+ MX8MN_IOMUXC_GPIO1_IO05_GPIO1_IO5 0x16 /* VDD 3V3_VO2 */
+ >;
+ };
+
+ /* This is for both PWM and voltage regulators for display */
+ pinctrl_bl: blgrp {
+ fsl,pins = <
+ MX8MN_IOMUXC_GPIO1_IO01_PWM1_OUT 0x16
+ >;
+ };
+
+ pinctrl_dvdd: dvddgrp {
+ fsl,pins = <
+ MX8MN_IOMUXC_GPIO1_IO07_GPIO1_IO7 0x16 /* VDD 3V3_VO3 */
+ >;
+ };
+
+ pinctrl_panel: panelgrp {
+ fsl,pins = <
+ MX8MN_IOMUXC_SAI3_RXC_GPIO4_IO29 0x16 /* panel reset */
+ >;
+ };
+};
--
2.43.0
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
^ permalink raw reply related [flat|nested] 11+ messages in thread
* [PATCH v8 3/3] arm64: dts: imx8mn-bsh-smm-s2/pro: add display setup
@ 2023-12-14 8:24 ` Dario Binacchi
0 siblings, 0 replies; 11+ messages in thread
From: Dario Binacchi @ 2023-12-14 8:24 UTC (permalink / raw)
To: linux-kernel
Cc: michael, Amarula patchwork, Dario Binacchi, Conor Dooley,
Fabio Estevam, Krzysztof Kozlowski, NXP Linux Team,
Pengutronix Kernel Team, Rob Herring, Sascha Hauer, Shawn Guo,
devicetree, linux-arm-kernel
From: Michael Trimarchi <michael@amarulasolutions.com>
Add the display and nodes required for its operation.
Signed-off-by: Michael Trimarchi <michael@amarulasolutions.com>
Signed-off-by: Dario Binacchi <dario.binacchi@amarulasolutions.com>
---
Changes in v8:
- Move the 'status' property to the end of the list of nodes:
- pwm1
- lcdif
- mipi_dsi
- Add a newline between properties and child node (mipi_dsi_out).
- Sort the iomuxc node alphabetically
- Rename pwm1grp to blgrp
Changes in v7:
- Drop [3/4] dt-bindings: display: panel: Add synaptics r63353 panel controller
because applied.
Changes in v6:
- Drop patches:
- [06/10] drm/panel: Add Synaptics R63353 panel driver
- [07/10] dt-bindings: display: panel: Add Ilitek ili9805 panel controller
- [08/10] drm/panel: Add Ilitek ILI9805 panel driver
- [09/10] drm/panel: ilitek-ili9805: add support for Tianma TM041XDHG01 panel
Because applied to https://anongit.freedesktop.org/git/drm/drm-misc.git (drm-misc-next)
Drop patches:
- [01/10] drm/bridge: Fix bridge disable logic
- [02/10] drm/bridge: Fix a use case in the bridge disable logic
Because they are wrong
Changes in v3:
- Replace "synaptics,r63353" compatible with "syna,r63353", as
required by vendor-prefixes.yaml.
- Squash patch [09/11] dt-bindings: ili9805: add compatible string for Tianma TM041XDHG01
into [07/11] dt-bindings: display: panel: Add Ilitek ili9805 panel controller.
Changes in v2:
- Adjust the mipi_dsi node based on the latest patches merged into
the mainline in the dtsi files it includes.
- Added to the series the following patches:
- 0001 drm/bridge: Fix bridge disable logic
- 0002 drm/bridge: Fix a use case in the bridge disable logic
- 0003 samsung-dsim: enter display mode in the enable() callback
- 0004 drm: bridge: samsung-dsim: complete the CLKLANE_STOP setting
.../freescale/imx8mn-bsh-smm-s2-common.dtsi | 1 +
.../freescale/imx8mn-bsh-smm-s2-display.dtsi | 121 ++++++++++++++++++
2 files changed, 122 insertions(+)
create mode 100644 arch/arm64/boot/dts/freescale/imx8mn-bsh-smm-s2-display.dtsi
diff --git a/arch/arm64/boot/dts/freescale/imx8mn-bsh-smm-s2-common.dtsi b/arch/arm64/boot/dts/freescale/imx8mn-bsh-smm-s2-common.dtsi
index 22a754d438f1..bbb07c650da9 100644
--- a/arch/arm64/boot/dts/freescale/imx8mn-bsh-smm-s2-common.dtsi
+++ b/arch/arm64/boot/dts/freescale/imx8mn-bsh-smm-s2-common.dtsi
@@ -7,6 +7,7 @@
/dts-v1/;
#include "imx8mn.dtsi"
+#include "imx8mn-bsh-smm-s2-display.dtsi"
/ {
chosen {
diff --git a/arch/arm64/boot/dts/freescale/imx8mn-bsh-smm-s2-display.dtsi b/arch/arm64/boot/dts/freescale/imx8mn-bsh-smm-s2-display.dtsi
new file mode 100644
index 000000000000..7675583a6b67
--- /dev/null
+++ b/arch/arm64/boot/dts/freescale/imx8mn-bsh-smm-s2-display.dtsi
@@ -0,0 +1,121 @@
+// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
+/*
+ * Copyright 2021 BSH
+ */
+
+/ {
+ backlight: backlight {
+ compatible = "pwm-backlight";
+ pwms = <&pwm1 0 700000 0>; /* 700000 ns = 1337Hz */
+ brightness-levels = <0 100>;
+ num-interpolated-steps = <100>;
+ default-brightness-level = <50>;
+ status = "okay";
+ };
+
+ reg_3v3_dvdd: regulator-3v3-O3 {
+ compatible = "regulator-fixed";
+ pinctrl-names = "default";
+ pinctrl-0 = <&pinctrl_dvdd>;
+ regulator-name = "3v3-dvdd-supply";
+ regulator-min-microvolt = <3300000>;
+ regulator-max-microvolt = <3300000>;
+ gpio = <&gpio1 7 GPIO_ACTIVE_LOW>;
+ };
+
+ reg_v3v3_avdd: regulator-3v3-O2 {
+ compatible = "regulator-fixed";
+ pinctrl-names = "default";
+ pinctrl-0 = <&pinctrl_avdd>;
+ regulator-name = "3v3-avdd-supply";
+ regulator-min-microvolt = <3300000>;
+ regulator-max-microvolt = <3300000>;
+ gpio = <&gpio1 5 GPIO_ACTIVE_LOW>;
+ };
+};
+
+&pwm1 {
+ pinctrl-names = "default";
+ pinctrl-0 = <&pinctrl_bl>;
+ status = "okay";
+};
+
+&lcdif {
+ assigned-clocks = <&clk IMX8MN_VIDEO_PLL1>;
+ assigned-clock-rates = <594000000>;
+ status = "okay";
+};
+
+&pgc_dispmix {
+ assigned-clocks = <&clk IMX8MN_CLK_DISP_AXI>, <&clk IMX8MN_CLK_DISP_APB>;
+ assigned-clock-parents = <&clk IMX8MN_SYS_PLL2_1000M>, <&clk IMX8MN_SYS_PLL1_800M>;
+ assigned-clock-rates = <500000000>, <200000000>;
+};
+
+&mipi_dsi {
+ #address-cells = <1>;
+ #size-cells = <0>;
+ samsung,esc-clock-frequency = <20000000>;
+ samsung,pll-clock-frequency = <12000000>;
+ status = "okay";
+
+ panel@0 {
+ compatible = "sharp,ls068b3sx02", "syna,r63353";
+ pinctrl-names = "default";
+ pinctrl-0 = <&pinctrl_panel>;
+ reg = <0>;
+
+ backlight = <&backlight>;
+ dvdd-supply = <®_3v3_dvdd>;
+ avdd-supply = <®_v3v3_avdd>;
+ reset-gpios = <&gpio4 29 GPIO_ACTIVE_HIGH>;
+
+ port {
+ panel_in: endpoint {
+ remote-endpoint = <&mipi_dsi_out>;
+ };
+ };
+
+ };
+
+ ports {
+ port@1 {
+ reg = <1>;
+
+ mipi_dsi_out: endpoint {
+ remote-endpoint = <&panel_in>;
+ };
+ };
+ };
+};
+
+&gpu {
+ status = "okay";
+};
+
+&iomuxc {
+ pinctrl_avdd: avddgrp {
+ fsl,pins = <
+ MX8MN_IOMUXC_GPIO1_IO05_GPIO1_IO5 0x16 /* VDD 3V3_VO2 */
+ >;
+ };
+
+ /* This is for both PWM and voltage regulators for display */
+ pinctrl_bl: blgrp {
+ fsl,pins = <
+ MX8MN_IOMUXC_GPIO1_IO01_PWM1_OUT 0x16
+ >;
+ };
+
+ pinctrl_dvdd: dvddgrp {
+ fsl,pins = <
+ MX8MN_IOMUXC_GPIO1_IO07_GPIO1_IO7 0x16 /* VDD 3V3_VO3 */
+ >;
+ };
+
+ pinctrl_panel: panelgrp {
+ fsl,pins = <
+ MX8MN_IOMUXC_SAI3_RXC_GPIO4_IO29 0x16 /* panel reset */
+ >;
+ };
+};
--
2.43.0
^ permalink raw reply related [flat|nested] 11+ messages in thread
* Re: [PATCH v8 3/3] arm64: dts: imx8mn-bsh-smm-s2/pro: add display setup
2023-12-14 8:24 ` Dario Binacchi
@ 2023-12-16 1:36 ` Shawn Guo
-1 siblings, 0 replies; 11+ messages in thread
From: Shawn Guo @ 2023-12-16 1:36 UTC (permalink / raw)
To: Dario Binacchi
Cc: linux-kernel, michael, Amarula patchwork, Conor Dooley,
Fabio Estevam, Krzysztof Kozlowski, NXP Linux Team,
Pengutronix Kernel Team, Rob Herring, Sascha Hauer, devicetree,
linux-arm-kernel
On Thu, Dec 14, 2023 at 09:24:06AM +0100, Dario Binacchi wrote:
> From: Michael Trimarchi <michael@amarulasolutions.com>
>
> Add the display and nodes required for its operation.
>
> Signed-off-by: Michael Trimarchi <michael@amarulasolutions.com>
> Signed-off-by: Dario Binacchi <dario.binacchi@amarulasolutions.com>
Applied, thanks!
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH v8 3/3] arm64: dts: imx8mn-bsh-smm-s2/pro: add display setup
@ 2023-12-16 1:36 ` Shawn Guo
0 siblings, 0 replies; 11+ messages in thread
From: Shawn Guo @ 2023-12-16 1:36 UTC (permalink / raw)
To: Dario Binacchi
Cc: linux-kernel, michael, Amarula patchwork, Conor Dooley,
Fabio Estevam, Krzysztof Kozlowski, NXP Linux Team,
Pengutronix Kernel Team, Rob Herring, Sascha Hauer, devicetree,
linux-arm-kernel
On Thu, Dec 14, 2023 at 09:24:06AM +0100, Dario Binacchi wrote:
> From: Michael Trimarchi <michael@amarulasolutions.com>
>
> Add the display and nodes required for its operation.
>
> Signed-off-by: Michael Trimarchi <michael@amarulasolutions.com>
> Signed-off-by: Dario Binacchi <dario.binacchi@amarulasolutions.com>
Applied, thanks!
^ permalink raw reply [flat|nested] 11+ messages in thread
end of thread, other threads:[~2023-12-16 1:37 UTC | newest]
Thread overview: 11+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2023-12-14 8:24 [PATCH v8 0/3] Add displays support for bsh-smm-s2/pro boards Dario Binacchi
2023-12-14 8:24 ` Dario Binacchi
2023-12-14 8:24 ` Dario Binacchi
2023-12-14 8:24 ` [PATCH v8 1/3] drm: bridge: samsung-dsim: enter display mode in the enable() callback Dario Binacchi
2023-12-14 8:24 ` Dario Binacchi
2023-12-14 8:24 ` [PATCH v8 2/3] drm: bridge: samsung-dsim: complete the CLKLANE_STOP setting Dario Binacchi
2023-12-14 8:24 ` Dario Binacchi
2023-12-14 8:24 ` [PATCH v8 3/3] arm64: dts: imx8mn-bsh-smm-s2/pro: add display setup Dario Binacchi
2023-12-14 8:24 ` Dario Binacchi
2023-12-16 1:36 ` Shawn Guo
2023-12-16 1:36 ` Shawn Guo
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.