我想导出一个图钉,以便可以在用户空间内切换它。设置GPIO的方法如下:
int value = 0;
mxc_request_iomux(MX51_PIN_EIM_A24, IOMUX_CONFIG_ALT1);
mxc_request_iomux(MX51_PIN_EIM_A26, IOMUX_CONFIG_ALT1);
mxc_iomux_set_pad(MX51_PIN_EIM_A24, PAD_CTL_PKE_ENABLE | PAD_CTL_PUE_PULL | PAD_CTL_100K_PU);
mxc_iomux_set_pad(MX51_PIN_EIM_A26, PAD_CTL_PKE_ENABLE | PAD_CTL_PUE_PULL | PAD_CTL_100K_PU);
gpio_request(IOMUX_TO_GPIO(MX51_PIN_EIM_A24), "gpio2_18");
gpio_request(IOMUX_TO_GPIO(MX51_PIN_EIM_A26), "gpio2_20");
gpio_direction_input(IOMUX_TO_GPIO(MX51_PIN_EIM_A24));
gpio_direction_input(IOMUX_TO_GPIO(MX51_PIN_EIM_A26));
value |= gpio_get_value(IOMUX_TO_GPIO(MX51_PIN_EIM_A24)) ? 0 : 1;
value |= gpio_get_value(IOMUX_TO_GPIO(MX51_PIN_EIM_A26)) ? 0 : 2;
gpio_free(IOMUX_TO_GPIO(MX51_PIN_EIM_A24));
gpio_free(IOMUX_TO_GPIO(MX51_PIN_EIM_A26));
根据gpio.text,这两个函数的用例是:
/* export the GPIO to userspace */
int gpio_export(unsigned gpio, bool direction_may_change);
和
/* create a sysfs link to an exported GPIO node */
int gpio_export_link(struct device *dev, const char *name,
unsigned gpio)
我计划首先通过导出来切换图钉:
echo x > /sys/class/gpio/export
,然后设置其值:
echo 0 > /sys/class/gpio/gpiox/value
我相信这就是我使用gpio_export()的方式:
gpio_export(IOMUX_TO_GPIO(MX51_PIN_EIM_A24),是),
就gpio_export_link()而言,我不确定要把什么作为第一个参数。什么是:“结构设备* dev”?
方法减速上方的注释说:“ @dev:要在其下创建符号链接的设备” device是什么意思?