Message ID | 20200114122738.103344-2-fengping.yu@mediatek.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | [V3,1/2] dt-bindings: add matrix keypad documentation | expand |
Hi Fengping, Please add all people gave you comment in past series to CC list. On Tue, 2020-01-14 at 20:27 +0800, fengping.yu wrote: > Signed-off-by: fengping.yu <fengping.yu@mediatek.com> > > Add matrix keypad binding documentation for keypad on MTK SoC. > > --- > .../devicetree/bindings/input/mtk-kpd.txt | 55 +++++++++++++++++++ > 1 file changed, 55 insertions(+) > create mode 100644 Documentation/devicetree/bindings/input/mtk-kpd.txt > > diff --git a/Documentation/devicetree/bindings/input/mtk-kpd.txt b/Documentation/devicetree/bindings/input/mtk-kpd.txt > new file mode 100644 > index 000000000000..fda744decbb2 > --- /dev/null > +++ b/Documentation/devicetree/bindings/input/mtk-kpd.txt > @@ -0,0 +1,55 @@ > +* Mediatek's Keypad Controller device tree binding > + > +Mediatek's Keypad controller is used to interface a SoC with a matrix-type > +keypad device. The keypad controller supports multiple row and column lines. > +A key can be placed at each intersection of a unique row and a unique column. > +The keypad controller can sense a key-press and key-release and report the > +event using a interrupt to the cpu. > + > +Required properties: > +- compatible should contain: > + * "mediatek,kp" for common keypad Not every keypad are the same. It is OK to havethis one for common/basic support, but you should still add IC specific compatible. > + > +- reg: The base address of the Keypad register bank. > + > +- interrupts: A single interrupt specifier. > + > +- mediatek,debounce-us: Debounce interval in microseconds, maximum value > + is 256000ms not ms/microseconds now. > + > +- keypad,num-rows: Number of row lines connected to the keypad controller > + > +- keypad,num-columns: Number of column lines connected to the keypad controller These number will change how driver interpret register bits. In this case, you should add required value for each IC. For example, if the IC have 4 columns, but PCB only use 2, dts still need to specify 4 columns. > + > +- linux,keymap: The keymap for keys as described in the binding document > + devicetree/bindings/input/matrix-keymap.txt. > + > +- pinctrl: Should specify pin control groups used for this controller. > + See ../pinctrl/pinctrl-bindings.txt for details. > + > +- clocks: Must contain one entry, for the module clock. > + See ../clocks/clock-bindings.txt for details. Need to include required clock-names here. Joe.C > + > +Optional Properties: > +- wakeup-source: use any event on keypad as wakeup event. > + > +Example: > + > + keypad: kp@10010000 { > + compatible = "mediatek,kp"; > + reg = <0 0x10010000 0 0x1000>; > + wakeup-source; > + interrupts = <GIC_SPI 75 IRQ_TYPE_EDGE_FALLING>; > + clocks = <&clk26m>; > + clock-names = "kpd"; > + }; > + > + &keypad { > + mediatek,debounce-us = <32000>; > + keypad,num-rows = <8>; > + keypad,num-columns = <9>; > + linux,keymap = < MATRIX_KEY(0x00, 0x00, KEY_VOLUMEDOWN) >; > + status = "okay"; > + pinctrl-names = "default"; > + pinctrl-0 = <&kpd_gpios_def_cfg>; > + };
diff --git a/Documentation/devicetree/bindings/input/mtk-kpd.txt b/Documentation/devicetree/bindings/input/mtk-kpd.txt new file mode 100644 index 000000000000..fda744decbb2 --- /dev/null +++ b/Documentation/devicetree/bindings/input/mtk-kpd.txt @@ -0,0 +1,55 @@ +* Mediatek's Keypad Controller device tree binding + +Mediatek's Keypad controller is used to interface a SoC with a matrix-type +keypad device. The keypad controller supports multiple row and column lines. +A key can be placed at each intersection of a unique row and a unique column. +The keypad controller can sense a key-press and key-release and report the +event using a interrupt to the cpu. + +Required properties: +- compatible should contain: + * "mediatek,kp" for common keypad + +- reg: The base address of the Keypad register bank. + +- interrupts: A single interrupt specifier. + +- mediatek,debounce-us: Debounce interval in microseconds, maximum value + is 256000ms + +- keypad,num-rows: Number of row lines connected to the keypad controller + +- keypad,num-columns: Number of column lines connected to the keypad controller + +- linux,keymap: The keymap for keys as described in the binding document + devicetree/bindings/input/matrix-keymap.txt. + +- pinctrl: Should specify pin control groups used for this controller. + See ../pinctrl/pinctrl-bindings.txt for details. + +- clocks: Must contain one entry, for the module clock. + See ../clocks/clock-bindings.txt for details. + +Optional Properties: +- wakeup-source: use any event on keypad as wakeup event. + +Example: + + keypad: kp@10010000 { + compatible = "mediatek,kp"; + reg = <0 0x10010000 0 0x1000>; + wakeup-source; + interrupts = <GIC_SPI 75 IRQ_TYPE_EDGE_FALLING>; + clocks = <&clk26m>; + clock-names = "kpd"; + }; + + &keypad { + mediatek,debounce-us = <32000>; + keypad,num-rows = <8>; + keypad,num-columns = <9>; + linux,keymap = < MATRIX_KEY(0x00, 0x00, KEY_VOLUMEDOWN) >; + status = "okay"; + pinctrl-names = "default"; + pinctrl-0 = <&kpd_gpios_def_cfg>; + };
Signed-off-by: fengping.yu <fengping.yu@mediatek.com> Add matrix keypad binding documentation for keypad on MTK SoC. --- .../devicetree/bindings/input/mtk-kpd.txt | 55 +++++++++++++++++++ 1 file changed, 55 insertions(+) create mode 100644 Documentation/devicetree/bindings/input/mtk-kpd.txt