* [PATCH 00/12] Add HDMI support for Mediatek Genio 510/700/1200-EVK and Radxa NIO-12L boards
@ 2025-12-09 16:34 Louis-Alexis Eyraud
2025-12-09 16:34 ` [PATCH 01/12] dt-bindings: phy: mediatek,hdmi-phy: Fix clock output names for MT8195 Louis-Alexis Eyraud
` (11 more replies)
0 siblings, 12 replies; 15+ messages in thread
From: Louis-Alexis Eyraud @ 2025-12-09 16:34 UTC (permalink / raw)
To: Chunfeng Yun, Vinod Koul, Neil Armstrong, Rob Herring,
Krzysztof Kozlowski, Conor Dooley, Matthias Brugger,
AngeloGioacchino Del Regno, Chun-Kuang Hu, Philipp Zabel,
Guillaume Ranquet
Cc: kernel, Krzysztof Kozlowski, linux-arm-kernel, linux-mediatek,
linux-phy, devicetree, linux-kernel, Louis-Alexis Eyraud,
Nícolas F. R. A. Prado
This patch series adds and enables the HDMI output support for the
following boards:
- Mediatek Genio 510-EVK (MT8370)
- Mediatek Genio 700-EVK (MT8390)
- Mediatek Genio 1200-EVK (MT8395)
- Radxa NIO-12L (MT8395)
Patch 1 is a 'mediatek,hdmi-phy' dt-binding fix for MT8195 SoC and a
revised version of [1], that addresses previous feedback from mailing
list ([2]).
Patch 2 was split from [1] into a separate patch and adds a MT8188 SoC
compatible in 'mediatek,hdmi-phy' dt-binding.
Patch 3 documents in 'mediatek,hdmi-phy' dt-binding extra clocks for
MT8195 SoC.
Patch 4 adds all of the nodes that are required to enable HDMI output
for MT8195 SoC and its variant (MT8395).
Patch 5 adds the same but for MT8188 SoC and its variants (MT8370,
MT8390).
Patches 6 to 11 enable HDMI output and sound support for each board.
Patch 12 enables the Mediatek HDMIv2 driver as module in defconfig.
The series is based on linux-next (tag: next-20251209).
[1] https://lore.kernel.org/linux-mediatek/20250724083914.61351-16-angelogioacchino.delregno@collabora.com/
[2] https://lore.kernel.org/linux-mediatek/ee525312-bde1-4724-b32f-83be32c87696@kernel.org/
Signed-off-by: Louis-Alexis Eyraud <louisalexis.eyraud@collabora.com>
---
AngeloGioacchino Del Regno (5):
dt-bindings: phy: mediatek,hdmi-phy: Fix clock output names for MT8195
arm64: dts: mediatek: mt8195: Add DPI1, HDMI, HDMI PHY/DDC nodes
arm64: dts: mediatek: mt8188: Add DPI1, HDMI, HDMI PHY/DDC nodes
arm64: dts: mediatek: mt8390-genio-common: Enable HDMI output
arm64: dts: mediatek: mt8395-radxa-nio-12l: Enable HDMI output
Louis-Alexis Eyraud (6):
dt-bindings: phy: mediatek,hdmi-phy: Add support for MT8188 SoC
arm64: dts: mediatek: mt8390-genio-common: Add HDMI sound output support
arm64: dts: mediatek: mt8395-radxa-nio-12l: Add HDMI sound output support
arm64: dts: mediatek: mt8395-genio-common: Enable HDMI output
arm64: dts: mediatek: mt8395-genio-common: Add HDMI sound output support
arm64: defconfig: Enable Mediatek HDMIv2 driver
Nícolas F. R. A. Prado (1):
dt-bindings: phy: mediatek,hdmi-phy: Document extra clocks for MT8195
.../devicetree/bindings/phy/mediatek,hdmi-phy.yaml | 43 +++++-
arch/arm64/boot/dts/mediatek/mt8188.dtsi | 82 +++++++++++
arch/arm64/boot/dts/mediatek/mt8195.dtsi | 86 ++++++++++++
.../boot/dts/mediatek/mt8390-genio-common.dtsi | 150 +++++++++++++++++++++
.../boot/dts/mediatek/mt8395-genio-common.dtsi | 150 +++++++++++++++++++++
.../boot/dts/mediatek/mt8395-radxa-nio-12l.dts | 150 +++++++++++++++++++++
arch/arm64/configs/defconfig | 1 +
7 files changed, 656 insertions(+), 6 deletions(-)
---
base-commit: 8ebfd5290c6162d65f83f9a8acdbbf243b49a586
change-id: 20251203-mtk-genio-evk-hdmi-support-17da5161827a
Best regards,
--
Louis-Alexis Eyraud <louisalexis.eyraud@collabora.com>
^ permalink raw reply [flat|nested] 15+ messages in thread
* [PATCH 01/12] dt-bindings: phy: mediatek,hdmi-phy: Fix clock output names for MT8195
2025-12-09 16:34 [PATCH 00/12] Add HDMI support for Mediatek Genio 510/700/1200-EVK and Radxa NIO-12L boards Louis-Alexis Eyraud
@ 2025-12-09 16:34 ` Louis-Alexis Eyraud
2025-12-10 21:13 ` Rob Herring (Arm)
2025-12-09 16:34 ` [PATCH 02/12] dt-bindings: phy: mediatek,hdmi-phy: Add support for MT8188 SoC Louis-Alexis Eyraud
` (10 subsequent siblings)
11 siblings, 1 reply; 15+ messages in thread
From: Louis-Alexis Eyraud @ 2025-12-09 16:34 UTC (permalink / raw)
To: Chunfeng Yun, Vinod Koul, Neil Armstrong, Rob Herring,
Krzysztof Kozlowski, Conor Dooley, Matthias Brugger,
AngeloGioacchino Del Regno, Chun-Kuang Hu, Philipp Zabel,
Guillaume Ranquet
Cc: kernel, Krzysztof Kozlowski, linux-arm-kernel, linux-mediatek,
linux-phy, devicetree, linux-kernel, Louis-Alexis Eyraud
From: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
For all of the HDMI PHYs compatible with the one found on MT8195
the output clock has a different datasheet name and specifically
it is called "hdmi_txpll", differently from the older HDMI PHYs
which output block is called "hdmitx_dig_cts".
Replace clock output name string check by max item number one to allow
the new name on all of the HDMI PHY IPs that are perfectly compatible
with MT8195.
Fixes: c78fe548b062 ("dt-bindings: phy: mediatek: hdmi-phy: Add mt8195 compatible")
Signed-off-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
[Louis-Alexis Eyraud: splitted patch, addressed previous feedback from
mailing list, and reworded description]
Signed-off-by: Louis-Alexis Eyraud <louisalexis.eyraud@collabora.com>
---
Documentation/devicetree/bindings/phy/mediatek,hdmi-phy.yaml | 3 +--
1 file changed, 1 insertion(+), 2 deletions(-)
diff --git a/Documentation/devicetree/bindings/phy/mediatek,hdmi-phy.yaml b/Documentation/devicetree/bindings/phy/mediatek,hdmi-phy.yaml
index f3a8b0b745d13ffc55d391570bff20830d925ed3..10f1d9326f18dba85b92b4c88f4c0f6cdddc4c25 100644
--- a/Documentation/devicetree/bindings/phy/mediatek,hdmi-phy.yaml
+++ b/Documentation/devicetree/bindings/phy/mediatek,hdmi-phy.yaml
@@ -42,8 +42,7 @@ properties:
- const: pll_ref
clock-output-names:
- items:
- - const: hdmitx_dig_cts
+ maxItems: 1
"#phy-cells":
const: 0
--
2.52.0
^ permalink raw reply related [flat|nested] 15+ messages in thread
* [PATCH 02/12] dt-bindings: phy: mediatek,hdmi-phy: Add support for MT8188 SoC
2025-12-09 16:34 [PATCH 00/12] Add HDMI support for Mediatek Genio 510/700/1200-EVK and Radxa NIO-12L boards Louis-Alexis Eyraud
2025-12-09 16:34 ` [PATCH 01/12] dt-bindings: phy: mediatek,hdmi-phy: Fix clock output names for MT8195 Louis-Alexis Eyraud
@ 2025-12-09 16:34 ` Louis-Alexis Eyraud
2025-12-09 16:34 ` [PATCH 03/12] dt-bindings: phy: mediatek,hdmi-phy: Document extra clocks for MT8195 Louis-Alexis Eyraud
` (9 subsequent siblings)
11 siblings, 0 replies; 15+ messages in thread
From: Louis-Alexis Eyraud @ 2025-12-09 16:34 UTC (permalink / raw)
To: Chunfeng Yun, Vinod Koul, Neil Armstrong, Rob Herring,
Krzysztof Kozlowski, Conor Dooley, Matthias Brugger,
AngeloGioacchino Del Regno, Chun-Kuang Hu, Philipp Zabel,
Guillaume Ranquet
Cc: kernel, Krzysztof Kozlowski, linux-arm-kernel, linux-mediatek,
linux-phy, devicetree, linux-kernel, Louis-Alexis Eyraud
Add compatible string for the HDMI PHY IP on MT8188 SoC, that is
compatible with the one found on MT8195 SoC.
Signed-off-by: Louis-Alexis Eyraud <louisalexis.eyraud@collabora.com>
---
Documentation/devicetree/bindings/phy/mediatek,hdmi-phy.yaml | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/Documentation/devicetree/bindings/phy/mediatek,hdmi-phy.yaml b/Documentation/devicetree/bindings/phy/mediatek,hdmi-phy.yaml
index 10f1d9326f18dba85b92b4c88f4c0f6cdddc4c25..cd4ac42ee45e4648ed512f68f6f28d1f3f2e1116 100644
--- a/Documentation/devicetree/bindings/phy/mediatek,hdmi-phy.yaml
+++ b/Documentation/devicetree/bindings/phy/mediatek,hdmi-phy.yaml
@@ -26,6 +26,10 @@ properties:
- enum:
- mediatek,mt7623-hdmi-phy
- const: mediatek,mt2701-hdmi-phy
+ - items:
+ - enum:
+ - mediatek,mt8188-hdmi-phy
+ - const: mediatek,mt8195-hdmi-phy
- const: mediatek,mt2701-hdmi-phy
- const: mediatek,mt8173-hdmi-phy
- const: mediatek,mt8195-hdmi-phy
--
2.52.0
^ permalink raw reply related [flat|nested] 15+ messages in thread
* [PATCH 03/12] dt-bindings: phy: mediatek,hdmi-phy: Document extra clocks for MT8195
2025-12-09 16:34 [PATCH 00/12] Add HDMI support for Mediatek Genio 510/700/1200-EVK and Radxa NIO-12L boards Louis-Alexis Eyraud
2025-12-09 16:34 ` [PATCH 01/12] dt-bindings: phy: mediatek,hdmi-phy: Fix clock output names for MT8195 Louis-Alexis Eyraud
2025-12-09 16:34 ` [PATCH 02/12] dt-bindings: phy: mediatek,hdmi-phy: Add support for MT8188 SoC Louis-Alexis Eyraud
@ 2025-12-09 16:34 ` Louis-Alexis Eyraud
2025-12-10 21:19 ` Rob Herring
2025-12-09 16:34 ` [PATCH 04/12] arm64: dts: mediatek: mt8195: Add DPI1, HDMI, HDMI PHY/DDC nodes Louis-Alexis Eyraud
` (8 subsequent siblings)
11 siblings, 1 reply; 15+ messages in thread
From: Louis-Alexis Eyraud @ 2025-12-09 16:34 UTC (permalink / raw)
To: Chunfeng Yun, Vinod Koul, Neil Armstrong, Rob Herring,
Krzysztof Kozlowski, Conor Dooley, Matthias Brugger,
AngeloGioacchino Del Regno, Chun-Kuang Hu, Philipp Zabel,
Guillaume Ranquet
Cc: kernel, Krzysztof Kozlowski, linux-arm-kernel, linux-mediatek,
linux-phy, devicetree, linux-kernel, Louis-Alexis Eyraud,
Nícolas F. R. A. Prado
From: "Nícolas F. R. A. Prado" <nfraprado@collabora.com>
MT8195's HDMI PHY block has 4 clocks instead of just a single one.
Describe the extra clocks for it.
Signed-off-by: Nícolas F. R. A. Prado <nfraprado@collabora.com>
Signed-off-by: Louis-Alexis Eyraud <louisalexis.eyraud@collabora.com>
---
.../devicetree/bindings/phy/mediatek,hdmi-phy.yaml | 36 +++++++++++++++++++---
1 file changed, 32 insertions(+), 4 deletions(-)
diff --git a/Documentation/devicetree/bindings/phy/mediatek,hdmi-phy.yaml b/Documentation/devicetree/bindings/phy/mediatek,hdmi-phy.yaml
index cd4ac42ee45e4648ed512f68f6f28d1f3f2e1116..91f8118689d5e838c4d75264822bb09a00fea21b 100644
--- a/Documentation/devicetree/bindings/phy/mediatek,hdmi-phy.yaml
+++ b/Documentation/devicetree/bindings/phy/mediatek,hdmi-phy.yaml
@@ -38,12 +38,12 @@ properties:
maxItems: 1
clocks:
- items:
- - description: PLL reference clock
+ minItems: 1
+ maxItems: 4
clock-names:
- items:
- - const: pll_ref
+ minItems: 1
+ maxItems: 4
clock-output-names:
maxItems: 1
@@ -79,6 +79,34 @@ required:
- "#phy-cells"
- "#clock-cells"
+allOf:
+ - if:
+ properties:
+ compatible:
+ const: mediatek,mt8195-hdmi-phy
+ then:
+ properties:
+ clocks:
+ items:
+ - description: PLL reference clock
+ - description: HDMI 26MHz clock
+ - description: HDMI PLL1 clock
+ - description: HDMI PLL2 clock
+ clock-names:
+ items:
+ - const: pll_ref
+ - const: hdmi_26m
+ - const: hdmi_pll1
+ - const: hdmi_pll2
+ else:
+ properties:
+ clocks:
+ items:
+ - description: PLL reference clock
+ clock-names:
+ items:
+ - const: pll_ref
+
additionalProperties: false
examples:
--
2.52.0
^ permalink raw reply related [flat|nested] 15+ messages in thread
* [PATCH 04/12] arm64: dts: mediatek: mt8195: Add DPI1, HDMI, HDMI PHY/DDC nodes
2025-12-09 16:34 [PATCH 00/12] Add HDMI support for Mediatek Genio 510/700/1200-EVK and Radxa NIO-12L boards Louis-Alexis Eyraud
` (2 preceding siblings ...)
2025-12-09 16:34 ` [PATCH 03/12] dt-bindings: phy: mediatek,hdmi-phy: Document extra clocks for MT8195 Louis-Alexis Eyraud
@ 2025-12-09 16:34 ` Louis-Alexis Eyraud
2025-12-09 16:34 ` [PATCH 05/12] arm64: dts: mediatek: mt8188: " Louis-Alexis Eyraud
` (7 subsequent siblings)
11 siblings, 0 replies; 15+ messages in thread
From: Louis-Alexis Eyraud @ 2025-12-09 16:34 UTC (permalink / raw)
To: Chunfeng Yun, Vinod Koul, Neil Armstrong, Rob Herring,
Krzysztof Kozlowski, Conor Dooley, Matthias Brugger,
AngeloGioacchino Del Regno, Chun-Kuang Hu, Philipp Zabel,
Guillaume Ranquet
Cc: kernel, Krzysztof Kozlowski, linux-arm-kernel, linux-mediatek,
linux-phy, devicetree, linux-kernel, Louis-Alexis Eyraud
From: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
Add all of the nodes that are required to enable HDMI output,
including ones describing the HDMI PHY, Controller and DDC,
and the Digital Parallel Interface instance that is internally
connected to the HDMI Controller.
All of the added nodes are disabled by default as usage is
board dependent.
Signed-off-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
Signed-off-by: Louis-Alexis Eyraud <louisalexis.eyraud@collabora.com>
---
arch/arm64/boot/dts/mediatek/mt8195.dtsi | 86 ++++++++++++++++++++++++++++++++
1 file changed, 86 insertions(+)
diff --git a/arch/arm64/boot/dts/mediatek/mt8195.dtsi b/arch/arm64/boot/dts/mediatek/mt8195.dtsi
index c7adafaa83288d2d86ddf45c97cc984344e1ff77..49e52dde247f29b57d34a25b33f2d5f36f745f30 100644
--- a/arch/arm64/boot/dts/mediatek/mt8195.dtsi
+++ b/arch/arm64/boot/dts/mediatek/mt8195.dtsi
@@ -26,8 +26,10 @@ / {
aliases {
dp-intf0 = &dp_intf0;
dp-intf1 = &dp_intf1;
+ dpi1 = &dpi1;
gce0 = &gce0;
gce1 = &gce1;
+ hdmi0 = &hdmi;
ethdr0 = ðdr0;
mutex0 = &mutex;
mutex1 = &mutex1;
@@ -1857,6 +1859,24 @@ imp_iic_wrap_s: clock-controller@11d03000 {
#clock-cells = <1>;
};
+ hdmi_phy: hdmi-phy@11d5f000 {
+ compatible = "mediatek,mt8195-hdmi-phy";
+ reg = <0 0x11d5f000 0 0x100>;
+ clocks = <&topckgen CLK_TOP_HDMI_XTAL>,
+ <&infracfg_ao CLK_INFRA_AO_HDMI_26M>,
+ <&apmixedsys CLK_APMIXED_HDMIPLL1>,
+ <&apmixedsys CLK_APMIXED_HDMIPLL2>;
+ clock-names = "pll_ref", "hdmi_26m",
+ "hdmi_pll1", "hdmi_pll2";
+ clock-output-names = "hdmi_txpll";
+
+ #clock-cells = <0>;
+ #phy-cells = <0>;
+ mediatek,ibias = <0xa>;
+ mediatek,ibias_up = <0x1c>;
+ status = "disabled";
+ };
+
i2c0: i2c@11e00000 {
compatible = "mediatek,mt8195-i2c",
"mediatek,mt8192-i2c";
@@ -3670,6 +3690,34 @@ merge5: vpp-merge@1c110000 {
resets = <&vdosys1 MT8195_VDOSYS1_SW0_RST_B_MERGE4_DL_ASYNC>;
};
+ dpi1: dpi@1c112000 {
+ compatible = "mediatek,mt8195-dpi";
+ reg = <0 0x1c112000 0 0x1000>;
+ clocks = <&vdosys1 CLK_VDO1_DPI1>,
+ <&vdosys1 CLK_VDO1_DPI1_MM>,
+ <&vdosys1 CLK_VDO1_DPI1_HDMI>;
+ clock-names = "pixel", "engine", "pll";
+ interrupts = <GIC_SPI 512 IRQ_TYPE_LEVEL_HIGH 0>;
+ power-domains = <&spm MT8195_POWER_DOMAIN_VDOSYS1>;
+ resets = <&vdosys1 MT8195_VDOSYS1_SW0_RST_B_DPI1>;
+ status = "disabled";
+
+ ports {
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ port@0 {
+ reg = <0>;
+ dpi1_in: endpoint { };
+ };
+
+ port@1 {
+ reg = <1>;
+ dpi1_out: endpoint { };
+ };
+ };
+ };
+
dp_intf1: dp-intf@1c113000 {
compatible = "mediatek,mt8195-dp-intf";
reg = <0 0x1c113000 0 0x1000>;
@@ -3730,6 +3778,44 @@ ethdr0: hdr-engine@1c114000 {
"gfx_fe1_async", "vdo_be_async";
};
+ hdmi: hdmi-tx@1c300000 {
+ compatible = "mediatek,mt8195-hdmi-tx";
+ #sound-dai-cells = <1>;
+ reg = <0 0x1c300000 0 0x1000>;
+ clocks = <&topckgen CLK_TOP_HDMI_APB>,
+ <&topckgen CLK_TOP_HDCP>,
+ <&topckgen CLK_TOP_HDCP_24M>,
+ <&vppsys1 CLK_VPP1_VPP_SPLIT_HDMI>;
+ clock-names = "bus", "hdcp", "hdcp24m", "hdmi-split";
+ assigned-clocks = <&topckgen CLK_TOP_HDCP>;
+ assigned-clock-parents = <&topckgen CLK_TOP_UNIVPLL_D4_D8>;
+ interrupts = <GIC_SPI 677 IRQ_TYPE_LEVEL_HIGH 0>;
+ power-domains = <&spm MT8195_POWER_DOMAIN_HDMI_TX>;
+ phys = <&hdmi_phy>;
+ phy-names = "hdmi";
+ status = "disabled";
+
+ hdmitx_ddc: i2c {
+ compatible = "mediatek,mt8195-hdmi-ddc";
+ clocks = <&clk26m>;
+ };
+
+ ports {
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ port@0 {
+ reg = <0>;
+ hdmi0_in: endpoint { };
+ };
+
+ port@1 {
+ reg = <1>;
+ hdmi0_out: endpoint { };
+ };
+ };
+ };
+
edp_tx: edp-tx@1c500000 {
compatible = "mediatek,mt8195-edp-tx";
reg = <0 0x1c500000 0 0x8000>;
--
2.52.0
^ permalink raw reply related [flat|nested] 15+ messages in thread
* [PATCH 05/12] arm64: dts: mediatek: mt8188: Add DPI1, HDMI, HDMI PHY/DDC nodes
2025-12-09 16:34 [PATCH 00/12] Add HDMI support for Mediatek Genio 510/700/1200-EVK and Radxa NIO-12L boards Louis-Alexis Eyraud
` (3 preceding siblings ...)
2025-12-09 16:34 ` [PATCH 04/12] arm64: dts: mediatek: mt8195: Add DPI1, HDMI, HDMI PHY/DDC nodes Louis-Alexis Eyraud
@ 2025-12-09 16:34 ` Louis-Alexis Eyraud
2025-12-09 16:34 ` [PATCH 06/12] arm64: dts: mediatek: mt8390-genio-common: Enable HDMI output Louis-Alexis Eyraud
` (6 subsequent siblings)
11 siblings, 0 replies; 15+ messages in thread
From: Louis-Alexis Eyraud @ 2025-12-09 16:34 UTC (permalink / raw)
To: Chunfeng Yun, Vinod Koul, Neil Armstrong, Rob Herring,
Krzysztof Kozlowski, Conor Dooley, Matthias Brugger,
AngeloGioacchino Del Regno, Chun-Kuang Hu, Philipp Zabel,
Guillaume Ranquet
Cc: kernel, Krzysztof Kozlowski, linux-arm-kernel, linux-mediatek,
linux-phy, devicetree, linux-kernel, Louis-Alexis Eyraud
From: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
Add all of the nodes that are required to enable HDMI output,
including ones describing the HDMI PHY, Controller and DDC,
and the Digital Parallel Interface instance that is internally
connected to the HDMI Controller.
All of the added nodes are disabled by default as usage is
board dependent.
Signed-off-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
[Louis-Alexis Eyraud: reworded subject and description]
Signed-off-by: Louis-Alexis Eyraud <louisalexis.eyraud@collabora.com>
---
arch/arm64/boot/dts/mediatek/mt8188.dtsi | 82 ++++++++++++++++++++++++++++++++
1 file changed, 82 insertions(+)
diff --git a/arch/arm64/boot/dts/mediatek/mt8188.dtsi b/arch/arm64/boot/dts/mediatek/mt8188.dtsi
index 90c388f1890f5139be6a9513c4cd9b683a501279..e2a17359e407f0bdd3ae6ef8ade668e67a9bd493 100644
--- a/arch/arm64/boot/dts/mediatek/mt8188.dtsi
+++ b/arch/arm64/boot/dts/mediatek/mt8188.dtsi
@@ -26,6 +26,7 @@ / {
aliases {
dp-intf0 = &dp_intf0;
dp-intf1 = &dp_intf1;
+ dpi1 = &dpi1;
dsc0 = &dsc0;
ethdr0 = ðdr0;
gce0 = &gce0;
@@ -2038,6 +2039,19 @@ pcieport: pcie-phy@0 {
};
};
+ hdmi_phy: hdmi-phy@11d5f000 {
+ compatible = "mediatek,mt8188-hdmi-phy", "mediatek,mt8195-hdmi-phy";
+ reg = <0 0x11d5f000 0 0x100>;
+ clocks = <&infracfg_ao CLK_INFRA_AO_HDMI_26M>;
+ clock-names = "pll_ref";
+ clock-output-names = "hdmi_txpll";
+ #clock-cells = <0>;
+ #phy-cells = <0>;
+ mediatek,ibias = <0xa>;
+ mediatek,ibias_up = <0x1c>;
+ status = "disabled";
+ };
+
mipi_tx_config0: dsi-phy@11c80000 {
compatible = "mediatek,mt8188-mipi-tx", "mediatek,mt8183-mipi-tx";
reg = <0 0x11c80000 0 0x1000>;
@@ -3406,6 +3420,34 @@ merge5: merge@1c110000 {
mediatek,merge-fifo-en;
};
+ dpi1: dpi@1c112000 {
+ compatible = "mediatek,mt8188-dpi", "mediatek,mt8195-dpi";
+ reg = <0 0x1c112000 0 0x1000>;
+ clocks = <&vdosys1 CLK_VDO1_DPI1>,
+ <&vdosys1 CLK_VDO1_DPI1_MM>,
+ <&vdosys1 CLK_VDO1_DPI1_HDMI>;
+ clock-names = "pixel", "engine", "pll";
+ interrupts = <GIC_SPI 524 IRQ_TYPE_LEVEL_HIGH 0>;
+ power-domains = <&spm MT8188_POWER_DOMAIN_VDOSYS1>;
+ resets = <&vdosys1 MT8188_VDO1_RST_DPI1_MM_CK>;
+ status = "disabled";
+
+ ports {
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ port@0 {
+ reg = <0>;
+ dpi1_in: endpoint { };
+ };
+
+ port@1 {
+ reg = <1>;
+ dpi1_out: endpoint { };
+ };
+ };
+ };
+
dp_intf1: dp-intf@1c113000 {
compatible = "mediatek,mt8188-dp-intf";
reg = <0 0x1c113000 0 0x1000>;
@@ -3530,6 +3572,46 @@ padding7: padding@1c124000 {
mediatek,gce-client-reg = <&gce0 SUBSYS_1c12XXXX 0x4000 0x1000>;
};
+ hdmi: hdmi@1c300000 {
+ compatible = "mediatek,mt8188-hdmi-tx";
+ #sound-dai-cells = <1>;
+ reg = <0 0x1c300000 0 0x1000>;
+ clocks = <&topckgen CLK_TOP_HDMI_APB>,
+ <&topckgen CLK_TOP_HDCP>,
+ <&topckgen CLK_TOP_HDCP_24M>,
+ <&vppsys1 CLK_VPP1_VPP_SPLIT_HDMI>;
+ clock-names = "bus", "hdcp", "hdcp24m", "hdmi-split";
+ assigned-clocks = <&topckgen CLK_TOP_HDCP>;
+ assigned-clock-parents = <&topckgen CLK_TOP_UNIVPLL_D4_D8>;
+ interrupts = <GIC_SPI 686 IRQ_TYPE_LEVEL_HIGH 0>;
+ power-domains = <&spm MT8188_POWER_DOMAIN_HDMI_TX>;
+ phys = <&hdmi_phy>;
+ phy-names = "hdmi";
+ status = "disabled";
+
+ hdmi_ddc: i2c {
+ compatible = "mediatek,mt8188-hdmi-ddc",
+ "mediatek,mt8195-hdmi-ddc";
+ clocks = <&clk26m>;
+ };
+
+ ports {
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ port@0 {
+ reg = <0>;
+ hdmi0_in: endpoint { };
+ };
+
+ port@1 {
+ reg = <1>;
+ hdmi0_out: endpoint { };
+ };
+ };
+ };
+
+
edp_tx: edp-tx@1c500000 {
compatible = "mediatek,mt8188-edp-tx";
reg = <0 0x1c500000 0 0x8000>;
--
2.52.0
^ permalink raw reply related [flat|nested] 15+ messages in thread
* [PATCH 06/12] arm64: dts: mediatek: mt8390-genio-common: Enable HDMI output
2025-12-09 16:34 [PATCH 00/12] Add HDMI support for Mediatek Genio 510/700/1200-EVK and Radxa NIO-12L boards Louis-Alexis Eyraud
` (4 preceding siblings ...)
2025-12-09 16:34 ` [PATCH 05/12] arm64: dts: mediatek: mt8188: " Louis-Alexis Eyraud
@ 2025-12-09 16:34 ` Louis-Alexis Eyraud
2025-12-09 16:34 ` [PATCH 07/12] arm64: dts: mediatek: mt8390-genio-common: Add HDMI sound output support Louis-Alexis Eyraud
` (5 subsequent siblings)
11 siblings, 0 replies; 15+ messages in thread
From: Louis-Alexis Eyraud @ 2025-12-09 16:34 UTC (permalink / raw)
To: Chunfeng Yun, Vinod Koul, Neil Armstrong, Rob Herring,
Krzysztof Kozlowski, Conor Dooley, Matthias Brugger,
AngeloGioacchino Del Regno, Chun-Kuang Hu, Philipp Zabel,
Guillaume Ranquet
Cc: kernel, Krzysztof Kozlowski, linux-arm-kernel, linux-mediatek,
linux-phy, devicetree, linux-kernel, Louis-Alexis Eyraud
From: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
Add a node for the HDMI-A connector found on this board, then
configure the display pipeline and enable the required DPI1
interface, HDMI controller, its integrated DDC and the HDMI
PHY to enable support for the HDMI output provided by these EVKs.
Signed-off-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
[Louis-Alexis Eyraud: reworded subject and description]
Signed-off-by: Louis-Alexis Eyraud <louisalexis.eyraud@collabora.com>
---
.../boot/dts/mediatek/mt8390-genio-common.dtsi | 141 +++++++++++++++++++++
1 file changed, 141 insertions(+)
diff --git a/arch/arm64/boot/dts/mediatek/mt8390-genio-common.dtsi b/arch/arm64/boot/dts/mediatek/mt8390-genio-common.dtsi
index a2cdecd2b9034e2f295d817e846d6ed1845e686a..5fa1f5fbad18f2bf9b153ae9a029829641e43023 100644
--- a/arch/arm64/boot/dts/mediatek/mt8390-genio-common.dtsi
+++ b/arch/arm64/boot/dts/mediatek/mt8390-genio-common.dtsi
@@ -55,6 +55,20 @@ dmic_codec: dmic-codec {
wakeup-delay-ms = <30>;
};
+ connector {
+ compatible = "hdmi-connector";
+ label = "hdmi";
+ type = "a";
+ ddc-i2c-bus = <&hdmi_ddc>;
+ hdmi-pwr-supply = <&hdmi_phy>;
+
+ port {
+ hdmi_connector_in: endpoint {
+ remote-endpoint = <&hdmi0_out>;
+ };
+ };
+ };
+
firmware {
optee {
compatible = "linaro,optee-tz";
@@ -328,6 +342,18 @@ &dither0_out {
remote-endpoint = <&dsi0_in>;
};
+&dpi1 {
+ status = "okay";
+};
+
+&dpi1_in {
+ remote-endpoint = <&merge5_out>;
+};
+
+&dpi1_out {
+ remote-endpoint = <&hdmi0_in>;
+};
+
&gamma0_out {
remote-endpoint = <&postmask0_in>;
};
@@ -337,6 +363,55 @@ &gpu {
status = "okay";
};
+ðdr0 {
+ ports {
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ port@0 {
+ #address-cells = <1>;
+ #size-cells = <0>;
+ reg = <0>;
+
+ ethdr0_in: endpoint@1 {
+ reg = <1>;
+ remote-endpoint = <&vdosys1_ep_ext>;
+ };
+ };
+
+ port@1 {
+ #address-cells = <1>;
+ #size-cells = <0>;
+ reg = <1>;
+
+ ethdr0_out: endpoint@1 {
+ reg = <1>;
+ remote-endpoint = <&merge5_in>;
+ };
+ };
+ };
+};
+
+&hdmi {
+ pinctrl-names = "default";
+ pinctrl-0 = <&hdmi_pins>;
+ status = "okay";
+};
+
+&hdmi0_in {
+ remote-endpoint = <&dpi1_out>;
+};
+
+&hdmi0_out {
+ remote-endpoint = <&hdmi_connector_in>;
+};
+
+&hdmi_phy {
+ pinctrl-names = "default";
+ pinctrl-0 = <&hdmi_vreg_pins>;
+ status = "okay";
+};
+
&i2c0 {
pinctrl-names = "default";
pinctrl-0 = <&i2c0_pins>;
@@ -475,6 +550,35 @@ &i2c6 {
status = "okay";
};
+&merge5 {
+ ports {
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ port@0 {
+ #address-cells = <1>;
+ #size-cells = <0>;
+ reg = <0>;
+
+ merge5_in: endpoint@1 {
+ reg = <1>;
+ remote-endpoint = <ðdr0_out>;
+ };
+ };
+
+ port@1 {
+ #address-cells = <1>;
+ #size-cells = <0>;
+ reg = <1>;
+
+ merge5_out: endpoint@1 {
+ reg = <1>;
+ remote-endpoint = <&dpi1_in>;
+ };
+ };
+ };
+};
+
&mfg0 {
domain-supply = <&mt6359_vproc2_buck_reg>;
};
@@ -727,6 +831,31 @@ pins-txd {
};
};
+ hdmi_vreg_pins: hdmi-vreg-pins {
+ pins-pwr {
+ pinmux = <PINMUX_GPIO50__FUNC_O_HDMITX20_PWR5V>;
+ bias-disable;
+ };
+ };
+
+ hdmi_pins: hdmi-pins {
+ pins-hotplug {
+ pinmux = <PINMUX_GPIO51__FUNC_I0_HDMITX20_HTPLG>;
+ bias-pull-down;
+ };
+
+ pins-cec {
+ pinmux = <PINMUX_GPIO52__FUNC_B1_HDMITX20_CEC>;
+ bias-disable;
+ };
+
+ pins-ddc {
+ pinmux = <PINMUX_GPIO53__FUNC_B1_HDMITX20_SCL>,
+ <PINMUX_GPIO54__FUNC_B1_HDMITX20_SDA>;
+ drive-strength = <10>;
+ };
+ };
+
i2c0_pins: i2c0-pins {
pins {
pinmux = <PINMUX_GPIO56__FUNC_B1_SDA0>,
@@ -1286,6 +1415,18 @@ connector {
};
};
+&vdosys1 {
+ port {
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ vdosys1_ep_ext: endpoint@1 {
+ reg = <1>;
+ remote-endpoint = <ðdr0_in>;
+ };
+ };
+};
+
&xhci0 {
status = "okay";
};
--
2.52.0
^ permalink raw reply related [flat|nested] 15+ messages in thread
* [PATCH 07/12] arm64: dts: mediatek: mt8390-genio-common: Add HDMI sound output support
2025-12-09 16:34 [PATCH 00/12] Add HDMI support for Mediatek Genio 510/700/1200-EVK and Radxa NIO-12L boards Louis-Alexis Eyraud
` (5 preceding siblings ...)
2025-12-09 16:34 ` [PATCH 06/12] arm64: dts: mediatek: mt8390-genio-common: Enable HDMI output Louis-Alexis Eyraud
@ 2025-12-09 16:34 ` Louis-Alexis Eyraud
2025-12-09 16:34 ` [PATCH 08/12] arm64: dts: mediatek: mt8395-radxa-nio-12l: Enable HDMI output Louis-Alexis Eyraud
` (4 subsequent siblings)
11 siblings, 0 replies; 15+ messages in thread
From: Louis-Alexis Eyraud @ 2025-12-09 16:34 UTC (permalink / raw)
To: Chunfeng Yun, Vinod Koul, Neil Armstrong, Rob Herring,
Krzysztof Kozlowski, Conor Dooley, Matthias Brugger,
AngeloGioacchino Del Regno, Chun-Kuang Hu, Philipp Zabel,
Guillaume Ranquet
Cc: kernel, Krzysztof Kozlowski, linux-arm-kernel, linux-mediatek,
linux-phy, devicetree, linux-kernel, Louis-Alexis Eyraud
Add in the sound node a new dai-link for ETDM3_OUT_BE to add the sound
output support through the HDMI connector.
Signed-off-by: Louis-Alexis Eyraud <louisalexis.eyraud@collabora.com>
---
arch/arm64/boot/dts/mediatek/mt8390-genio-common.dtsi | 9 +++++++++
1 file changed, 9 insertions(+)
diff --git a/arch/arm64/boot/dts/mediatek/mt8390-genio-common.dtsi b/arch/arm64/boot/dts/mediatek/mt8390-genio-common.dtsi
index 5fa1f5fbad18f2bf9b153ae9a029829641e43023..2062506f6cc523d7797adc8b7e74732be9320201 100644
--- a/arch/arm64/boot/dts/mediatek/mt8390-genio-common.dtsi
+++ b/arch/arm64/boot/dts/mediatek/mt8390-genio-common.dtsi
@@ -1344,6 +1344,15 @@ codec {
sound-dai = <&dmic_codec>;
};
};
+
+ dai-link-2 {
+ link-name = "ETDM3_OUT_BE";
+
+ codec {
+ sound-dai = <&hdmi 0>;
+ };
+ };
+
};
&spi2 {
--
2.52.0
^ permalink raw reply related [flat|nested] 15+ messages in thread
* [PATCH 08/12] arm64: dts: mediatek: mt8395-radxa-nio-12l: Enable HDMI output
2025-12-09 16:34 [PATCH 00/12] Add HDMI support for Mediatek Genio 510/700/1200-EVK and Radxa NIO-12L boards Louis-Alexis Eyraud
` (6 preceding siblings ...)
2025-12-09 16:34 ` [PATCH 07/12] arm64: dts: mediatek: mt8390-genio-common: Add HDMI sound output support Louis-Alexis Eyraud
@ 2025-12-09 16:34 ` Louis-Alexis Eyraud
2025-12-09 16:34 ` [PATCH 09/12] arm64: dts: mediatek: mt8395-radxa-nio-12l: Add HDMI sound output support Louis-Alexis Eyraud
` (3 subsequent siblings)
11 siblings, 0 replies; 15+ messages in thread
From: Louis-Alexis Eyraud @ 2025-12-09 16:34 UTC (permalink / raw)
To: Chunfeng Yun, Vinod Koul, Neil Armstrong, Rob Herring,
Krzysztof Kozlowski, Conor Dooley, Matthias Brugger,
AngeloGioacchino Del Regno, Chun-Kuang Hu, Philipp Zabel,
Guillaume Ranquet
Cc: kernel, Krzysztof Kozlowski, linux-arm-kernel, linux-mediatek,
linux-phy, devicetree, linux-kernel, Louis-Alexis Eyraud
From: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
Add a definition for the on-board HDMI connector, enable and add
the relevant configuration for the HDMI PHY and controller, and
define the pins used by those.
Signed-off-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
Signed-off-by: Louis-Alexis Eyraud <louisalexis.eyraud@collabora.com>
---
.../boot/dts/mediatek/mt8395-radxa-nio-12l.dts | 142 +++++++++++++++++++++
1 file changed, 142 insertions(+)
diff --git a/arch/arm64/boot/dts/mediatek/mt8395-radxa-nio-12l.dts b/arch/arm64/boot/dts/mediatek/mt8395-radxa-nio-12l.dts
index d32f973f5e0528bc3233ff01f029006dbe6ef894..b0e18876bd5d2341c6f17f47e9f11433be807ccd 100644
--- a/arch/arm64/boot/dts/mediatek/mt8395-radxa-nio-12l.dts
+++ b/arch/arm64/boot/dts/mediatek/mt8395-radxa-nio-12l.dts
@@ -37,6 +37,20 @@ chosen {
stdout-path = "serial0:921600n8";
};
+ connector {
+ compatible = "hdmi-connector";
+ label = "hdmi";
+ type = "a";
+ ddc-i2c-bus = <&hdmitx_ddc>;
+ hdmi-pwr-supply = <&hdmi_phy>;
+
+ port {
+ hdmi_connector_in: endpoint {
+ remote-endpoint = <&hdmi0_out>;
+ };
+ };
+ };
+
firmware {
optee {
compatible = "linaro,optee-tz";
@@ -245,6 +259,18 @@ port@1 {
};
};
+&dpi1 {
+ status = "okay";
+};
+
+&dpi1_in {
+ remote-endpoint = <&merge5_out>;
+};
+
+&dpi1_out {
+ remote-endpoint = <&hdmi0_in>;
+};
+
ð {
phy-mode = "rgmii-rxid";
phy-handle = <&rgmii_phy>;
@@ -265,11 +291,61 @@ rgmii_phy: ethernet-phy@1 {
};
};
+ðdr0 {
+ ports {
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ port@0 {
+ #address-cells = <1>;
+ #size-cells = <0>;
+ reg = <0>;
+
+ ethdr0_in: endpoint@1 {
+ reg = <1>;
+ remote-endpoint = <&vdosys1_ep_ext>;
+ };
+ };
+
+ port@1 {
+ #address-cells = <1>;
+ #size-cells = <0>;
+ reg = <1>;
+
+ ethdr0_out: endpoint@1 {
+ reg = <1>;
+ remote-endpoint = <&merge5_in>;
+ };
+ };
+ };
+};
+
&gpu {
mali-supply = <&mt6315_7_vbuck1>;
status = "okay";
};
+&hdmi {
+ pinctrl-names = "default";
+ pinctrl-0 = <&hdmi_pins>;
+ status = "okay";
+};
+
+&hdmi0_in {
+ remote-endpoint = <&dpi1_out>;
+};
+
+&hdmi0_out {
+ remote-endpoint = <&hdmi_connector_in>;
+};
+
+&hdmi_phy {
+ pinctrl-names = "default";
+ pinctrl-0 = <&hdmi_vreg_pins>;
+
+ status = "okay";
+};
+
&i2c2 {
clock-frequency = <400000>;
pinctrl-0 = <&i2c2_pins>;
@@ -448,6 +524,35 @@ typec_con_mux: endpoint {
};
};
+&merge5 {
+ ports {
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ port@0 {
+ #address-cells = <1>;
+ #size-cells = <0>;
+ reg = <0>;
+
+ merge5_in: endpoint@1 {
+ reg = <1>;
+ remote-endpoint = <ðdr0_out>;
+ };
+ };
+
+ port@1 {
+ #address-cells = <1>;
+ #size-cells = <0>;
+ reg = <1>;
+
+ merge5_out: endpoint@1 {
+ reg = <1>;
+ remote-endpoint = <&dpi1_in>;
+ };
+ };
+ };
+};
+
&mfg0 {
domain-supply = <&mt6315_7_vbuck1>;
};
@@ -647,6 +752,31 @@ pins {
};
};
+ hdmi_vreg_pins: hdmi-vreg-pins {
+ pins-pwr {
+ pinmux = <PINMUX_GPIO31__FUNC_HDMITX20_PWR5V>;
+ bias-disable;
+ };
+ };
+
+ hdmi_pins: hdmi-pins {
+ pins-hotplug {
+ pinmux = <PINMUX_GPIO32__FUNC_HDMITX20_HTPLG>;
+ bias-pull-down;
+ };
+
+ pins-ddc {
+ pinmux = <PINMUX_GPIO34__FUNC_HDMITX20_SCL>,
+ <PINMUX_GPIO35__FUNC_HDMITX20_SDA>;
+ drive-strength = <10>;
+ };
+
+ pins-cec {
+ pinmux = <PINMUX_GPIO33__FUNC_HDMITX20_CEC>;
+ bias-disable;
+ };
+ };
+
i2c2_pins: i2c2-pins {
pins-bus {
pinmux = <PINMUX_GPIO12__FUNC_SDA2>,
@@ -1058,6 +1188,18 @@ &ssusb2 {
status = "okay";
};
+&vdosys1 {
+ port {
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ vdosys1_ep_ext: endpoint@1 {
+ reg = <1>;
+ remote-endpoint = <ðdr0_in>;
+ };
+ };
+};
+
&xhci0 {
vbus-supply = <&otg_vbus_regulator>;
status = "okay";
--
2.52.0
^ permalink raw reply related [flat|nested] 15+ messages in thread
* [PATCH 09/12] arm64: dts: mediatek: mt8395-radxa-nio-12l: Add HDMI sound output support
2025-12-09 16:34 [PATCH 00/12] Add HDMI support for Mediatek Genio 510/700/1200-EVK and Radxa NIO-12L boards Louis-Alexis Eyraud
` (7 preceding siblings ...)
2025-12-09 16:34 ` [PATCH 08/12] arm64: dts: mediatek: mt8395-radxa-nio-12l: Enable HDMI output Louis-Alexis Eyraud
@ 2025-12-09 16:34 ` Louis-Alexis Eyraud
2025-12-09 16:34 ` [PATCH 10/12] arm64: dts: mediatek: mt8395-genio-common: Enable HDMI output Louis-Alexis Eyraud
` (2 subsequent siblings)
11 siblings, 0 replies; 15+ messages in thread
From: Louis-Alexis Eyraud @ 2025-12-09 16:34 UTC (permalink / raw)
To: Chunfeng Yun, Vinod Koul, Neil Armstrong, Rob Herring,
Krzysztof Kozlowski, Conor Dooley, Matthias Brugger,
AngeloGioacchino Del Regno, Chun-Kuang Hu, Philipp Zabel,
Guillaume Ranquet
Cc: kernel, Krzysztof Kozlowski, linux-arm-kernel, linux-mediatek,
linux-phy, devicetree, linux-kernel, Louis-Alexis Eyraud
Add in the sound node a new dai-link for ETDM3_OUT_BE to add the sound
output support through the HDMI TX connector.
Signed-off-by: Louis-Alexis Eyraud <louisalexis.eyraud@collabora.com>
---
arch/arm64/boot/dts/mediatek/mt8395-radxa-nio-12l.dts | 8 ++++++++
1 file changed, 8 insertions(+)
diff --git a/arch/arm64/boot/dts/mediatek/mt8395-radxa-nio-12l.dts b/arch/arm64/boot/dts/mediatek/mt8395-radxa-nio-12l.dts
index b0e18876bd5d2341c6f17f47e9f11433be807ccd..1cd4b84e98615be6c5cb13d01b7baed0e017c3be 100644
--- a/arch/arm64/boot/dts/mediatek/mt8395-radxa-nio-12l.dts
+++ b/arch/arm64/boot/dts/mediatek/mt8395-radxa-nio-12l.dts
@@ -1072,6 +1072,14 @@ codec {
sound-dai = <&pmic 0>;
};
};
+
+ hdmi-dai-link {
+ link-name = "ETDM3_OUT_BE";
+
+ codec {
+ sound-dai = <&hdmi 0>;
+ };
+ };
};
&spi1 {
--
2.52.0
^ permalink raw reply related [flat|nested] 15+ messages in thread
* [PATCH 10/12] arm64: dts: mediatek: mt8395-genio-common: Enable HDMI output
2025-12-09 16:34 [PATCH 00/12] Add HDMI support for Mediatek Genio 510/700/1200-EVK and Radxa NIO-12L boards Louis-Alexis Eyraud
` (8 preceding siblings ...)
2025-12-09 16:34 ` [PATCH 09/12] arm64: dts: mediatek: mt8395-radxa-nio-12l: Add HDMI sound output support Louis-Alexis Eyraud
@ 2025-12-09 16:34 ` Louis-Alexis Eyraud
2025-12-09 16:34 ` [PATCH 11/12] arm64: dts: mediatek: mt8395-genio-common: Add HDMI sound output support Louis-Alexis Eyraud
2025-12-09 16:34 ` [PATCH 12/12] arm64: defconfig: Enable Mediatek HDMIv2 driver Louis-Alexis Eyraud
11 siblings, 0 replies; 15+ messages in thread
From: Louis-Alexis Eyraud @ 2025-12-09 16:34 UTC (permalink / raw)
To: Chunfeng Yun, Vinod Koul, Neil Armstrong, Rob Herring,
Krzysztof Kozlowski, Conor Dooley, Matthias Brugger,
AngeloGioacchino Del Regno, Chun-Kuang Hu, Philipp Zabel,
Guillaume Ranquet
Cc: kernel, Krzysztof Kozlowski, linux-arm-kernel, linux-mediatek,
linux-phy, devicetree, linux-kernel, Louis-Alexis Eyraud
Add a definition for the on-board HDMI connector, enable and add
the relevant configuration for the HDMI PHY and controller, and
define the pins used by those.
Signed-off-by: Louis-Alexis Eyraud <louisalexis.eyraud@collabora.com>
---
.../boot/dts/mediatek/mt8395-genio-common.dtsi | 142 +++++++++++++++++++++
1 file changed, 142 insertions(+)
diff --git a/arch/arm64/boot/dts/mediatek/mt8395-genio-common.dtsi b/arch/arm64/boot/dts/mediatek/mt8395-genio-common.dtsi
index 2b7167804e71d0ced33c048ecb2040667b5fece1..345fc5ac9e039de8660ae325f36ae6265ef3a7c8 100644
--- a/arch/arm64/boot/dts/mediatek/mt8395-genio-common.dtsi
+++ b/arch/arm64/boot/dts/mediatek/mt8395-genio-common.dtsi
@@ -26,6 +26,20 @@ chosen {
stdout-path = "serial0:921600n8";
};
+ connector {
+ compatible = "hdmi-connector";
+ label = "hdmi";
+ type = "a";
+ ddc-i2c-bus = <&hdmitx_ddc>;
+ hdmi-pwr-supply = <&hdmi_phy>;
+
+ port {
+ hdmi_connector_in: endpoint {
+ remote-endpoint = <&hdmi0_out>;
+ };
+ };
+ };
+
firmware {
optee {
compatible = "linaro,optee-tz";
@@ -247,6 +261,18 @@ &dmic_codec {
wakeup-delay-ms = <200>;
};
+&dpi1 {
+ status = "okay";
+};
+
+&dpi1_in {
+ remote-endpoint = <&merge5_out>;
+};
+
+&dpi1_out {
+ remote-endpoint = <&hdmi0_in>;
+};
+
&dsi0 {
#address-cells = <1>;
#size-cells = <0>;
@@ -313,6 +339,35 @@ eth_phy0: ethernet-phy@1 {
};
};
+ðdr0 {
+ ports {
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ port@0 {
+ #address-cells = <1>;
+ #size-cells = <0>;
+ reg = <0>;
+
+ ethdr0_in: endpoint@1 {
+ reg = <1>;
+ remote-endpoint = <&vdosys1_ep_ext>;
+ };
+ };
+
+ port@1 {
+ #address-cells = <1>;
+ #size-cells = <0>;
+ reg = <1>;
+
+ ethdr0_out: endpoint@1 {
+ reg = <1>;
+ remote-endpoint = <&merge5_in>;
+ };
+ };
+ };
+};
+
&gamma0_out {
remote-endpoint = <&dither0_in>;
};
@@ -329,6 +384,27 @@ &i2c0 {
status = "okay";
};
+&hdmi {
+ pinctrl-names = "default";
+ pinctrl-0 = <&hdmi_pins>;
+ status = "okay";
+};
+
+&hdmi0_in {
+ remote-endpoint = <&dpi1_out>;
+};
+
+&hdmi0_out {
+ remote-endpoint = <&hdmi_connector_in>;
+};
+
+&hdmi_phy {
+ pinctrl-names = "default";
+ pinctrl-0 = <&hdmi_vreg_pins>;
+
+ status = "okay";
+};
+
&i2c1 {
clock-frequency = <400000>;
pinctrl-0 = <&i2c1_pins>;
@@ -533,6 +609,35 @@ mt6360_ssusb_sbu_ep: endpoint {
};
};
+&merge5 {
+ ports {
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ port@0 {
+ #address-cells = <1>;
+ #size-cells = <0>;
+ reg = <0>;
+
+ merge5_in: endpoint@1 {
+ reg = <1>;
+ remote-endpoint = <ðdr0_out>;
+ };
+ };
+
+ port@1 {
+ #address-cells = <1>;
+ #size-cells = <0>;
+ reg = <1>;
+
+ merge5_out: endpoint@1 {
+ reg = <1>;
+ remote-endpoint = <&dpi1_in>;
+ };
+ };
+ };
+};
+
&mfg0 {
domain-supply = <&mt6315_7_vbuck1>;
};
@@ -762,6 +867,31 @@ pins {
};
};
+ hdmi_vreg_pins: hdmi-vreg-pins {
+ pins-pwr {
+ pinmux = <PINMUX_GPIO31__FUNC_HDMITX20_PWR5V>;
+ bias-disable;
+ };
+ };
+
+ hdmi_pins: hdmi-pins {
+ pins-hotplug {
+ pinmux = <PINMUX_GPIO32__FUNC_HDMITX20_HTPLG>;
+ bias-pull-down;
+ };
+
+ pins-ddc {
+ pinmux = <PINMUX_GPIO34__FUNC_HDMITX20_SCL>,
+ <PINMUX_GPIO35__FUNC_HDMITX20_SDA>;
+ drive-strength = <10>;
+ };
+
+ pins-cec {
+ pinmux = <PINMUX_GPIO33__FUNC_HDMITX20_CEC>;
+ bias-disable;
+ };
+ };
+
i2c0_pins: i2c0-pins {
pins {
pinmux = <PINMUX_GPIO8__FUNC_SDA0>,
@@ -1212,6 +1342,18 @@ vdosys0_ep_main: endpoint@0 {
};
};
+&vdosys1 {
+ port {
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ vdosys1_ep_ext: endpoint@1 {
+ reg = <1>;
+ remote-endpoint = <ðdr0_in>;
+ };
+ };
+};
+
&xhci0 {
status = "okay";
};
--
2.52.0
^ permalink raw reply related [flat|nested] 15+ messages in thread
* [PATCH 11/12] arm64: dts: mediatek: mt8395-genio-common: Add HDMI sound output support
2025-12-09 16:34 [PATCH 00/12] Add HDMI support for Mediatek Genio 510/700/1200-EVK and Radxa NIO-12L boards Louis-Alexis Eyraud
` (9 preceding siblings ...)
2025-12-09 16:34 ` [PATCH 10/12] arm64: dts: mediatek: mt8395-genio-common: Enable HDMI output Louis-Alexis Eyraud
@ 2025-12-09 16:34 ` Louis-Alexis Eyraud
2025-12-09 16:34 ` [PATCH 12/12] arm64: defconfig: Enable Mediatek HDMIv2 driver Louis-Alexis Eyraud
11 siblings, 0 replies; 15+ messages in thread
From: Louis-Alexis Eyraud @ 2025-12-09 16:34 UTC (permalink / raw)
To: Chunfeng Yun, Vinod Koul, Neil Armstrong, Rob Herring,
Krzysztof Kozlowski, Conor Dooley, Matthias Brugger,
AngeloGioacchino Del Regno, Chun-Kuang Hu, Philipp Zabel,
Guillaume Ranquet
Cc: kernel, Krzysztof Kozlowski, linux-arm-kernel, linux-mediatek,
linux-phy, devicetree, linux-kernel, Louis-Alexis Eyraud
Add in the sound node a new dai-link for ETDM3_OUT_BE to add the sound
output support through the HDMI TX connector.
Signed-off-by: Louis-Alexis Eyraud <louisalexis.eyraud@collabora.com>
---
arch/arm64/boot/dts/mediatek/mt8395-genio-common.dtsi | 8 ++++++++
1 file changed, 8 insertions(+)
diff --git a/arch/arm64/boot/dts/mediatek/mt8395-genio-common.dtsi b/arch/arm64/boot/dts/mediatek/mt8395-genio-common.dtsi
index 345fc5ac9e039de8660ae325f36ae6265ef3a7c8..d849af4d36134df6a7b9f7967efd0db13c372d7a 100644
--- a/arch/arm64/boot/dts/mediatek/mt8395-genio-common.dtsi
+++ b/arch/arm64/boot/dts/mediatek/mt8395-genio-common.dtsi
@@ -1189,6 +1189,14 @@ codec {
sound-dai = <&pmic 0>;
};
};
+
+ hdmi-dai-link {
+ link-name = "ETDM3_OUT_BE";
+
+ codec {
+ sound-dai = <&hdmi 0>;
+ };
+ };
};
&spi1 {
--
2.52.0
^ permalink raw reply related [flat|nested] 15+ messages in thread
* [PATCH 12/12] arm64: defconfig: Enable Mediatek HDMIv2 driver
2025-12-09 16:34 [PATCH 00/12] Add HDMI support for Mediatek Genio 510/700/1200-EVK and Radxa NIO-12L boards Louis-Alexis Eyraud
` (10 preceding siblings ...)
2025-12-09 16:34 ` [PATCH 11/12] arm64: dts: mediatek: mt8395-genio-common: Add HDMI sound output support Louis-Alexis Eyraud
@ 2025-12-09 16:34 ` Louis-Alexis Eyraud
11 siblings, 0 replies; 15+ messages in thread
From: Louis-Alexis Eyraud @ 2025-12-09 16:34 UTC (permalink / raw)
To: Chunfeng Yun, Vinod Koul, Neil Armstrong, Rob Herring,
Krzysztof Kozlowski, Conor Dooley, Matthias Brugger,
AngeloGioacchino Del Regno, Chun-Kuang Hu, Philipp Zabel,
Guillaume Ranquet
Cc: kernel, Krzysztof Kozlowski, linux-arm-kernel, linux-mediatek,
linux-phy, devicetree, linux-kernel, Louis-Alexis Eyraud
In order to enable the HDMI output support on Mediatek Genio 510-EVK,
700-EVK, and 1200-EVK boards, enable the driver for it in the default
configuration.
Signed-off-by: Louis-Alexis Eyraud <louisalexis.eyraud@collabora.com>
---
arch/arm64/configs/defconfig | 1 +
1 file changed, 1 insertion(+)
diff --git a/arch/arm64/configs/defconfig b/arch/arm64/configs/defconfig
index cdb7d69e3b248975557e141481a88fd86115cf40..24c1670e5bfd4ed0902d5440d43fdb4e5dd676f1 100644
--- a/arch/arm64/configs/defconfig
+++ b/arch/arm64/configs/defconfig
@@ -1015,6 +1015,7 @@ CONFIG_DRM_HISI_KIRIN=m
CONFIG_DRM_MEDIATEK=m
CONFIG_DRM_MEDIATEK_DP=m
CONFIG_DRM_MEDIATEK_HDMI=m
+CONFIG_DRM_MEDIATEK_HDMI_V2=m
CONFIG_DRM_MXSFB=m
CONFIG_DRM_IMX_LCDIF=m
CONFIG_DRM_MESON=m
--
2.52.0
^ permalink raw reply related [flat|nested] 15+ messages in thread
* Re: [PATCH 01/12] dt-bindings: phy: mediatek,hdmi-phy: Fix clock output names for MT8195
2025-12-09 16:34 ` [PATCH 01/12] dt-bindings: phy: mediatek,hdmi-phy: Fix clock output names for MT8195 Louis-Alexis Eyraud
@ 2025-12-10 21:13 ` Rob Herring (Arm)
0 siblings, 0 replies; 15+ messages in thread
From: Rob Herring (Arm) @ 2025-12-10 21:13 UTC (permalink / raw)
To: Louis-Alexis Eyraud
Cc: Matthias Brugger, linux-mediatek, Vinod Koul,
AngeloGioacchino Del Regno, Neil Armstrong, linux-arm-kernel,
devicetree, Conor Dooley, Chun-Kuang Hu, kernel,
Krzysztof Kozlowski, linux-phy, Philipp Zabel, Chunfeng Yun,
linux-kernel, Krzysztof Kozlowski, Guillaume Ranquet
On Tue, 09 Dec 2025 17:34:31 +0100, Louis-Alexis Eyraud wrote:
> From: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
>
> For all of the HDMI PHYs compatible with the one found on MT8195
> the output clock has a different datasheet name and specifically
> it is called "hdmi_txpll", differently from the older HDMI PHYs
> which output block is called "hdmitx_dig_cts".
>
> Replace clock output name string check by max item number one to allow
> the new name on all of the HDMI PHY IPs that are perfectly compatible
> with MT8195.
>
> Fixes: c78fe548b062 ("dt-bindings: phy: mediatek: hdmi-phy: Add mt8195 compatible")
> Signed-off-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
> [Louis-Alexis Eyraud: splitted patch, addressed previous feedback from
> mailing list, and reworded description]
> Signed-off-by: Louis-Alexis Eyraud <louisalexis.eyraud@collabora.com>
> ---
> Documentation/devicetree/bindings/phy/mediatek,hdmi-phy.yaml | 3 +--
> 1 file changed, 1 insertion(+), 2 deletions(-)
>
Reviewed-by: Rob Herring (Arm) <robh@kernel.org>
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [PATCH 03/12] dt-bindings: phy: mediatek,hdmi-phy: Document extra clocks for MT8195
2025-12-09 16:34 ` [PATCH 03/12] dt-bindings: phy: mediatek,hdmi-phy: Document extra clocks for MT8195 Louis-Alexis Eyraud
@ 2025-12-10 21:19 ` Rob Herring
0 siblings, 0 replies; 15+ messages in thread
From: Rob Herring @ 2025-12-10 21:19 UTC (permalink / raw)
To: Louis-Alexis Eyraud
Cc: Chunfeng Yun, Vinod Koul, Neil Armstrong, Krzysztof Kozlowski,
Conor Dooley, Matthias Brugger, AngeloGioacchino Del Regno,
Chun-Kuang Hu, Philipp Zabel, Guillaume Ranquet, kernel,
Krzysztof Kozlowski, linux-arm-kernel, linux-mediatek, linux-phy,
devicetree, linux-kernel, Nícolas F. R. A. Prado
On Tue, Dec 09, 2025 at 05:34:33PM +0100, Louis-Alexis Eyraud wrote:
> From: "Nícolas F. R. A. Prado" <nfraprado@collabora.com>
>
> MT8195's HDMI PHY block has 4 clocks instead of just a single one.
> Describe the extra clocks for it.
>
> Signed-off-by: Nícolas F. R. A. Prado <nfraprado@collabora.com>
> Signed-off-by: Louis-Alexis Eyraud <louisalexis.eyraud@collabora.com>
> ---
> .../devicetree/bindings/phy/mediatek,hdmi-phy.yaml | 36 +++++++++++++++++++---
> 1 file changed, 32 insertions(+), 4 deletions(-)
>
> diff --git a/Documentation/devicetree/bindings/phy/mediatek,hdmi-phy.yaml b/Documentation/devicetree/bindings/phy/mediatek,hdmi-phy.yaml
> index cd4ac42ee45e4648ed512f68f6f28d1f3f2e1116..91f8118689d5e838c4d75264822bb09a00fea21b 100644
> --- a/Documentation/devicetree/bindings/phy/mediatek,hdmi-phy.yaml
> +++ b/Documentation/devicetree/bindings/phy/mediatek,hdmi-phy.yaml
> @@ -38,12 +38,12 @@ properties:
> maxItems: 1
>
> clocks:
> - items:
> - - description: PLL reference clock
> + minItems: 1
> + maxItems: 4
>
> clock-names:
> - items:
> - - const: pll_ref
> + minItems: 1
> + maxItems: 4
>
> clock-output-names:
> maxItems: 1
> @@ -79,6 +79,34 @@ required:
> - "#phy-cells"
> - "#clock-cells"
>
> +allOf:
> + - if:
> + properties:
> + compatible:
> + const: mediatek,mt8195-hdmi-phy
You just said mt8188 is compatible, but it's excluded here. If mt8188
can work without knowing about the 3 new clocks (and no driver changes),
then it is compatible .
> + then:
> + properties:
> + clocks:
> + items:
> + - description: PLL reference clock
> + - description: HDMI 26MHz clock
> + - description: HDMI PLL1 clock
> + - description: HDMI PLL2 clock
> + clock-names:
> + items:
> + - const: pll_ref
> + - const: hdmi_26m
> + - const: hdmi_pll1
> + - const: hdmi_pll2
Move all this to the top-level (so just add entries 2-4) and add
'minItems: 1'. Here, just put 'minItems: 4' except that I assume it did
work with 1 clock, so requiring 4 breaks the ABI.
Also, drop 'hdmi_'. It's redundant.
> + else:
> + properties:
> + clocks:
> + items:
> + - description: PLL reference clock
> + clock-names:
> + items:
> + - const: pll_ref
And here, just 'maxItems: 1'
> +
> additionalProperties: false
>
> examples:
>
> --
> 2.52.0
>
^ permalink raw reply [flat|nested] 15+ messages in thread
end of thread, other threads:[~2025-12-10 21:19 UTC | newest]
Thread overview: 15+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-12-09 16:34 [PATCH 00/12] Add HDMI support for Mediatek Genio 510/700/1200-EVK and Radxa NIO-12L boards Louis-Alexis Eyraud
2025-12-09 16:34 ` [PATCH 01/12] dt-bindings: phy: mediatek,hdmi-phy: Fix clock output names for MT8195 Louis-Alexis Eyraud
2025-12-10 21:13 ` Rob Herring (Arm)
2025-12-09 16:34 ` [PATCH 02/12] dt-bindings: phy: mediatek,hdmi-phy: Add support for MT8188 SoC Louis-Alexis Eyraud
2025-12-09 16:34 ` [PATCH 03/12] dt-bindings: phy: mediatek,hdmi-phy: Document extra clocks for MT8195 Louis-Alexis Eyraud
2025-12-10 21:19 ` Rob Herring
2025-12-09 16:34 ` [PATCH 04/12] arm64: dts: mediatek: mt8195: Add DPI1, HDMI, HDMI PHY/DDC nodes Louis-Alexis Eyraud
2025-12-09 16:34 ` [PATCH 05/12] arm64: dts: mediatek: mt8188: " Louis-Alexis Eyraud
2025-12-09 16:34 ` [PATCH 06/12] arm64: dts: mediatek: mt8390-genio-common: Enable HDMI output Louis-Alexis Eyraud
2025-12-09 16:34 ` [PATCH 07/12] arm64: dts: mediatek: mt8390-genio-common: Add HDMI sound output support Louis-Alexis Eyraud
2025-12-09 16:34 ` [PATCH 08/12] arm64: dts: mediatek: mt8395-radxa-nio-12l: Enable HDMI output Louis-Alexis Eyraud
2025-12-09 16:34 ` [PATCH 09/12] arm64: dts: mediatek: mt8395-radxa-nio-12l: Add HDMI sound output support Louis-Alexis Eyraud
2025-12-09 16:34 ` [PATCH 10/12] arm64: dts: mediatek: mt8395-genio-common: Enable HDMI output Louis-Alexis Eyraud
2025-12-09 16:34 ` [PATCH 11/12] arm64: dts: mediatek: mt8395-genio-common: Add HDMI sound output support Louis-Alexis Eyraud
2025-12-09 16:34 ` [PATCH 12/12] arm64: defconfig: Enable Mediatek HDMIv2 driver Louis-Alexis Eyraud
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).