arm64: dts: mediatek: mt8183-pumpkin: add HDMI support
authorFabien Parent <fparent@baylibre.com>
Thu, 19 Sep 2024 09:41:49 +0000 (17:41 +0800)
committerAngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
Wed, 2 Oct 2024 09:18:27 +0000 (11:18 +0200)
The MT8183 Pumpkin board has a micro-HDMI connector. HDMI support is
provided by an IT66121 DPI <-> HDMI bridge.

Enable the DPI and add the node for the IT66121 bridge.

Signed-off-by: Fabien Parent <fparent@baylibre.com>
Co-developed-by: Pin-yen Lin <treapking@chromium.org>
Signed-off-by: Pin-yen Lin <treapking@chromium.org>
Reviewed-by: NĂ­colas F. R. A. Prado <nfraprado@collabora.com>
Link: https://lore.kernel.org/r/20240919094212.1902073-1-treapking@chromium.org
Signed-off-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
arch/arm64/boot/dts/mediatek/mt8183-pumpkin.dts

index 1aa668c3ccf9285ccc33aacb16d1c68c491475e2..61a6f66914b86d3a882f50939b8d0e18dacb34e1 100644 (file)
                pulldown-ohm = <0>;
                io-channels = <&auxadc 0>;
        };
+
+       connector {
+               compatible = "hdmi-connector";
+               label = "hdmi";
+               type = "d";
+
+               port {
+                       hdmi_connector_in: endpoint {
+                               remote-endpoint = <&hdmi_connector_out>;
+                       };
+               };
+       };
 };
 
 &auxadc {
        pinctrl-0 = <&i2c6_pins>;
        status = "okay";
        clock-frequency = <100000>;
+       #address-cells = <1>;
+       #size-cells = <0>;
+
+       it66121hdmitx: hdmitx@4c {
+               compatible = "ite,it66121";
+               reg = <0x4c>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&ite_pins>;
+               reset-gpios = <&pio 160 GPIO_ACTIVE_LOW>;
+               interrupt-parent = <&pio>;
+               interrupts = <4 IRQ_TYPE_LEVEL_LOW>;
+               vcn33-supply = <&mt6358_vcn33_reg>;
+               vcn18-supply = <&mt6358_vcn18_reg>;
+               vrf12-supply = <&mt6358_vrf12_reg>;
+
+               ports {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+
+                       port@0 {
+                               reg = <0>;
+
+                               it66121_in: endpoint {
+                                       bus-width = <12>;
+                                       remote-endpoint = <&dpi_out>;
+                               };
+                       };
+
+                       port@1 {
+                               reg = <1>;
+
+                               hdmi_connector_out: endpoint {
+                                       remote-endpoint = <&hdmi_connector_in>;
+                               };
+                       };
+               };
+       };
 };
 
 &keyboard {
                        input-enable;
                };
        };
+
+       ite_pins: ite-pins {
+               pins-irq {
+                       pinmux = <PINMUX_GPIO4__FUNC_GPIO4>;
+                       input-enable;
+                       bias-pull-up;
+               };
+
+               pins-rst {
+                       pinmux = <PINMUX_GPIO160__FUNC_GPIO160>;
+                       output-high;
+               };
+       };
+
+       dpi_func_pins: dpi-func-pins {
+               pins-dpi {
+                       pinmux = <PINMUX_GPIO12__FUNC_I2S5_BCK>,
+                                <PINMUX_GPIO46__FUNC_I2S5_LRCK>,
+                                <PINMUX_GPIO47__FUNC_I2S5_DO>,
+                                <PINMUX_GPIO13__FUNC_DBPI_D0>,
+                                <PINMUX_GPIO14__FUNC_DBPI_D1>,
+                                <PINMUX_GPIO15__FUNC_DBPI_D2>,
+                                <PINMUX_GPIO16__FUNC_DBPI_D3>,
+                                <PINMUX_GPIO17__FUNC_DBPI_D4>,
+                                <PINMUX_GPIO18__FUNC_DBPI_D5>,
+                                <PINMUX_GPIO19__FUNC_DBPI_D6>,
+                                <PINMUX_GPIO20__FUNC_DBPI_D7>,
+                                <PINMUX_GPIO21__FUNC_DBPI_D8>,
+                                <PINMUX_GPIO22__FUNC_DBPI_D9>,
+                                <PINMUX_GPIO23__FUNC_DBPI_D10>,
+                                <PINMUX_GPIO24__FUNC_DBPI_D11>,
+                                <PINMUX_GPIO25__FUNC_DBPI_HSYNC>,
+                                <PINMUX_GPIO26__FUNC_DBPI_VSYNC>,
+                                <PINMUX_GPIO27__FUNC_DBPI_DE>,
+                                <PINMUX_GPIO28__FUNC_DBPI_CK>;
+               };
+       };
+
+       dpi_idle_pins: dpi-idle-pins {
+               pins-idle {
+                       pinmux = <PINMUX_GPIO12__FUNC_GPIO12>,
+                                <PINMUX_GPIO46__FUNC_GPIO46>,
+                                <PINMUX_GPIO47__FUNC_GPIO47>,
+                                <PINMUX_GPIO13__FUNC_GPIO13>,
+                                <PINMUX_GPIO14__FUNC_GPIO14>,
+                                <PINMUX_GPIO15__FUNC_GPIO15>,
+                                <PINMUX_GPIO16__FUNC_GPIO16>,
+                                <PINMUX_GPIO17__FUNC_GPIO17>,
+                                <PINMUX_GPIO18__FUNC_GPIO18>,
+                                <PINMUX_GPIO19__FUNC_GPIO19>,
+                                <PINMUX_GPIO20__FUNC_GPIO20>,
+                                <PINMUX_GPIO21__FUNC_GPIO21>,
+                                <PINMUX_GPIO22__FUNC_GPIO22>,
+                                <PINMUX_GPIO23__FUNC_GPIO23>,
+                                <PINMUX_GPIO24__FUNC_GPIO24>,
+                                <PINMUX_GPIO25__FUNC_GPIO25>,
+                                <PINMUX_GPIO26__FUNC_GPIO26>,
+                                <PINMUX_GPIO27__FUNC_GPIO27>,
+                                <PINMUX_GPIO28__FUNC_GPIO28>;
+               };
+       };
 };
 
 &pmic {
 &dsi0 {
        status = "disabled";
 };
+
+&dpi0 {
+       pinctrl-names = "default", "sleep";
+       pinctrl-0 = <&dpi_func_pins>;
+       pinctrl-1 = <&dpi_idle_pins>;
+       status = "okay";
+
+       port {
+               dpi_out: endpoint {
+                       remote-endpoint = <&it66121_in>;
+               };
+       };
+};