主要修改4个地方,两个设备树文件,makflle,以及按键的问件编译,
\kernel-4.4\arch\arm64\boot\dts\mediatek\mt6771.dts
irqkey_drv:irqkey_drv {
compatible = “new-mobi,irq_key_drv”;
};
\kernel-4.4\arch\arm64\boot\dts\mediatek\tb8788p1_64_bsp.dts
&irqkey_drv {
interrupt-parent = <&pio>;
interrupts = <91 IRQ_TYPE_EDGE_FALLING 91 0>;
pin91-gpios = <&pio 91 0>;
debounce = <10>;
pinctrl-names = "default","key_pin91_as_int", "key_pin91_output0","key_pin91_output1";
pinctrl-0 = <&key_pins_default>;
pinctrl-1 = <&key_pins_91_as_int>;
pinctrl-2 = <&key_pins_91_output0>;
pinctrl-3 = <&key_pins_91_output1>;
status = "okay";
};
&pio {
key_pins_default: keydefault {
};
key_pins_91_as_int: key_pins91asint@0 {
pins_cmd_dat {
pinmux = <PINMUX_GPIO91__FUNC_GPIO91>;
slew-rate = <0>;
bias-pull-up = <11>;
};
};
key_pins_91_output0: key_pins91output0 {
pins_cmd_dat {
pinmux = <PINMUX_GPIO91__FUNC_GPIO91>;
slew-rate = <1>;
output-low;
};
};
key_pins_91_output1: key_pins91output1 {
pins_cmd_dat {
pinmux = <PINMUX_GPIO91__FUNC_GPIO91>;
slew-rate = <1>;
output-high;
};
};
};
修改
kernel-4.4\drivers\misc\mediatek\Makefile
obj-y += newmobi_key/
再该\kernel-4.4\drivers\misc\mediatek\ 加入这个问件夹,并写一个makefile
kernel-4.4\drivers\misc\mediatek\newmobi_key\Makefile
obj-y += irq_key.o
kernel-4.4\drivers\misc\mediatek\newmobi_key\irq_key.c
#include <linux/kernel.h>
#include <linux/module.h>
#include <linux/fs.h>
#include <linux/slab.h>
#include <linux/uaccess.h>
#include <linux/i2c.h>
#include <linux/i2c-dev.h>
#include <linux/log2.h>