Re: [PATCH 1/2] Input: bcm-keypad: add device tree bindings

From: Dmitry Torokhov
Date: Mon Feb 16 2015 - 00:18:03 EST


Hi Scott,

On Sat, Feb 14, 2015 at 08:49:15AM -0800, Scott Branden wrote:
> Hi Dmitry,
>
> Comments inline. I still have an issue with vendor prefix as there
> are not documented guidelines I can find in this area?

I looked and I could not locate it written down either. I think Grant is
in Santa Rosa this week, I'll ask him to clarify.

>
>
> On 15-02-09 04:51 PM, Dmitry Torokhov wrote:
> >Hi Scott,
> >
> >On Mon, Feb 09, 2015 at 04:07:40PM -0800, Scott Branden wrote:
> >>Documents the Broadcom keypad controller device tree bindings.
> >>
> >>Reviewed-by: Ray Jui <rjui@xxxxxxxxxxxx>
> >>Signed-off-by: Scott Branden <sbranden@xxxxxxxxxxxx>
> >>---
> >> .../devicetree/bindings/input/brcm,bcm-keypad.txt | 118 +++++++++++++++++++++
> >> 1 file changed, 118 insertions(+)
> >> create mode 100644 Documentation/devicetree/bindings/input/brcm,bcm-keypad.txt
> >>
> >>diff --git a/Documentation/devicetree/bindings/input/brcm,bcm-keypad.txt b/Documentation/devicetree/bindings/input/brcm,bcm-keypad.txt
> >>new file mode 100644
> >>index 0000000..645829d
> >>--- /dev/null
> >>+++ b/Documentation/devicetree/bindings/input/brcm,bcm-keypad.txt
> >>@@ -0,0 +1,118 @@
> >>+* Broadcom Keypad Controller device tree bindings
> >>+
> >>+Broadcom 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.
> >>+
> >>+This binding is based on the matrix-keymap binding with the following
> >>+changes:
> >>+
> >>+keypad,num-rows and keypad,num-columns are required.
> >>+
> >>+Required SoC Specific Properties:
> >>+- compatible: should be "brcm,bcm-keypad"
> >>+
> >>+- reg: physical base address of the controller and length of memory mapped
> >>+ region.
> >>+
> >>+- interrupts: The interrupt number to the cpu.
> >>+
> >>+Board Specific Properties:
> >>+- keypad,num-rows: Number of row lines connected to the keypad
> >>+ controller.
> >>+
> >>+- keypad,num-columns: Number of column lines connected to the
> >>+ keypad controller.
> >>+
> >>+- key-interrupt-trigger-type: The type of interrupt trigger asociated with the Keypad matrix.
> >>+
> >>+ KEYPAD_INTERRUPT_NO_TRIGGER = 0
> >>+ KEYPAD_INTERRUPT_RISING_EDGE = 1
> >>+ KEYPAD_INTERRUPT_FALLING_EDGE = 2
> >>+ KEYPAD_INTERRUPT_BOTH_EDGES = 3
> >
> >Can we get this data from the interrupt spec?
> I don't understand your question. Could you elaborate?
> But, looking at this closer this determines when the hardware should
> generate interrupts. I think we would always need to set it to both
> edges and this binding option can probably we removed?

What I meant that interrupt binding allows specifying the trigger and
you have separate binding for trigger here. It would be nice to have
just one (the standard interrupt binding).

> >
> >>+
> >>+- col-debounce-filter-period: The debounce period for the Column filter.
> >>+
> >>+ KEYPAD_DEBOUNCE_1_ms = 0
> >>+ KEYPAD_DEBOUNCE_2_ms = 1
> >>+ KEYPAD_DEBOUNCE_4_ms = 2
> >>+ KEYPAD_DEBOUNCE_8_ms = 3
> >
> >>+ KEYPAD_DEBOUNCE_16_ms = 4
> >>+ KEYPAD_DEBOUNCE_32_ms = 5
> >>+ KEYPAD_DEBOUNCE_64_ms = 6
> >>+ KEYPAD_DEBOUNCE_128_ms = 7
> >>+
> >>+- status-debounce-filter-period: The debounce period for the Status filter.
> >>+
> >>+ KEYPAD_DEBOUNCE_1_ms = 0
> >>+ KEYPAD_DEBOUNCE_2_ms = 1
> >>+ KEYPAD_DEBOUNCE_4_ms = 2
> >>+ KEYPAD_DEBOUNCE_8_ms = 3
> >>+ KEYPAD_DEBOUNCE_16_ms = 4
> >>+ KEYPAD_DEBOUNCE_32_ms = 5
> >>+ KEYPAD_DEBOUNCE_64_ms = 6
> >>+ KEYPAD_DEBOUNCE_128_ms = 7
> >
> >I could swear device-specific properties should be in form of
> ><vendor-prefix>,<property-name> to ensure it won't clash with changes on
> >subsystem level later on. Device-tree folks, what say you?
> I see examples with and without vendor-prefix.
> qcom,pm8xxx-keypad.txt does not have prefixes
> st-keyscan.txt does have a prefix
>
> I can't find any documented guidelines for this.

As I mentioned I'll try to get clarification on this.

> Clash changes should not happen because as new standard properties
> are added the drivers should be adjusted to use the new dt-bindings?

This is a misconception: device tree bindings are supposed to form ABI
(and the goal to eventually separate them from the kernel) and so we
need to support old bindings in new kernels.

Thanks.

--
Dmitry
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/