Я пытаюсь сделать пользовательскую кнопку питания на NVIDIA TX2. Кнопка находится на пользовательском плате расширения ввода-вывода, подключенном к порту i2c. У меня есть код для кнопки в дереве устройств:
gpio-custom-keys {
compatible = "gpio-keys";
gpio-keys,name = "gpio-keys";
custompower {
label = "Custom Power";
gpios = <&ib_gpio_expander 12 1>;
linux,code = <KEY_POWER>;
gpio-key,wakeup;
};
};
Когда я использую cat / sys / kernel / debug / gpio, он перечисляет плату ввода-вывода, как и положено, но не перечисляет ключ питания, который я сделал. Вот что он показывает:
GPIO 208-223, i2c / 1-0074, tca9539, могут спать:
GPIO 256-319, platform / c2f0000.gpio, tegra-gpio-aon:
gpio-272 (| temp_alert) в привет
gpio-298 (| cs_sel_gpio) вне lo
gpio-312 (| Power) в привет
gpio-313 (| Увеличение громкости) в hi
gpio-314 (| уменьшение громкости) в hi
gpio-315 (| wifi-wake-ap) в lo
gpio-316 (| bt_host_wake) в lo
Во втором разделе отображаются устройства на самой материнской плате. Почему мой ключ не регистрируется в i2c / 1-0074, в то время как клавиши включения и регулировки громкости регистрируются.
ДОПОЛНИТЕЛЬНО: я переименовал свой ключевой узел в gpio-custom-keys. Перед этим машина загрузится, а клавиши питания и громкости не будут зарегистрированы. Я в порядке с этим, но пользовательский ключ все еще не регистрировался, переименование узла вернуло ключи по умолчанию.