1、GPIO的配置和使用是驱动人必须具备的一项技能
2、常见的GPIO(以gpio-key为例)dtb配置如下:
gpio-keys {
compatible = "gpio-keys";
autorepeat;
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_gpio_keys>;
key_btn_0 {
label = "btn_0";
linux,input-type = <1>;
linux,code = <0x100>;
gpios = <&gpio1 0 GPIO_ACTIVE_HIGH>;
};
};
pinctrl_gpio_keys: gpio_keys {
fsl,pins = <
MX8MP_IOMUXC_GPIO1_IO00__GPIO1_IO00 0X20
>;
};
3、通过控制台命令 cat /sys/kernel/debug/gpio 查看gpio使用状态,如下:
evk_8mp:/ # cat /sys/kernel/debug/gpio
gpiochip0: GPIOs 0-31, parent: platform/30200000.gpio, 30200000.gpio:
gpio-0 ( |btn_0 ) in lo IRQ
gpio-1 ( |gpio0-1 ) in lo
gpio-2 ( |gpio0-2 ) in hi
gpio-3 ( |gpio0-3 ) in lo IRQ
gpio-5 ( |gpio0-5 ) in hi
gpio-6 ( |gpio0-6 ) in lo
gpio-7 ( |gpio0-7 ) in lo
gpio-8 ( |enable ) out hi
gpiochip1: GPIOs 32-63, parent: platform/30210000.gpio, 30210000.gpio:
gpio-44 ( |cd ) in hi IRQ ACTIVE LOW
gpiochip2: GPIOs 64-95, parent: platform/30220000.gpio, 30220000.gpio:
gpiochip3: GPIOs 96-127, parent: platform/30230000.gpio, 30230000.gpio:
gpio-96 ( |hw_wdt_vcc ) out hi
gpio-106 ( |yellow:status ) out hi
gpio-107 ( |enable ) out hi
gpio-108 ( |reset-gpio ) out hi
gpio-109 ( |irq-gpio ) in hi IRQ
gpio-112 ( |tp_vcc ) out hi
gpio-114 ( |amp ) out hi
gpio-115 ( |watchdog ) out hi ACTIVE LOW
gpio-116 ( |eeprom-wp ) out hi
gpio-117 ( |BT power enable ) out hi
gpio-123 ( |regulator-can2-stby ) out lo
gpio-125 ( |regulator-audio-pwr ) out hi
gpiochip4: GPIOs 128-159, parent: platform/30240000.gpio, 30240000.gpio:
gpio-133 ( |regulator-can1-stby ) out lo
gpio-135 ( |SD2_VCC_EN ) out hi
gpio-138 ( |regulator-usdhc2 ) out lo
gpio-141 ( |spi0 CS0 ) out hi ACTIVE LOW
evk_8mp:/ #
4、通过命令,可以很清楚的看到我们配置的btn_0的状态