Commit 62814204 authored by Francesco Dolcini's avatar Francesco Dolcini Committed by Shawn Guo

arm64: dts: freescale: imx8mp-verdin: add HDMI support

Enable HDMI output on Verdin iMX8MP on all the supported carrier boards
(dev, dahlia, mallow and yavia).

HDMI DDC I2C is used in regular I2C mode, see link on the related
dt-bindings patch.

Fix CEC and HPD pinctrl, having a pull-down on HPD and a pull-up on CEC.

Link: https://lore.kernel.org/all/20240515062753.111746-1-marex@denx.de/Signed-off-by: default avatarFrancesco Dolcini <francesco.dolcini@toradex.com>
Signed-off-by: default avatarShawn Guo <shawnguo@kernel.org>
parent 4880ee1c
...@@ -4,6 +4,18 @@ ...@@ -4,6 +4,18 @@
*/ */
/ { / {
native-hdmi-connector {
compatible = "hdmi-connector";
label = "X21";
type = "a";
port {
native_hdmi_connector_in: endpoint {
remote-endpoint = <&hdmi_tx_out>;
};
};
};
sound { sound {
compatible = "simple-audio-card"; compatible = "simple-audio-card";
simple-audio-card,bitclock-master = <&codec_dai>; simple-audio-card,bitclock-master = <&codec_dai>;
...@@ -94,6 +106,27 @@ &gpio4 { ...@@ -94,6 +106,27 @@ &gpio4 {
pinctrl-0 = <&pinctrl_ctrl_sleep_moci>; pinctrl-0 = <&pinctrl_ctrl_sleep_moci>;
}; };
/* Verdin HDMI_1 */
&hdmi_pvi {
status = "okay";
};
&hdmi_tx {
status = "okay";
ports {
port@1 {
hdmi_tx_out: endpoint {
remote-endpoint = <&native_hdmi_connector_in>;
};
};
};
};
&hdmi_tx_phy {
status = "okay";
};
/* Current measurement into module VCC */ /* Current measurement into module VCC */
&hwmon { &hwmon {
status = "okay"; status = "okay";
...@@ -139,6 +172,10 @@ &i2c5 { ...@@ -139,6 +172,10 @@ &i2c5 {
status = "okay"; status = "okay";
}; };
&lcdif3 {
status = "okay";
};
/* Verdin PCIE_1 */ /* Verdin PCIE_1 */
&pcie { &pcie {
vpcie-supply = <&reg_pcie>; vpcie-supply = <&reg_pcie>;
......
...@@ -4,6 +4,18 @@ ...@@ -4,6 +4,18 @@
*/ */
/ { / {
native-hdmi-connector {
compatible = "hdmi-connector";
label = "X37";
type = "a";
port {
native_hdmi_connector_in: endpoint {
remote-endpoint = <&hdmi_tx_out>;
};
};
};
reg_eth2phy: regulator-eth2phy { reg_eth2phy: regulator-eth2phy {
compatible = "regulator-fixed"; compatible = "regulator-fixed";
enable-active-high; enable-active-high;
...@@ -103,6 +115,27 @@ &gpio_expander_21 { ...@@ -103,6 +115,27 @@ &gpio_expander_21 {
vcc-supply = <&reg_1p8v>; vcc-supply = <&reg_1p8v>;
}; };
/* Verdin HDMI_1 */
&hdmi_pvi {
status = "okay";
};
&hdmi_tx {
status = "okay";
ports {
port@1 {
hdmi_tx_out: endpoint {
remote-endpoint = <&native_hdmi_connector_in>;
};
};
};
};
&hdmi_tx_phy {
status = "okay";
};
/* Current measurement into module VCC */ /* Current measurement into module VCC */
&hwmon { &hwmon {
status = "okay"; status = "okay";
...@@ -141,6 +174,10 @@ &i2c5 { ...@@ -141,6 +174,10 @@ &i2c5 {
status = "okay"; status = "okay";
}; };
&lcdif3 {
status = "okay";
};
/* Verdin PCIE_1 */ /* Verdin PCIE_1 */
&pcie { &pcie {
status = "okay"; status = "okay";
......
...@@ -11,6 +11,18 @@ ...@@ -11,6 +11,18 @@
#include <dt-bindings/leds/common.h> #include <dt-bindings/leds/common.h>
/ { / {
native-hdmi-connector {
compatible = "hdmi-connector";
label = "X14";
type = "a";
port {
native_hdmi_connector_in: endpoint {
remote-endpoint = <&hdmi_tx_out>;
};
};
};
leds { leds {
compatible = "gpio-leds"; compatible = "gpio-leds";
pinctrl-names = "default"; pinctrl-names = "default";
...@@ -91,6 +103,27 @@ &flexcan2 { ...@@ -91,6 +103,27 @@ &flexcan2 {
status = "okay"; status = "okay";
}; };
/* Verdin HDMI_1 */
&hdmi_pvi {
status = "okay";
};
&hdmi_tx {
status = "okay";
ports {
port@1 {
hdmi_tx_out: endpoint {
remote-endpoint = <&native_hdmi_connector_in>;
};
};
};
};
&hdmi_tx_phy {
status = "okay";
};
/* Temperature sensor on Mallow */ /* Temperature sensor on Mallow */
&hwmon_temp { &hwmon_temp {
compatible = "ti,tmp1075"; compatible = "ti,tmp1075";
...@@ -117,6 +150,10 @@ &i2c5 { ...@@ -117,6 +150,10 @@ &i2c5 {
status = "okay"; status = "okay";
}; };
&lcdif3 {
status = "okay";
};
/* Verdin PCIE_1 */ /* Verdin PCIE_1 */
&pcie { &pcie {
status = "okay"; status = "okay";
......
...@@ -41,8 +41,7 @@ &iomuxc { ...@@ -41,8 +41,7 @@ &iomuxc {
pinctrl-0 = <&pinctrl_gpio1>, <&pinctrl_gpio2>, pinctrl-0 = <&pinctrl_gpio1>, <&pinctrl_gpio2>,
<&pinctrl_gpio3>, <&pinctrl_gpio4>, <&pinctrl_gpio3>, <&pinctrl_gpio4>,
<&pinctrl_gpio7>, <&pinctrl_gpio8>, <&pinctrl_gpio7>, <&pinctrl_gpio8>,
<&pinctrl_gpio_hog1>, <&pinctrl_gpio_hog2>, <&pinctrl_gpio_hog3>, <&pinctrl_gpio_hog1>, <&pinctrl_gpio_hog2>, <&pinctrl_gpio_hog3>;
<&pinctrl_hdmi_hog>;
}; };
/* /*
......
...@@ -55,8 +55,7 @@ &iomuxc { ...@@ -55,8 +55,7 @@ &iomuxc {
pinctrl-0 = <&pinctrl_gpio1>, <&pinctrl_gpio2>, pinctrl-0 = <&pinctrl_gpio1>, <&pinctrl_gpio2>,
<&pinctrl_gpio3>, <&pinctrl_gpio4>, <&pinctrl_gpio3>, <&pinctrl_gpio4>,
<&pinctrl_gpio7>, <&pinctrl_gpio8>, <&pinctrl_gpio7>, <&pinctrl_gpio8>,
<&pinctrl_gpio_hog2>, <&pinctrl_gpio_hog3>, <&pinctrl_gpio_hog4>, <&pinctrl_gpio_hog2>, <&pinctrl_gpio_hog3>, <&pinctrl_gpio_hog4>;
<&pinctrl_hdmi_hog>;
}; };
/* On-module Bluetooth */ /* On-module Bluetooth */
......
...@@ -6,6 +6,18 @@ ...@@ -6,6 +6,18 @@
#include <dt-bindings/leds/common.h> #include <dt-bindings/leds/common.h>
/ { / {
native-hdmi-connector {
compatible = "hdmi-connector";
label = "J15";
type = "a";
port {
native_hdmi_connector_in: endpoint {
remote-endpoint = <&hdmi_tx_out>;
};
};
};
/* Carrier Board Supply +V1.8 */ /* Carrier Board Supply +V1.8 */
reg_1p8v: regulator-1p8v { reg_1p8v: regulator-1p8v {
compatible = "regulator-fixed"; compatible = "regulator-fixed";
...@@ -105,6 +117,27 @@ &gpio4 { ...@@ -105,6 +117,27 @@ &gpio4 {
pinctrl-0 = <&pinctrl_ctrl_sleep_moci>; pinctrl-0 = <&pinctrl_ctrl_sleep_moci>;
}; };
/* Verdin HDMI_1 */
&hdmi_pvi {
status = "okay";
};
&hdmi_tx {
status = "okay";
ports {
port@1 {
hdmi_tx_out: endpoint {
remote-endpoint = <&native_hdmi_connector_in>;
};
};
};
};
&hdmi_tx_phy {
status = "okay";
};
&hwmon_temp { &hwmon_temp {
status = "okay"; status = "okay";
}; };
...@@ -127,6 +160,10 @@ &i2c5 { ...@@ -127,6 +160,10 @@ &i2c5 {
status = "okay"; status = "okay";
}; };
&lcdif3 {
status = "okay";
};
/* Verdin PCIE_1 */ /* Verdin PCIE_1 */
&pcie { &pcie {
status = "okay"; status = "okay";
......
...@@ -457,6 +457,13 @@ &gpio4 { ...@@ -457,6 +457,13 @@ &gpio4 {
"SODIMM_44"; "SODIMM_44";
}; };
/* Verdin HDMI_1 */
&hdmi_tx {
ddc-i2c-bus = <&i2c5>;
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_hdmi>;
};
/* On-module I2C */ /* On-module I2C */
&i2c1 { &i2c1 {
clock-frequency = <400000>; clock-frequency = <400000>;
...@@ -1116,10 +1123,10 @@ pinctrl_gpio_keys: gpiokeysgrp { ...@@ -1116,10 +1123,10 @@ pinctrl_gpio_keys: gpiokeysgrp {
<MX8MP_IOMUXC_SAI1_RXFS__GPIO4_IO00 0x1c4>; /* SODIMM 252 */ <MX8MP_IOMUXC_SAI1_RXFS__GPIO4_IO00 0x1c4>; /* SODIMM 252 */
}; };
pinctrl_hdmi_hog: hdmihoggrp { pinctrl_hdmi: hdmigrp {
fsl,pins = fsl,pins =
<MX8MP_IOMUXC_HDMI_CEC__HDMIMIX_HDMI_CEC 0x40000019>, /* SODIMM 63 */ <MX8MP_IOMUXC_HDMI_CEC__HDMIMIX_HDMI_CEC 0x140>, /* SODIMM 63 */
<MX8MP_IOMUXC_HDMI_HPD__HDMIMIX_HDMI_HPD 0x40000019>; /* SODIMM 61 */ <MX8MP_IOMUXC_HDMI_HPD__HDMIMIX_HDMI_HPD 0x180>; /* SODIMM 61 */
}; };
/* On-module I2C */ /* On-module I2C */
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment