1. device tree에 gpio-key 추가
    • / {
      • gpio-keys {
        • compatible = "gpio-keys";
        • autorepeat;
        • pinctrl-names = "default";
        • pinctrl-0 = <&push_button_pins_default>;
        • sw5 {
          • label = "GPIO Key USER1";
          • linux,code = <BTN_0>; //BTN_0=0x100
          • gpios = <&wkup_gpio0 24 GPIO_ACTIVE_LOW>; //<0x07 0x18 0x01>;
        • };
        • sw6 {
          • label = "GPIO Key USER2";
          • linux,code = <BTN_1>; //BTN_1=0x101
          • gpios = <&wkup_gpio0 27 GPIO_ACTIVE_LOW>; //<0x07 0x1b 0x01>;
        • };
      • };
    • };
    • &wkup_pmx0 {
      • wkup_i2c0_pins_default: wkup-i2c0-pins-default {
        • pinctrl-single,pins = <
          • AM65X_WKUP_IOPAD(0x00e0, PIN_INPUT, 0) /* (AC7) WKUP_I2C0_SCL */
          • AM65X_WKUP_IOPAD(0x00e4, PIN_INPUT, 0) /* (AD6) WKUP_I2C0_SDA */
        • >;
      • };
        push_button_pins_default: push-button-pins-default {
        • pinctrl-single,pins = <
          • AM65X_WKUP_IOPAD(0x0030, PIN_INPUT, 7) /* (R5) WKUP_GPIO0_24 */
          • AM65X_WKUP_IOPAD(0x003c, PIN_INPUT, 7) /* (P2) WKUP_GPIO0_27 */
        • >;
      • };
    • };
  2. 확인 방법
    • $ cat /proc/bus/input/devices
    • I: Bus=0019 Vendor=0001 Product=0001 Version=0100
    • N: Name=”gpio-keys”
    • P: Phys=gpio-keys/input0
    • S: Sysfs=/devices/platform/gpio-keys/input/input0
    • U: Uniq=
    • H: Handlers=event0
    • B: PROP=0
    • B: EV=100003
    • B: KEY=3 0 0 0 0
    • $cat /sys/class/input/event0/uevent
    • MAJOR=13
    • MINOR=64
    • DEVNAME=input/event0
    • $mknod /dev/gpio-keys c 13 64
    • $hexdump /dev/gpio-keys
    • 0000000 bf9e 67f0 0000 0000 4d50 000b 0000 0000
    • 0000010 0001 0100 0001 0000 bf9e 67f0 0000 0000
    • 0000020 4d50 000b 0000 0000 0000 0000 0000 0000
    • 0000030 bf9e 67f0 0000 0000 33e7 000d 0000 0000
    • 0000040 0001 0100 0000 0000 bf9e 67f0 0000 0000
    • 0000050 33e7 000d 0000 0000 0000 0000 0000 0000
리눅스에서 GPIO-KEY사용방법(AM65XX)

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다