hdmirx: pinmux later so as to prevent abnormal hpd pulse [1/1]
authorHang Cheng <hang.cheng@amlogic.com>
Thu, 10 Oct 2019 08:49:23 +0000 (16:49 +0800)
committerTao Zeng <tao.zeng@amlogic.com>
Sat, 12 Oct 2019 08:09:04 +0000 (01:09 -0700)
PD#SWPL-15003

Problem:
There's a pull high pulse of hpd when bootup. Reason:
pinctl-names is set "default" in dts, when bootup,
hdmirx related pinmux will be set by device driver
which is before hdmirx probe. As hpd pin of ic is
default low, after reverse by triode, it will output
high on hdmi receptacle. And after hdmirx probe, hpd
invertion will be enabled before finally output from
ic, so it will become normally low again on hdmi
receptacle. So there's a pull high pulse(1~4ms) output.

Solution:
GPIOW is high(1.4V) before pinmux, so hpd pin of receptacle
is low before pinmux. Need to enable hpd invertion before
GPIOW is muxed to hpd function. the way to delay pinmux
is to change pinctrl-names of dts from default to others.

Verify:
TL1

Change-Id: Ica54484fa4c3da46e7b1ddc72a3c5f44fd4a71f6
Signed-off-by: Hang Cheng <hang.cheng@amlogic.com>
24 files changed:
arch/arm/boot/dts/amlogic/tl1_pxp.dts
arch/arm/boot/dts/amlogic/tl1_t962x2_skt.dts
arch/arm/boot/dts/amlogic/tl1_t962x2_t309.dts
arch/arm/boot/dts/amlogic/tl1_t962x2_x301_1g.dts
arch/arm/boot/dts/amlogic/tl1_t962x2_x301_1g_drm.dts
arch/arm/boot/dts/amlogic/tl1_t962x2_x301_2g.dts
arch/arm/boot/dts/amlogic/tl1_t962x2_x301_2g_drm.dts
arch/arm/boot/dts/amlogic/tm2_pxp.dts
arch/arm/boot/dts/amlogic/tm2_t962e2_ab311.dts
arch/arm/boot/dts/amlogic/tm2_t962e2_ab319.dts
arch/arm/boot/dts/amlogic/tm2_t962x3_ab301.dts
arch/arm/boot/dts/amlogic/tm2_t962x3_ab309.dts
arch/arm/boot/dts/amlogic/tm2_t962x3_t312.dts
arch/arm64/boot/dts/amlogic/tl1_t962x2_t309.dts
arch/arm64/boot/dts/amlogic/tl1_t962x2_x301_1g.dts
arch/arm64/boot/dts/amlogic/tl1_t962x2_x301_1g_drm.dts
arch/arm64/boot/dts/amlogic/tl1_t962x2_x301_2g.dts
arch/arm64/boot/dts/amlogic/tl1_t962x2_x301_2g_drm.dts
arch/arm64/boot/dts/amlogic/tm2_pxp.dts
arch/arm64/boot/dts/amlogic/tm2_t962e2_ab311.dts
arch/arm64/boot/dts/amlogic/tm2_t962e2_ab319.dts
arch/arm64/boot/dts/amlogic/tm2_t962x3_ab301.dts
arch/arm64/boot/dts/amlogic/tm2_t962x3_ab309.dts
arch/arm64/boot/dts/amlogic/tm2_t962x3_t312.dts

index 2bc492c..070ace6 100644 (file)
                #size-cells=<1>;
                memory-region = <&hdmirx_emp_cma_reserved>;
                status = "okay";
-               pinctrl-names = "default";
+               pinctrl-names = "hdmirx_pins";
                pinctrl-0 = <&hdmirx_a_mux &hdmirx_b_mux
                        &hdmirx_c_mux>;
                repeat = <0>;
index 769b910..93309e6 100644 (file)
                #size-cells=<1>;
                memory-region = <&hdmirx_emp_cma_reserved>;
                status = "okay";
-               pinctrl-names = "default";
+               pinctrl-names = "hdmirx_pins";
                pinctrl-0 = <&hdmirx_a_mux &hdmirx_b_mux
                        &hdmirx_c_mux>;
                repeat = <0>;
index b22f1b4..351483f 100644 (file)
                #size-cells=<1>;
                memory-region = <&hdmirx_emp_cma_reserved>;
                status = "okay";
