# Copyright (c) 2020, Pete Johanson
# SPDX-License-Identifier: MIT

description: GPIO keyboard matrix controller

compatible: "zmk,kscan-gpio-matrix"

include: kscan.yaml

properties:
  row-gpios:
    type: phandle-array
    required: true
  col-gpios:
    type: phandle-array
    required: true
  debounce-period:
    type: int
    required: false
    deprecated: true
    description: Deprecated. Use debounce-press-ms and debounce-release-ms instead.
  debounce-press-ms:
    type: int
    default: 5
    description: Debounce time for key press in milliseconds. Use 0 for eager debouncing.
  debounce-release-ms:
    type: int
    default: 5
    description: Debounce time for key release in milliseconds.
  debounce-scan-period-ms:
    type: int
    default: 1
    description: Time between reads in milliseconds when any key is pressed.
  poll-period-ms:
    type: int
    default: 10
    description: Time between reads in milliseconds when no key is pressed and ZMK_KSCAN_MATRIX_POLLING is enabled.
  diode-direction:
    type: string
    default: row2col
    enum:
      - row2col
      - col2row