Меня интересует возможность управления gpio из linux.
По идее GPIO сначала нужно экспортировать, но как узнать, какой пин нужно экспортировать? Например, я хочу вывести 1 на 28-ой пин 3-его порта. При этом не хочется помнить, что GPIO3.28 - это включение питания USB.
Нельзя ли как-то дать понять системе, например через dts, что этот пин занят юзером и дать к нему доступ сразу, задав к тому же прерывания от этого пина или дефолтное состояние?
Ну и код dts для примера. Led-ы работают сразу через /sys/class/leds , а вот gpio нет.
Код
gpio {
compatible = "mygpio";
pinctrl-names = "default";
pinctrl-0 = <&gpio_pins_3V3>;
gpio_USBHOST_VCCEN {
label = "usbvccen";
gpios = <&gpio3 28 GPIO_ACTIVE_HIGH>;
default-state = "on";
};
};
leds {
compatible = "gpio-leds";
pinctrl-names = "default";
pinctrl-0 = <&leds_pins>;
power {/* POWER */
label = "power";
gpios = <&gpio3 29 GPIO_ACTIVE_HIGH>;
default-state = "on";
};
status {/* ACT */
label = "status";
gpios = <&gpio2 26 GPIO_ACTIVE_HIGH>;
default-state = "on";
};
};
compatible = "mygpio";
pinctrl-names = "default";
pinctrl-0 = <&gpio_pins_3V3>;
gpio_USBHOST_VCCEN {
label = "usbvccen";
gpios = <&gpio3 28 GPIO_ACTIVE_HIGH>;
default-state = "on";
};
};
leds {
compatible = "gpio-leds";
pinctrl-names = "default";
pinctrl-0 = <&leds_pins>;
power {/* POWER */
label = "power";
gpios = <&gpio3 29 GPIO_ACTIVE_HIGH>;
default-state = "on";
};
status {/* ACT */
label = "status";
gpios = <&gpio2 26 GPIO_ACTIVE_HIGH>;
default-state = "on";
};
};
Спасибо!