Message ID | 1393552520-9068-8-git-send-email-sboyd@codeaurora.org (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
On Thu, Feb 27, 2014 at 05:55:18PM -0800, Stephen Boyd wrote: > Document the keypad device found on PM8921 and PM8058 PMICs. [..] > +++ b/Documentation/devicetree/bindings/input/qcom,pm8xxx-keypad.txt > @@ -0,0 +1,72 @@ > +Qualcomm PM8xxx PMIC Keypad > + > +PROPERTIES > + > +- compatible: > + Usage: required > + Value type: <string> > + Definition: must be one of: > + "qcom,pm8058-keypad" > + "qcom,pm8921-keypad" > +- interrupts: > + Usage: required > + Value type: <prop-encoded-array> > + Definition: the first interrupt specifies the key sense interrupt > + and the second interrupt specifies the key stuck interrupt. > + The format of the specifier is defined by the binding > + document describing the node's interrupt parent. > + > +- linux,keymap: > + Usage: required > + Value type: <prop-encoded-array> > + Definition: the linux keymap. More information can be found in > + input/matrix-keymap.txt. > + > +- keypad,num-rows: > + Usage: required > + Value type: <u32> > + Definition: number of rows in the keymap. More information can be found > + in input/matrix-keymap.txt. > + > +- keypad,num-columns: > + Usage: required > + Value type: <u32> > + Definition: number of columns in the keymap. More information can be > + found in input/matrix-keymap.txt. > + > +- debounce: > + Usage: optional > + Value type: <u32> > + Definition: time in microseconds that key must be pressed or release > + for key sense interrupt to trigger. > + > +- scan-delay: > + Usage: optional > + Value type: <u32> > + Definition: time in microseconds to pause between successive scans > + of the matrix array. > + > +- row-hold: > + Usage: optional > + Value type: <u32> > + Definition: time in nanoseconds to pause between scans of each row in > + the matrix array. - linux,wakeup? - linux,no-auto-repeat? > + > +EXAMPLE > + > + keypad { > + compatible = "qcom,pm8921-keypad"; > + interrupt-parent = <&pmicintc>; > + interrupts = <74 1>, <75 1>; > + linux,keymap = < > + MATRIX_KEY(0, 0, KEY_VOLUMEUP) > + MATRIX_KEY(0, 1, KEY_VOLUMEDOWN) > + MATRIX_KEY(0, 2, KEY_CAMERA_FOCUS) > + MATRIX_KEY(0, 3, KEY_CAMERA) > + >; > + keypad,num-rows = <1>; > + keypad,num-columns = <5>; > + debounce = <15>; > + scan-delay = <32>; > + row-hold = <91500>; > + }; It odd to me that these newly created bindings don't have 'reg' properties, even though the device clearly has a register region. I suppose it makes sense from a "port over from platform data to DT" perspective, as these drivers have just assumed the location of their registers to be fixed; however I suspect things will need to be changed if/when we hope to share these drivers with pm8841/pm8941 and beyond...
On 02/28, Josh Cartwright wrote: > On Thu, Feb 27, 2014 at 05:55:18PM -0800, Stephen Boyd wrote: > > - linux,wakeup? > - linux,no-auto-repeat? Added. > > > + > > +EXAMPLE > > + > > + keypad { > > + compatible = "qcom,pm8921-keypad"; > > + interrupt-parent = <&pmicintc>; > > + interrupts = <74 1>, <75 1>; > > + linux,keymap = < > > + MATRIX_KEY(0, 0, KEY_VOLUMEUP) > > + MATRIX_KEY(0, 1, KEY_VOLUMEDOWN) > > + MATRIX_KEY(0, 2, KEY_CAMERA_FOCUS) > > + MATRIX_KEY(0, 3, KEY_CAMERA) > > + >; > > + keypad,num-rows = <1>; > > + keypad,num-columns = <5>; > > + debounce = <15>; > > + scan-delay = <32>; > > + row-hold = <91500>; > > + }; > > It odd to me that these newly created bindings don't have 'reg' > properties, even though the device clearly has a register region. > > I suppose it makes sense from a "port over from platform data to DT" > perspective, as these drivers have just assumed the location of their > registers to be fixed; however I suspect things will need to be changed > if/when we hope to share these drivers with pm8841/pm8941 and beyond... > Agreed. I would love it if the platform OF code would create IORESOURCE_REG resources for any reg properties that aren't translatable to CPU addresses. That way we don't have to pick out the reg property from DT with special OF code (like you've done in rtc-pm8xxx). I'll throw the reg property into the binding so that in the future we can support the register moving around (although at the moment the driver will ignore it).
On Fri, Feb 28, 2014 at 10:37:08AM -0800, Stephen Boyd wrote: > On 02/28, Josh Cartwright wrote: > > On Thu, Feb 27, 2014 at 05:55:18PM -0800, Stephen Boyd wrote: > > > + > > > +EXAMPLE > > > + > > > + keypad { > > > + compatible = "qcom,pm8921-keypad"; > > > + interrupt-parent = <&pmicintc>; > > > + interrupts = <74 1>, <75 1>; > > > + linux,keymap = < > > > + MATRIX_KEY(0, 0, KEY_VOLUMEUP) > > > + MATRIX_KEY(0, 1, KEY_VOLUMEDOWN) > > > + MATRIX_KEY(0, 2, KEY_CAMERA_FOCUS) > > > + MATRIX_KEY(0, 3, KEY_CAMERA) > > > + >; > > > + keypad,num-rows = <1>; > > > + keypad,num-columns = <5>; > > > + debounce = <15>; > > > + scan-delay = <32>; > > > + row-hold = <91500>; > > > + }; > > > > It odd to me that these newly created bindings don't have 'reg' > > properties, even though the device clearly has a register region. > > > > I suppose it makes sense from a "port over from platform data to DT" > > perspective, as these drivers have just assumed the location of their > > registers to be fixed; however I suspect things will need to be changed > > if/when we hope to share these drivers with pm8841/pm8941 and beyond... > > > > Agreed. I would love it if the platform OF code would create > IORESOURCE_REG resources for any reg properties that aren't > translatable to CPU addresses. That way we don't have to pick out the > reg property from DT with special OF code (like you've done in > rtc-pm8xxx). Yes, I agree this would be nice. The rtc-pm8xxx register parsing magic is misplaced/ugly. I'll see about taking a crack at this and seeing what it looks like. > I'll throw the reg property into the binding so that in > the future we can support the register moving around (although at the > moment the driver will ignore it). Great, I think this sounds good.
diff --git a/Documentation/devicetree/bindings/input/qcom,pm8xxx-keypad.txt b/Documentation/devicetree/bindings/input/qcom,pm8xxx-keypad.txt new file mode 100644 index 000000000000..aa5a9c6cf512 --- /dev/null +++ b/Documentation/devicetree/bindings/input/qcom,pm8xxx-keypad.txt @@ -0,0 +1,72 @@ +Qualcomm PM8xxx PMIC Keypad + +PROPERTIES + +- compatible: + Usage: required + Value type: <string> + Definition: must be one of: + "qcom,pm8058-keypad" + "qcom,pm8921-keypad" +- interrupts: + Usage: required + Value type: <prop-encoded-array> + Definition: the first interrupt specifies the key sense interrupt + and the second interrupt specifies the key stuck interrupt. + The format of the specifier is defined by the binding + document describing the node's interrupt parent. + +- linux,keymap: + Usage: required + Value type: <prop-encoded-array> + Definition: the linux keymap. More information can be found in + input/matrix-keymap.txt. + +- keypad,num-rows: + Usage: required + Value type: <u32> + Definition: number of rows in the keymap. More information can be found + in input/matrix-keymap.txt. + +- keypad,num-columns: + Usage: required + Value type: <u32> + Definition: number of columns in the keymap. More information can be + found in input/matrix-keymap.txt. + +- debounce: + Usage: optional + Value type: <u32> + Definition: time in microseconds that key must be pressed or release + for key sense interrupt to trigger. + +- scan-delay: + Usage: optional + Value type: <u32> + Definition: time in microseconds to pause between successive scans + of the matrix array. + +- row-hold: + Usage: optional + Value type: <u32> + Definition: time in nanoseconds to pause between scans of each row in + the matrix array. + +EXAMPLE + + keypad { + compatible = "qcom,pm8921-keypad"; + interrupt-parent = <&pmicintc>; + interrupts = <74 1>, <75 1>; + linux,keymap = < + MATRIX_KEY(0, 0, KEY_VOLUMEUP) + MATRIX_KEY(0, 1, KEY_VOLUMEDOWN) + MATRIX_KEY(0, 2, KEY_CAMERA_FOCUS) + MATRIX_KEY(0, 3, KEY_CAMERA) + >; + keypad,num-rows = <1>; + keypad,num-columns = <5>; + debounce = <15>; + scan-delay = <32>; + row-hold = <91500>; + };
Document the keypad device found on PM8921 and PM8058 PMICs. Cc: <devicetree@vger.kernel.org> Signed-off-by: Stephen Boyd <sboyd@codeaurora.org> --- .../bindings/input/qcom,pm8xxx-keypad.txt | 72 ++++++++++++++++++++++ 1 file changed, 72 insertions(+) create mode 100644 Documentation/devicetree/bindings/input/qcom,pm8xxx-keypad.txt