arm: dts: imx8m*-venice: add gpio hog support
Add gpio hog support for board-specific gpio lines:
- put hogs in u-boot.dtsi so as to keep the regular dts files
in sync with the kernel. The hogs will not be put in the kernel
as that makes them un-usable by userspace as well as
re-initializes them to dt defaults overriding changes which may
have been done by bootloader commands.
- specify gpio names and initial config
- enable GPIO_HOG
Signed-off-by: Tim Harvey <tharvey@gateworks.com>
Acked-by: Peng Fan <peng.fan@nxp.com>
diff --git a/arch/arm/dts/imx8mm-venice-gw7902-u-boot.dtsi b/arch/arm/dts/imx8mm-venice-gw7902-u-boot.dtsi
index d0e5d6c..1e1769f 100644
--- a/arch/arm/dts/imx8mm-venice-gw7902-u-boot.dtsi
+++ b/arch/arm/dts/imx8mm-venice-gw7902-u-boot.dtsi
@@ -5,6 +5,156 @@
#include "imx8mm-venice-u-boot.dtsi"
+&gpio1 {
+ m2rst {
+ gpio-hog;
+ output-low;
+ gpios = <13 GPIO_ACTIVE_HIGH>;
+ line-name = "m2_reset";
+ };
+
+ m2wdis {
+ gpio-hog;
+ output-high;
+ gpios = <15 GPIO_ACTIVE_HIGH>;
+ line-name = "m2_wdis#";
+ };
+};
+
+&gpio2 {
+ uart2en {
+ gpio-hog;
+ output-high;
+ gpios = <8 GPIO_ACTIVE_HIGH>;
+ line-name = "uart2_en#";
+ };
+};
+
+&gpio3 {
+ m2gdis {
+ gpio-hog;
+ output-high;
+ gpios = <1 GPIO_ACTIVE_HIGH>;
+ line-name = "m2_gdis#";
+ };
+
+ m2off {
+ gpio-hog;
+ output-high;
+ gpios = <7 GPIO_ACTIVE_HIGH>;
+ line-name = "m2_off#";
+ };
+};
+
+&gpio4 {
+ ampgpio3 {
+ gpio-hog;
+ input;
+ gpios = <11 GPIO_ACTIVE_HIGH>;
+ line-name = "amp_gpio3";
+ };
+
+ ampgpio2 {
+ gpio-hog;
+ input;
+ gpios = <12 GPIO_ACTIVE_HIGH>;
+ line-name = "amp_gpio2";
+ };
+
+ ampgpio1 {
+ gpio-hog;
+ input;
+ gpios = <14 GPIO_ACTIVE_HIGH>;
+ line-name = "amp_gpio1";
+ };
+
+ ltrpwr {
+ gpio-hog;
+ output-low;
+ gpios = <16 GPIO_ACTIVE_HIGH>;
+ line-name = "lte_pwr#";
+ };
+
+ lterst {
+ gpio-hog;
+ output-low;
+ gpios = <17 GPIO_ACTIVE_HIGH>;
+ line-name = "lte_rst";
+ };
+
+ ampgpio4 {
+ gpio-hog;
+ input;
+ gpios = <20 GPIO_ACTIVE_HIGH>;
+ line-name = "amp_gpio4";
+ };
+
+ appgpio1 {
+ gpio-hog;
+ input;
+ gpios = <21 GPIO_ACTIVE_HIGH>;
+ line-name = "app_gpio1";
+ };
+
+ uart1rs485 {
+ gpio-hog;
+ output-low;
+ gpios = <23 GPIO_ACTIVE_HIGH>;
+ line-name = "uart1_rs485";
+ };
+
+ uart1term {
+ gpio-hog;
+ output-low;
+ gpios = <25 GPIO_ACTIVE_HIGH>;
+ line-name = "uart1_term";
+ };
+
+ uart1half {
+ gpio-hog;
+ output-low;
+ gpios = <26 GPIO_ACTIVE_HIGH>;
+ line-name = "uart1_half";
+ };
+
+ appgpio2 {
+ gpio-hog;
+ input;
+ gpios = <27 GPIO_ACTIVE_HIGH>;
+ line-name = "app_gpio2";
+ };
+
+ mipigpio1 {
+ gpio-hog;
+ input;
+ gpios = <28 GPIO_ACTIVE_HIGH>;
+ line-name = "mipi_gpio1";
+ };
+};
+
+&gpio5 {
+ mipigpio4 {
+ gpio-hog;
+ input;
+ gpios = <3 GPIO_ACTIVE_HIGH>;
+ line-name = "mipi_gpio4";
+ };
+
+ mipigpio3 {
+ gpio-hog;
+ input;
+ gpios = <4 GPIO_ACTIVE_HIGH>;
+ line-name = "mipi_gpio3";
+ };
+
+ mipigpio2 {
+ gpio-hog;
+ input;
+ gpios = <5 GPIO_ACTIVE_HIGH>;
+ line-name = "mipi_gpio2";
+ };
+};
+
&fec1 {
phy-reset-gpios = <&gpio1 10 GPIO_ACTIVE_LOW>;
phy-reset-duration = <1>;