* [PATCH 0/3] TQMa8MxML LVDS support
@ 2023-08-21 13:40 Alexander Stein
2023-08-21 13:40 ` [PATCH 1/3] arm64: dts: imx8mm-tqma8mqml-mba8mx: Add DSI-LVDS bridge node Alexander Stein
` (2 more replies)
0 siblings, 3 replies; 5+ messages in thread
From: Alexander Stein @ 2023-08-21 13:40 UTC (permalink / raw)
To: Rob Herring, Krzysztof Kozlowski, Conor Dooley, Shawn Guo,
Sascha Hauer, Fabio Estevam, Catalin Marinas, Will Deacon
Cc: Alexander Stein, Pengutronix Kernel Team, NXP Linux Team,
devicetree, linux, linux-arm-kernel
Hi,
this series adds LVDS support using a standard, but exchangable, display on the
starter kit mainboard MBa8Mx. It is split into 3 patches where the 1st adds the
necessary DT nodes for LVDS while the 2nd patch adds the overlay for the actual
support for tianma tm070jvhg33 display. The last one enable the necessary
driver options in defconfig.
Thanks and best regards,
Alexander
Alexander Stein (3):
arm64: dts: imx8mm-tqma8mqml-mba8mx: Add DSI-LVDS bridge node
arm64: dts: imx8mm-tqma8mqml-mba8mx: Add LVDS overlay
arm64: defconfig: Enable Samsung DSIM driver
arch/arm64/boot/dts/freescale/Makefile | 4 ++
.../imx8mm-tqma8mqml-mba8mx-lvds.dtso | 43 ++++++++++++
.../dts/freescale/imx8mm-tqma8mqml-mba8mx.dts | 29 ++++++++
.../boot/dts/freescale/imx8mm-tqma8mqml.dtsi | 5 ++
arch/arm64/boot/dts/freescale/mba8mx.dtsi | 68 +++++++++++++++++++
arch/arm64/configs/defconfig | 2 +
6 files changed, 151 insertions(+)
create mode 100644 arch/arm64/boot/dts/freescale/imx8mm-tqma8mqml-mba8mx-lvds.dtso
--
2.34.1
^ permalink raw reply [flat|nested] 5+ messages in thread
* [PATCH 1/3] arm64: dts: imx8mm-tqma8mqml-mba8mx: Add DSI-LVDS bridge node
2023-08-21 13:40 [PATCH 0/3] TQMa8MxML LVDS support Alexander Stein
@ 2023-08-21 13:40 ` Alexander Stein
2023-08-22 6:16 ` Krzysztof Kozlowski
2023-08-21 13:40 ` [PATCH 2/3] arm64: dts: imx8mm-tqma8mqml-mba8mx: Add LVDS overlay Alexander Stein
2023-08-21 13:40 ` [PATCH 3/3] arm64: defconfig: Enable Samsung DSIM driver Alexander Stein
2 siblings, 1 reply; 5+ messages in thread
From: Alexander Stein @ 2023-08-21 13:40 UTC (permalink / raw)
To: Rob Herring, Krzysztof Kozlowski, Conor Dooley, Shawn Guo,
Sascha Hauer, Fabio Estevam, Catalin Marinas, Will Deacon
Cc: Alexander Stein, Pengutronix Kernel Team, NXP Linux Team,
devicetree, linux, linux-arm-kernel
This adds the DSI-LVDS bridge including the regulator, backlight and
an unspecified panel. It is expected to set the compatible when the
display chain is enabled.
Signed-off-by: Alexander Stein <alexander.stein@ew.tq-group.com>
---
.../dts/freescale/imx8mm-tqma8mqml-mba8mx.dts | 29 ++++++++
.../boot/dts/freescale/imx8mm-tqma8mqml.dtsi | 5 ++
arch/arm64/boot/dts/freescale/mba8mx.dtsi | 68 +++++++++++++++++++
3 files changed, 102 insertions(+)
diff --git a/arch/arm64/boot/dts/freescale/imx8mm-tqma8mqml-mba8mx.dts b/arch/arm64/boot/dts/freescale/imx8mm-tqma8mqml-mba8mx.dts
index 156d793a0c972..b2b825d990a62 100644
--- a/arch/arm64/boot/dts/freescale/imx8mm-tqma8mqml-mba8mx.dts
+++ b/arch/arm64/boot/dts/freescale/imx8mm-tqma8mqml-mba8mx.dts
@@ -56,6 +56,19 @@ usb_dr_connector: endpoint {
};
};
+&dsi_lvds_bridge {
+ ports {
+ port@0 {
+ reg = <0>;
+
+ lvds_bridge_in: endpoint {
+ data-lanes = <1 2 3 4>;
+ remote-endpoint = <&mipi_dsi_out>;
+ };
+ };
+ };
+};
+
&i2c1 {
expander2: gpio@27 {
compatible = "nxp,pca9555";
@@ -72,6 +85,22 @@ expander2: gpio@27 {
};
};
+&mipi_dsi {
+ samsung,burst-clock-frequency = <891000000>;
+ samsung,esc-clock-frequency = <20000000>;
+
+ ports {
+ port@1 {
+ reg = <1>;
+
+ mipi_dsi_out: endpoint {
+ data-lanes = <1 2 3 4>;
+ remote-endpoint = <&lvds_bridge_in>;
+ };
+ };
+ };
+};
+
&pcie_phy {
clocks = <&pcie0_refclk>;
status = "okay";
diff --git a/arch/arm64/boot/dts/freescale/imx8mm-tqma8mqml.dtsi b/arch/arm64/boot/dts/freescale/imx8mm-tqma8mqml.dtsi
index b4466a26d838a..8c0c6e7159247 100644
--- a/arch/arm64/boot/dts/freescale/imx8mm-tqma8mqml.dtsi
+++ b/arch/arm64/boot/dts/freescale/imx8mm-tqma8mqml.dtsi
@@ -230,6 +230,11 @@ eeprom0: eeprom@57 {
};
};
+&mipi_dsi {
+ vddcore-supply = <&ldo4_reg>;
+ vddio-supply = <&ldo3_reg>;
+};
+
&pcie_phy {
fsl,refclk-pad-mode = <IMX8_PCIE_REFCLK_PAD_INPUT>;
fsl,clkreq-unsupported;
diff --git a/arch/arm64/boot/dts/freescale/mba8mx.dtsi b/arch/arm64/boot/dts/freescale/mba8mx.dtsi
index 8a9fe5cdcc98a..269e604cb1574 100644
--- a/arch/arm64/boot/dts/freescale/mba8mx.dtsi
+++ b/arch/arm64/boot/dts/freescale/mba8mx.dtsi
@@ -8,6 +8,16 @@
/* TQ-Systems GmbH MBa8Mx baseboard */
/ {
+ backlight_lvds0: backlight0 {
+ compatible = "pwm-backlight";
+ pwms = <&pwm3 0 5000000 0>;
+ brightness-levels = <0 4 8 16 32 64 128 255>;
+ default-brightness-level = <7>;
+ power-supply = <®_12v>;
+ enable-gpios = <&expander2 2 GPIO_ACTIVE_HIGH>;
+ status = "disabled";
+ };
+
beeper {
compatible = "pwm-beeper";
pwms = <&pwm4 0 250000 0>;
@@ -65,12 +75,45 @@ led2: led2 {
};
};
+ gpio_delays: gpio-delays {
+ compatible = "gpio-delay";
+ #gpio-cells = <3>;
+ gpio-controller;
+ gpios = <&expander0 6 GPIO_ACTIVE_HIGH>;
+ gpio-line-names = "LVDS_BRIDGE_EN_1V8";
+ };
+
+ panel0: panel_lvds0 {
+ /*
+ * Display is not fixed, so compatible has to be added from
+ * DT overlay
+ */
+ backlight = <&backlight_lvds0>;
+ power-supply = <®_vcc_3v3>;
+ status = "disabled";
+
+ port {
+ panel_in_lvds0: endpoint {
+ data-lanes = <1 2 3 4>;
+ remote-endpoint = <&lvds_bridge_out>;
+ };
+ };
+ };
+
pcie0_refclk: pcie0-refclk {
compatible = "fixed-clock";
#clock-cells = <0>;
clock-frequency = <100000000>;
};
+ reg_12v: regulator-12v {
+ compatible = "regulator-fixed";
+ regulator-name = "MBA8MX_12V";
+ regulator-min-microvolt = <12000000>;
+ regulator-max-microvolt = <12000000>;
+ regulator-always-on;
+ };
+
reg_hub_vbus: regulator-hub-vbus {
compatible = "regulator-fixed";
regulator-name = "MBA8MX_HUB_VBUS";
@@ -157,6 +200,10 @@ expander0: gpio@23 {
interrupts = <9 IRQ_TYPE_EDGE_FALLING>;
interrupt-controller;
#interrupt-cells = <2>;
+ gpio-line-names = "", "", "", "",
+ "", "", "LVDS_BRIDGE_EN_3V3", "",
+ "", "", "", "",
+ "", "", "", "";
sd-mux-oe-hog {
gpio-hog;
@@ -227,6 +274,27 @@ &i2c3 {
scl-gpios = <&gpio5 18 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
sda-gpios = <&gpio5 19 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
status = "okay";
+
+ dsi_lvds_bridge: bridge@2d {
+ compatible = "ti,sn65dsi84";
+ reg = <0x2d>;
+ enable-gpios = <&gpio_delays 0 130000 0>;
+ vcc-supply = <®_sn65dsi83_1v8>;
+ status = "disabled";
+
+ ports {
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ port@2 {
+ reg = <2>;
+
+ lvds_bridge_out: endpoint {
+ remote-endpoint = <&panel_in_lvds0>;
+ };
+ };
+ };
+ };
};
&pwm3 {
--
2.34.1
^ permalink raw reply related [flat|nested] 5+ messages in thread
* [PATCH 2/3] arm64: dts: imx8mm-tqma8mqml-mba8mx: Add LVDS overlay
2023-08-21 13:40 [PATCH 0/3] TQMa8MxML LVDS support Alexander Stein
2023-08-21 13:40 ` [PATCH 1/3] arm64: dts: imx8mm-tqma8mqml-mba8mx: Add DSI-LVDS bridge node Alexander Stein
@ 2023-08-21 13:40 ` Alexander Stein
2023-08-21 13:40 ` [PATCH 3/3] arm64: defconfig: Enable Samsung DSIM driver Alexander Stein
2 siblings, 0 replies; 5+ messages in thread
From: Alexander Stein @ 2023-08-21 13:40 UTC (permalink / raw)
To: Rob Herring, Krzysztof Kozlowski, Conor Dooley, Shawn Guo,
Sascha Hauer, Fabio Estevam, Catalin Marinas, Will Deacon
Cc: Alexander Stein, Pengutronix Kernel Team, NXP Linux Team,
devicetree, linux, linux-arm-kernel
This overlay enables the DSI-LVDS display chain and configures the
actual panel compatible.
Signed-off-by: Alexander Stein <alexander.stein@ew.tq-group.com>
---
arch/arm64/boot/dts/freescale/Makefile | 4 ++
.../imx8mm-tqma8mqml-mba8mx-lvds.dtso | 43 +++++++++++++++++++
2 files changed, 47 insertions(+)
create mode 100644 arch/arm64/boot/dts/freescale/imx8mm-tqma8mqml-mba8mx-lvds.dtso
diff --git a/arch/arm64/boot/dts/freescale/Makefile b/arch/arm64/boot/dts/freescale/Makefile
index a3e037e5bd8ae..c39ba0fd660f8 100644
--- a/arch/arm64/boot/dts/freescale/Makefile
+++ b/arch/arm64/boot/dts/freescale/Makefile
@@ -82,6 +82,10 @@ dtb-$(CONFIG_ARCH_MXC) += imx8mm-verdin-nonwifi-yavia.dtb
dtb-$(CONFIG_ARCH_MXC) += imx8mm-verdin-wifi-dahlia.dtb
dtb-$(CONFIG_ARCH_MXC) += imx8mm-verdin-wifi-dev.dtb
dtb-$(CONFIG_ARCH_MXC) += imx8mm-verdin-wifi-yavia.dtb
+
+imx8mm-tqma8mqml-mba8mx-lvds-dtbs += imx8mm-tqma8mqml-mba8mx.dtb imx8mm-tqma8mqml-mba8mx-lvds.dtbo
+dtb-$(CONFIG_ARCH_MXC) += imx8mm-tqma8mqml-mba8mx-lvds.dtb
+
dtb-$(CONFIG_ARCH_MXC) += imx8mn-beacon-kit.dtb
dtb-$(CONFIG_ARCH_MXC) += imx8mn-bsh-smm-s2.dtb
dtb-$(CONFIG_ARCH_MXC) += imx8mn-bsh-smm-s2pro.dtb
diff --git a/arch/arm64/boot/dts/freescale/imx8mm-tqma8mqml-mba8mx-lvds.dtso b/arch/arm64/boot/dts/freescale/imx8mm-tqma8mqml-mba8mx-lvds.dtso
new file mode 100644
index 0000000000000..d7f0b9b80f0c4
--- /dev/null
+++ b/arch/arm64/boot/dts/freescale/imx8mm-tqma8mqml-mba8mx-lvds.dtso
@@ -0,0 +1,43 @@
+// SPDX-License-Identifier: (GPL-2.0-or-later OR MIT)
+/*
+ * Copyright (c) 2022-23 TQ-Systems GmbH <linux@ew.tq-group.com>,
+ * D-82229 Seefeld, Germany.
+ * Author: Alexander Stein
+ */
+
+/dts-v1/;
+/plugin/;
+
+&{/} {
+ compatible = "tq,imx8mm-tqma8mqml-mba8mx", "tq,imx8mm-tqma8mqml", "fsl,imx8mm";
+};
+
+&backlight_lvds0 {
+ status = "okay";
+};
+
+&dsi_lvds_bridge {
+ status = "okay";
+};
+
+&expander0 {
+ dsi-mux-oe-hog {
+ gpio-hog;
+ gpios = <10 0>;
+ output-low;
+ line-name = "DSI_MUX_OE#";
+ };
+};
+
+&lcdif {
+ status = "okay";
+};
+
+&mipi_dsi {
+ status = "okay";
+};
+
+&panel0 {
+ compatible = "tianma,tm070jvhg33";
+ status = "okay";
+};
--
2.34.1
^ permalink raw reply related [flat|nested] 5+ messages in thread
* [PATCH 3/3] arm64: defconfig: Enable Samsung DSIM driver
2023-08-21 13:40 [PATCH 0/3] TQMa8MxML LVDS support Alexander Stein
2023-08-21 13:40 ` [PATCH 1/3] arm64: dts: imx8mm-tqma8mqml-mba8mx: Add DSI-LVDS bridge node Alexander Stein
2023-08-21 13:40 ` [PATCH 2/3] arm64: dts: imx8mm-tqma8mqml-mba8mx: Add LVDS overlay Alexander Stein
@ 2023-08-21 13:40 ` Alexander Stein
2 siblings, 0 replies; 5+ messages in thread
From: Alexander Stein @ 2023-08-21 13:40 UTC (permalink / raw)
To: Rob Herring, Krzysztof Kozlowski, Conor Dooley, Shawn Guo,
Sascha Hauer, Fabio Estevam, Catalin Marinas, Will Deacon
Cc: Alexander Stein, Pengutronix Kernel Team, NXP Linux Team,
devicetree, linux, linux-arm-kernel
This driver, together with GPIO delay, is required for TQMa8MxML based
boards to use LVDS output.
Signed-off-by: Alexander Stein <alexander.stein@ew.tq-group.com>
---
arch/arm64/configs/defconfig | 2 ++
1 file changed, 2 insertions(+)
diff --git a/arch/arm64/configs/defconfig b/arch/arm64/configs/defconfig
index 5315789f48682..17f3e865293ad 100644
--- a/arch/arm64/configs/defconfig
+++ b/arch/arm64/configs/defconfig
@@ -612,6 +612,7 @@ CONFIG_PINCTRL_SC8280XP_LPASS_LPI=m
CONFIG_PINCTRL_SM8550=y
CONFIG_PINCTRL_SM8550_LPASS_LPI=m
CONFIG_PINCTRL_LPASS_LPI=m
+CONFIG_GPIO_AGGREGATOR=m
CONFIG_GPIO_ALTERA=m
CONFIG_GPIO_DAVINCI=y
CONFIG_GPIO_DWAPB=y
@@ -845,6 +846,7 @@ CONFIG_DRM_LONTIUM_LT9611UXC=m
CONFIG_DRM_ITE_IT66121=m
CONFIG_DRM_NWL_MIPI_DSI=m
CONFIG_DRM_PARADE_PS8640=m
+CONFIG_DRM_SAMSUNG_DSIM=m
CONFIG_DRM_SII902X=m
CONFIG_DRM_SIMPLE_BRIDGE=m
CONFIG_DRM_THINE_THC63LVD1024=m
--
2.34.1
^ permalink raw reply related [flat|nested] 5+ messages in thread
* Re: [PATCH 1/3] arm64: dts: imx8mm-tqma8mqml-mba8mx: Add DSI-LVDS bridge node
2023-08-21 13:40 ` [PATCH 1/3] arm64: dts: imx8mm-tqma8mqml-mba8mx: Add DSI-LVDS bridge node Alexander Stein
@ 2023-08-22 6:16 ` Krzysztof Kozlowski
0 siblings, 0 replies; 5+ messages in thread
From: Krzysztof Kozlowski @ 2023-08-22 6:16 UTC (permalink / raw)
To: Alexander Stein, Rob Herring, Krzysztof Kozlowski, Conor Dooley,
Shawn Guo, Sascha Hauer, Fabio Estevam, Catalin Marinas,
Will Deacon
Cc: Pengutronix Kernel Team, NXP Linux Team, devicetree, linux,
linux-arm-kernel
On 21/08/2023 15:40, Alexander Stein wrote:
> This adds the DSI-LVDS bridge including the regulator, backlight and
> an unspecified panel. It is expected to set the compatible when the
> display chain is enabled.
>
> Signed-off-by: Alexander Stein <alexander.stein@ew.tq-group.com>
> ---
> .../dts/freescale/imx8mm-tqma8mqml-mba8mx.dts | 29 ++++++++
> .../boot/dts/freescale/imx8mm-tqma8mqml.dtsi | 5 ++
> arch/arm64/boot/dts/freescale/mba8mx.dtsi | 68 +++++++++++++++++++
> 3 files changed, 102 insertions(+)
>
> diff --git a/arch/arm64/boot/dts/freescale/imx8mm-tqma8mqml-mba8mx.dts b/arch/arm64/boot/dts/freescale/imx8mm-tqma8mqml-mba8mx.dts
> index 156d793a0c972..b2b825d990a62 100644
> --- a/arch/arm64/boot/dts/freescale/imx8mm-tqma8mqml-mba8mx.dts
> +++ b/arch/arm64/boot/dts/freescale/imx8mm-tqma8mqml-mba8mx.dts
> @@ -56,6 +56,19 @@ usb_dr_connector: endpoint {
> };
> };
>
> +&dsi_lvds_bridge {
> + ports {
> + port@0 {
> + reg = <0>;
> +
> + lvds_bridge_in: endpoint {
> + data-lanes = <1 2 3 4>;
> + remote-endpoint = <&mipi_dsi_out>;
> + };
> + };
> + };
> +};
> +
> &i2c1 {
> expander2: gpio@27 {
> compatible = "nxp,pca9555";
> @@ -72,6 +85,22 @@ expander2: gpio@27 {
> };
> };
>
> +&mipi_dsi {
> + samsung,burst-clock-frequency = <891000000>;
> + samsung,esc-clock-frequency = <20000000>;
> +
> + ports {
> + port@1 {
> + reg = <1>;
> +
> + mipi_dsi_out: endpoint {
> + data-lanes = <1 2 3 4>;
> + remote-endpoint = <&lvds_bridge_in>;
> + };
> + };
> + };
> +};
> +
> &pcie_phy {
> clocks = <&pcie0_refclk>;
> status = "okay";
> diff --git a/arch/arm64/boot/dts/freescale/imx8mm-tqma8mqml.dtsi b/arch/arm64/boot/dts/freescale/imx8mm-tqma8mqml.dtsi
> index b4466a26d838a..8c0c6e7159247 100644
> --- a/arch/arm64/boot/dts/freescale/imx8mm-tqma8mqml.dtsi
> +++ b/arch/arm64/boot/dts/freescale/imx8mm-tqma8mqml.dtsi
> @@ -230,6 +230,11 @@ eeprom0: eeprom@57 {
> };
> };
>
> +&mipi_dsi {
> + vddcore-supply = <&ldo4_reg>;
> + vddio-supply = <&ldo3_reg>;
> +};
> +
> &pcie_phy {
> fsl,refclk-pad-mode = <IMX8_PCIE_REFCLK_PAD_INPUT>;
> fsl,clkreq-unsupported;
> diff --git a/arch/arm64/boot/dts/freescale/mba8mx.dtsi b/arch/arm64/boot/dts/freescale/mba8mx.dtsi
> index 8a9fe5cdcc98a..269e604cb1574 100644
> --- a/arch/arm64/boot/dts/freescale/mba8mx.dtsi
> +++ b/arch/arm64/boot/dts/freescale/mba8mx.dtsi
> @@ -8,6 +8,16 @@
> /* TQ-Systems GmbH MBa8Mx baseboard */
>
> / {
> + backlight_lvds0: backlight0 {
Why 0?
> + compatible = "pwm-backlight";
> + pwms = <&pwm3 0 5000000 0>;
> + brightness-levels = <0 4 8 16 32 64 128 255>;
> + default-brightness-level = <7>;
> + power-supply = <®_12v>;
> + enable-gpios = <&expander2 2 GPIO_ACTIVE_HIGH>;
> + status = "disabled";
> + };
> +
> beeper {
> compatible = "pwm-beeper";
> pwms = <&pwm4 0 250000 0>;
> @@ -65,12 +75,45 @@ led2: led2 {
> };
> };
>
> + gpio_delays: gpio-delays {
> + compatible = "gpio-delay";
> + #gpio-cells = <3>;
> + gpio-controller;
> + gpios = <&expander0 6 GPIO_ACTIVE_HIGH>;
> + gpio-line-names = "LVDS_BRIDGE_EN_1V8";
> + };
> +
> + panel0: panel_lvds0 {
No underscores in node names. Why 0?
Best regards,
Krzysztof
^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2023-08-22 6:16 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2023-08-21 13:40 [PATCH 0/3] TQMa8MxML LVDS support Alexander Stein
2023-08-21 13:40 ` [PATCH 1/3] arm64: dts: imx8mm-tqma8mqml-mba8mx: Add DSI-LVDS bridge node Alexander Stein
2023-08-22 6:16 ` Krzysztof Kozlowski
2023-08-21 13:40 ` [PATCH 2/3] arm64: dts: imx8mm-tqma8mqml-mba8mx: Add LVDS overlay Alexander Stein
2023-08-21 13:40 ` [PATCH 3/3] arm64: defconfig: Enable Samsung DSIM driver Alexander Stein
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).