blob: 3982cc4b2bd9e6e647a267063af5a0d86851066b [file] [log] [blame]
/*
* Copyright (c) 2021 Microchip Technology Inc. and its subsidiaries.
*
* SPDX-License-Identifier: Apache-2.0
*/
#ifndef _MEC_KSCAN_H
#define _MEC_KSCAN_H
#include <stdint.h>
#include <stddef.h>
/* KSO_SEL */
#define MCHP_KSCAN_KSO_SEL_REG_MASK 0xffu
#define MCHP_KSCAN_KSO_LINES_POS 0u
#define MCHP_KSCAN_KSO_LINES_MASK0 0x1fu
#define MCHP_KSCAN_KSO_LINES_MASK 0x1fu
#define MCHP_KSCAN_KSO_ALL_POS 5u
#define MCHP_KSCAN_KSO_ALL BIT(5)
#define MCHP_KSCAN_KSO_EN_POS 6u
#define MCHP_KSCAN_KSO_EN BIT(6)
#define MCHP_KSCAN_KSO_INV_POS 7u
#define MCHP_KSCAN_KSO_INV BIT(7)
/* KSI_IN */
#define MCHP_KSCAN_KSI_IN_REG_MASK 0xffu
/* KSI_STS */
#define MCHP_KSCAN_KSI_STS_REG_MASK 0xffu
/* KSI_IEN */
#define MCHP_KSCAN_KSI_IEN_REG_MASK 0xffu
/* EXT_CTRL */
#define MCHP_KSCAN_EXT_CTRL_REG_MASK 0x01u
#define MCHP_KSCAN_EXT_CTRL_PREDRV_EN 0x01u
/** @brief Keyboard scan matrix controller. Size = 24(0x18) */
struct kscan_regs {
uint32_t RSVD[1];
volatile uint32_t KSO_SEL;
volatile uint32_t KSI_IN;
volatile uint32_t KSI_STS;
volatile uint32_t KSI_IEN;
volatile uint32_t EXT_CTRL;
};
#endif /* #ifndef _MEC_KSCAN_H */