Re: [PATCH 1/2] Input: bcm-keypad: add device tree bindings
Hi Dmitry, Thanks for the update of no need to change any of dt-binding prefixes. I just sent out a v2 patch addressing all of your other comments. On 15-02-23 09:49 AM, Dmitry Torokhov wrote: Hi Scott, On Sun, Feb 15, 2015 at 09:17:51PM -0800, Dmitry Torokhov wrote: On Sat, Feb 14, 2015 at 08:49:15AM -0800, Scott Branden wrote: On 15-02-09 04:51 PM, Dmitry Torokhov wrote: On Mon, Feb 09, 2015 at 04:07:40PM -0800, Scott Branden wrote: + +- 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 , 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. I have chatted with a couple of people on this and it is acceptable to omit vendor prefix in bindings when we are using a specific driver like we have here (i.e. when driver's compatible string already includes vendor prefix). Vendor prefixes on properties are required when we augment a generic driver's binding. So the above 2 entries are fine as is. Thanks. -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Re: [PATCH 1/2] Input: bcm-keypad: add device tree bindings
Hi Scott, On Sun, Feb 15, 2015 at 09:17:51PM -0800, Dmitry Torokhov wrote: > On Sat, Feb 14, 2015 at 08:49:15AM -0800, Scott Branden wrote: > > On 15-02-09 04:51 PM, Dmitry Torokhov wrote: > > >On Mon, Feb 09, 2015 at 04:07:40PM -0800, Scott Branden wrote: > > >>+ > > >>+- 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 > > >, 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. I have chatted with a couple of people on this and it is acceptable to omit vendor prefix in bindings when we are using a specific driver like we have here (i.e. when driver's compatible string already includes vendor prefix). Vendor prefixes on properties are required when we augment a generic driver's binding. So the above 2 entries are fine as is. Thanks. -- Dmitry -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Re: [PATCH 1/2] Input: bcm-keypad: add device tree bindings
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 > >>Signed-off-by: Scott Branden > >>--- > >> .../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 000..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 > >, 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 majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Re: [PATCH 1/2] Input: bcm-keypad: add device tree bindings
Hi Dmitry, Comments inline. I still have an issue with vendor prefix as there are not documented guidelines I can find in this area? 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 Signed-off-by: Scott Branden --- .../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 000..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? + +- 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 , 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. Clash changes should not happen because as new standard properties are added the drivers should be adjusted to use the new dt-bindings? + +- row-output-enabled: An optional property indicating whether the row or + column is being used as output. If specified the row is being used + as the output. Else defaults to column. + +- pull-up-enabled: An optional property indicating the Keypad scan mode. + If specified implies the keypad scan pull-up has been enabled. + +- Keys represented as child nodes: Each key connected to the keypad + controller is represented as a child node to the keypad controller + device node and should include the following properties. + - row: the row number to which the key is connected. + - column: the column number to which the key is connected. + - code: the key-code to be reported when the key is pressed +and released. That does not seem to be right, linux,keymap is a list, not a subtree. I'd simply refer to Documentation/devicetree/bindings/input/matrix-keymap.txt for details. Yes, we moved to matrix-keymap and forgot to update this documentation. Will correct - thanks. + +Example: +#include "dt-bindings/input/input.h" + +/ { + keypad: keypad@180ac000 { + /* Required SoC specific properties */ + compatible = "brcm,bcm-keypad"; + + /* Required Board specific properties */ + keypa
Re: [PATCH 1/2] Input: bcm-keypad: add device tree bindings
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 > Signed-off-by: Scott Branden > --- > .../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 000..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? > + > +- 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 , to ensure it won't clash with changes on subsystem level later on. Device-tree folks, what say you? > + > +- row-output-enabled: An optional property indicating whether the row or > + column is being used as output. If specified the row is being used > + as the output. Else defaults to column. > + > +- pull-up-enabled: An optional property indicating the Keypad scan mode. > + If specified implies the keypad scan pull-up has been enabled. > + > +- Keys represented as child nodes: Each key connected to the keypad > + controller is represented as a child node to the keypad controller > + device node and should include the following properties. > + - row: the row number to which the key is connected. > + - column: the column number to which the key is connected. > + - code: the key-code to be reported when the key is pressed > +and released. That does not seem to be right, linux,keymap is a list, not a subtree. I'd simply refer to Documentation/devicetree/bindings/input/matrix-keymap.txt for details. > + > +Example: > +#include "dt-bindings/input/input.h" > + > +/ { > + keypad: keypad@180ac000 { > + /* Required SoC specific properties */ > + compatible = "brcm,bcm-keypad"; > + > + /* Required Board specific properties */ > + keypad,num-rows = <5>; > + keypad,num-columns = <5>; > + status = "okay"; > + > + linux,keymap = + MATRIX_KEY(0x00, 0x03, KEY_HOME) /* key_home */ > + MATRIX_KEY(0x00, 0x04, KEY_M) /* key_message */ > + MATRIX_KEY(0x01, 0x00, KEY_A) /* key_contacts */ > + MATRIX_KEY(0x01, 0x01, KEY_1) /* key_1 */ > + MATRIX_KEY(0x01, 0x02, KEY_2) /* key_2 */ > + MATRIX_KEY(0x01, 0x03, KEY_3) /* key_3 */ > + MATRIX_KEY(0x01, 0x04, KEY_S) /* key_speaker */ > + MATRIX_KEY(0x02, 0x00, KEY_P) /* key_phone */ > + MATRIX_KEY(0x02, 0x01, KEY_4) /* key_4 */ > + MATRIX_KEY(0x02,