-               pinctrl-names = "default";
+               pinctrl-names = "hdmirx_pins";
                pinctrl-0 = <&hdmirx_a_mux &hdmirx_b_mux
                        &hdmirx_c_mux>;
                repeat = <0>;
index 1fe3dcc..e9a56e2 100644 (file)
                #size-cells=<1>;
                memory-region = <&hdmirx_emp_cma_reserved>;
                status = "okay";
-               pinctrl-names = "default";
+               pinctrl-names = "hdmirx_pins";
                pinctrl-0 = <&hdmirx_a_mux &hdmirx_b_mux
                        &hdmirx_c_mux>;
                repeat = <0>;
index d042d2f..a559538 100644 (file)
                #size-cells=<1>;
                memory-region = <&hdmirx_emp_cma_reserved>;
                status = "okay";
-               pinctrl-names = "default";
+               pinctrl-names = "hdmirx_pins";
                pinctrl-0 = <&hdmirx_a_mux &hdmirx_b_mux
                        &hdmirx_c_mux>;
                repeat = <0>;
index 7a06605..d25d87c 100644 (file)
                #size-cells=<1>;
                memory-region = <&hdmirx_emp_cma_reserved>;
                status = "okay";
-               pinctrl-names = "default";
+               pinctrl-names = "hdmirx_pins";
                pinctrl-0 = <&hdmirx_a_mux &hdmirx_b_mux
                        &hdmirx_c_mux>;
                repeat = <0>;
index 02c3c78..b1006f8 100644 (file)
                #size-cells=<1>;
                memory-region = <&hdmirx_emp_cma_reserved>;
                status = "okay";
-               pinctrl-names = "default";
+               pinctrl-names = "hdmirx_pins";
                pinctrl-0 = <&hdmirx_a_mux &hdmirx_b_mux
                        &hdmirx_c_mux>;
                repeat = <0>;
index 34910ea..739c2a5 100644 (file)
                #size-cells=<1>;
                memory-region = <&hdmirx_emp_cma_reserved>;
                status = "okay";
-               pinctrl-names = "default";
+               pinctrl-names = "hdmirx_pins";
                pinctrl-0 = <&hdmirx_a_mux &hdmirx_b_mux
                        &hdmirx_c_mux>;
                repeat = <0>;
index ef9dabb..2428ec7 100644 (file)
                #size-cells=<1>;
                memory-region = <&hdmirx_emp_cma_reserved>;
                status = "okay";
-               pinctrl-names = "default";
+               pinctrl-names = "hdmirx_pins";
                pinctrl-0 = <&hdmirx_a_mux &hdmirx_b_mux
                        &hdmirx_c_mux>;
                repeat = <0>;
index d728aa6..2452c87 100644 (file)
                #size-cells=<1>;
                memory-region = <&hdmirx_emp_cma_reserved>;
                status = "okay";
-               pinctrl-names = "default";
+               pinctrl-names = "hdmirx_pins";
                pinctrl-0 = <&hdmirx_a_mux &hdmirx_b_mux
                        &hdmirx_c_mux>;
                repeat = <0>;
index c9342f1..31e9d0c 100644 (file)
                #size-cells=<1>;
                memory-region = <&hdmirx_emp_cma_reserved>;
                status = "okay";
-               pinctrl-names = "default";
+               pinctrl-names = "hdmirx_pins";
                pinctrl-0 = <&hdmirx_a_mux &hdmirx_b_mux
                        &hdmirx_c_mux>;
                repeat = <0>;
index 78d8627..79440ee 100644 (file)
                #size-cells=<1>;
                memory-region = <&hdmirx_emp_cma_reserved>;
                status = "okay";
-               pinctrl-names = "default";
+               pinctrl-names = "hdmirx_pins";
                pinctrl-0 = <&hdmirx_a_mux &hdmirx_b_mux
                        &hdmirx_c_mux>;
                repeat = <0>;
index b38f50a..e20277b 100644 (file)
                #size-cells=<1>;
                memory-region = <&hdmirx_emp_cma_reserved>;
                status = "okay";
-               pinctrl-names = "default";
+               pinctrl-names = "hdmirx_pins";
                pinctrl-0 = <&hdmirx_a_mux &hdmirx_b_mux
                        &hdmirx_c_mux>;
                repeat = <0>;
index 9118312..831b75f 100644 (file)
                #size-cells=<1>;
                memory-region = <&hdmirx_emp_cma_reserved>;
                status = "okay";
