]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
arm64: dts: imx8mn-tqma8mqnl-mba8mx-usbot: fix coexistence of output-low and output...
authorFrank Li <Frank.Li@nxp.com>
Wed, 23 Oct 2024 21:03:13 +0000 (17:03 -0400)
committerShawn Guo <shawnguo@kernel.org>
Mon, 4 Nov 2024 08:46:32 +0000 (16:46 +0800)
Fix the issue where both 'output-low' and 'output-high' exist under GPIO
hog nodes  (rst_usb_hub_hog and sel_usb_hub_hog) when applying device
tree overlays. Since /delete-property/ is not supported in the overlays,
setting 'output-low' results in both properties being present. The
workaround is to disable these hogs and create new ones with 'output-low'
as needed.

Fix below CHECK_DTBS warning:
arch/arm64/boot/dts/freescale/imx8mn-tqma8mqnl-mba8mx-usbotg.dtb: sel-usb-hub-hog:
   {'output-low': True, 'gpio-hog': True, 'gpios': [[1, 0]], 'output-high': True, 'phandle': 108, '$nodename': ['sel-usb-hub-hog']}
       is valid under each of {'required': ['output-low']}, {'required': ['output-high']

Fixes: 3f6fc30abebc ("arm64: dts: imx8mn: tqma8mqnl-mba8mx: Add USB DR overlay")
Signed-off-by: Frank Li <Frank.Li@nxp.com>
Reviewed-by: Alexander Stein <alexander.stein@ew.tq-group.com>
Signed-off-by: Shawn Guo <shawnguo@kernel.org>
arch/arm64/boot/dts/freescale/imx8mn-tqma8mqnl-mba8mx-usbotg.dtso

index 96db07fc9beceae4e4ba766003ff26ea8f8ae644..1f2a0fe70a0a26d7d9e5dfa6bf2644ca940df855 100644 (file)
        };
 };
 
+/*
+ * rst_usb_hub_hog and sel_usb_hub_hog have property 'output-high',
+ * dt overlay don't support /delete-property/. Both 'output-low' and
+ * 'output-high' will be exist under hog nodes if overlay file set
+ * 'output-low'. Workaround is disable these hog and create new hog with
+ * 'output-low'.
+ */
+
 &rst_usb_hub_hog {
-       output-low;
+       status = "disabled";
+};
+
+&expander0 {
+       rst-usb-low-hub-hog {
+               gpio-hog;
+               gpios = <13 0>;
+               output-low;
+               line-name = "RST_USB_HUB#";
+       };
 };
 
 &sel_usb_hub_hog {
-       output-low;
+       status = "disabled";
+};
+
+&gpio2 {
+       sel-usb-low-hub-hog {
+               gpio-hog;
+               gpios = <1 GPIO_ACTIVE_HIGH>;
+               output-low;
+       };
 };
 
 &usbotg1 {