^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1) # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2) %YAML 1.2
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3) ---
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4) $id: http://devicetree.org/schemas/input/imx-keypad.yaml#
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5) $schema: http://devicetree.org/meta-schemas/core.yaml#
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7) title: Freescale i.MX Keypad Port(KPP) device tree bindings
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 8)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 9) maintainers:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 10) - Liu Ying <gnuiyl@gmail.com>
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 11)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 12) allOf:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 13) - $ref: "/schemas/input/matrix-keymap.yaml#"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 14)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 15) description: |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 16) The KPP is designed to interface with a keypad matrix with 2-point contact
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 17) or 3-point contact keys. The KPP is designed to simplify the software task
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 18) of scanning a keypad matrix. The KPP is capable of detecting, debouncing,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 19) and decoding one or multiple keys pressed simultaneously on a keypad.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 20)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 21) properties:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 22) compatible:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 23) oneOf:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 24) - const: fsl,imx21-kpp
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 25) - items:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 26) - enum:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 27) - fsl,imx25-kpp
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 28) - fsl,imx27-kpp
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 29) - fsl,imx31-kpp
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 30) - fsl,imx35-kpp
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 31) - fsl,imx51-kpp
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 32) - fsl,imx53-kpp
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 33) - fsl,imx50-kpp
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 34) - fsl,imx6q-kpp
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 35) - fsl,imx6sx-kpp
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 36) - fsl,imx6sl-kpp
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 37) - fsl,imx6sll-kpp
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 38) - fsl,imx6ul-kpp
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 39) - fsl,imx7d-kpp
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 40) - const: fsl,imx21-kpp
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 41)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 42) reg:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 43) maxItems: 1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 44)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 45) interrupts:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 46) maxItems: 1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 47)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 48) clocks:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 49) maxItems: 1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 50)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 51) required:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 52) - compatible
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 53) - reg
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 54) - interrupts
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 55) - clocks
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 56) - linux,keymap
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 57)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 58) unevaluatedProperties: false
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 59)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 60) examples:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 61) - |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 62) keypad@73f94000 {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 63) compatible = "fsl,imx51-kpp", "fsl,imx21-kpp";
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 64) reg = <0x73f94000 0x4000>;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 65) interrupts = <60>;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 66) clocks = <&clks 0>;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 67) pinctrl-names = "default";
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 68) pinctrl-0 = <&pinctrl_kpp_1>;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 69) linux,keymap = <0x00000067 /* KEY_UP */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 70) 0x0001006c /* KEY_DOWN */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 71) 0x00020072 /* KEY_VOLUMEDOWN */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 72) 0x00030066 /* KEY_HOME */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 73) 0x0100006a /* KEY_RIGHT */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 74) 0x01010069 /* KEY_LEFT */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 75) 0x0102001c /* KEY_ENTER */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 76) 0x01030073 /* KEY_VOLUMEUP */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 77) 0x02000040 /* KEY_F6 */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 78) 0x02010042 /* KEY_F8 */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 79) 0x02020043 /* KEY_F9 */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 80) 0x02030044 /* KEY_F10 */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 81) 0x0300003b /* KEY_F1 */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 82) 0x0301003c /* KEY_F2 */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 83) 0x0302003d /* KEY_F3 */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 84) 0x03030074>; /* KEY_POWER */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 85) };