-               pinctrl-names = "default";
+               pinctrl-names = "hdmirx_pins";
                pinctrl-0 = <&hdmirx_a_mux &hdmirx_b_mux
                        &hdmirx_c_mux>;
                repeat = <0>;
index 3fe9871..dbb0f56 100644 (file)
                #size-cells=<1>;
                memory-region = <&hdmirx_emp_cma_reserved>;
                status = "okay";
-               pinctrl-names = "default";
+               pinctrl-names = "hdmirx_pins";
                pinctrl-0 = <&hdmirx_a_mux &hdmirx_b_mux
                        &hdmirx_c_mux>;
                repeat = <0>;
index c800f71..ddbc0b5 100644 (file)
                #size-cells=<1>;
                memory-region = <&hdmirx_emp_cma_reserved>;
                status = "okay";
-               pinctrl-names = "default";
+               pinctrl-names = "hdmirx_pins";
                pinctrl-0 = <&hdmirx_a_mux &hdmirx_b_mux
                        &hdmirx_c_mux>;
                repeat = <0>;
index 5c8c58e..d5b45c0 100644 (file)
                #size-cells=<1>;
                memory-region = <&hdmirx_emp_cma_reserved>;
                status = "okay";
-               pinctrl-names = "default";
+               pinctrl-names = "hdmirx_pins";
                pinctrl-0 = <&hdmirx_a_mux &hdmirx_b_mux
                        &hdmirx_c_mux>;
                repeat = <0>;
index 4505f99..a41eb68 100644 (file)
                #size-cells=<1>;
                memory-region = <&hdmirx_emp_cma_reserved>;
                status = "okay";
-               pinctrl-names = "default";
+               pinctrl-names = "hdmirx_pins";
                pinctrl-0 = <&hdmirx_a_mux &hdmirx_b_mux
                        &hdmirx_c_mux>;
                repeat = <0>;
index d21ddfe..9484444 100644 (file)
                #size-cells=<1>;
                memory-region = <&hdmirx_emp_cma_reserved>;
                status = "okay";
-               pinctrl-names = "default";
+               pinctrl-names = "hdmirx_pins";
                pinctrl-0 = <&hdmirx_a_mux &hdmirx_b_mux
                        &hdmirx_c_mux>;
                repeat = <0>;
index 5b4aeae..6d16810 100644 (file)
                #size-cells=<1>;
                memory-region = <&hdmirx_emp_cma_reserved>;
                status = "okay";
-               pinctrl-names = "default";
+               pinctrl-names = "hdmirx_pins";
                pinctrl-0 = <&hdmirx_a_mux &hdmirx_b_mux
                        &hdmirx_c_mux>;
                repeat = <0>;
index 4561ec5..3461406 100644 (file)
                #size-cells=<1>;
                memory-region = <&hdmirx_emp_cma_reserved>;
                status = "okay";
-               pinctrl-names = "default";
+               pinctrl-names = "hdmirx_pins";
                pinctrl-0 = <&hdmirx_a_mux &hdmirx_b_mux
                        &hdmirx_c_mux>;
                repeat = <0>;
index 7e70672..b355b51 100644 (file)
                #size-cells=<1>;
                memory-region = <&hdmirx_emp_cma_reserved>;
                status = "okay";
-               pinctrl-names = "default";
+               pinctrl-names = "hdmirx_pins";
                pinctrl-0 = <&hdmirx_a_mux &hdmirx_b_mux
                        &hdmirx_c_mux>;
                repeat = <0>;
index 0159322..21413af 100644 (file)
                #size-cells=<1>;
                memory-region = <&hdmirx_emp_cma_reserved>;
                status = "okay";
-               pinctrl-names = "default";
+               pinctrl-names = "hdmirx_pins";
                pinctrl-0 = <&hdmirx_a_mux &hdmirx_b_mux
                        &hdmirx_c_mux>;
                repeat = <0>;
index dbcd7a3..b0e3324 100644 (file)
                #size-cells=<1>;
                memory-region = <&hdmirx_emp_cma_reserved>;
                status = "okay";
-               pinctrl-names = "default";
+               pinctrl-names = "hdmirx_pins";
                pinctrl-0 = <&hdmirx_a_mux &hdmirx_b_mux
                        &hdmirx_c_mux>;
                repeat = <0>;