arm64: dts: imx8mn-tqma8mqnl-mba8mx-usbot: fix coexistence of output-low and output-high in GPIO

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: 3f6fc30abe ("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>
This commit is contained in:
Frank Li
2024-10-23 17:03:13 -04:00
committed by Shawn Guo
parent ef7965c7fc
commit c771d311b1

View File

@@ -29,12 +29,37 @@ usb_dr_connector: endpoint {
};
};
/*
* 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 {