blob: 022c58fc24de8d550fdd1f74b3c43071d968d162 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
|
/*
* Copyright (c) 2020 Nuvoton Technology Corporation.
*
* SPDX-License-Identifier: Apache-2.0
*/
/*
* @file
* @brief Nuvoton NPCX register structure definitions used by the Chrome OS EC.
*/
#ifndef _NUVOTON_NPCX_REG_DEF_CROS_H
#define _NUVOTON_NPCX_REG_DEF_CROS_H
/*
* KBS (Keyboard Scan) device registers
*/
struct kbs_reg {
volatile uint8_t reserved1[4];
/* 0x004: Keyboard Scan In */
volatile uint8_t KBSIN;
/* 0x005: Keyboard Scan In Pull-Up Enable */
volatile uint8_t KBSINPU;
/* 0x006: Keyboard Scan Out 0 */
volatile uint16_t KBSOUT0;
/* 0x008: Keyboard Scan Out 1 */
volatile uint16_t KBSOUT1;
/* 0x00A: Keyboard Scan Buffer Index */
volatile uint8_t KBS_BUF_INDX;
/* 0x00B: Keyboard Scan Buffer Data */
volatile uint8_t KBS_BUF_DATA;
/* 0x00C: Keyboard Scan Event */
volatile uint8_t KBSEVT;
/* 0x00D: Keyboard Scan Control */
volatile uint8_t KBSCTL;
/* 0x00E: Keyboard Scan Configuration Index */
volatile uint8_t KBS_CFG_INDX;
/* 0x00F: Keyboard Scan Configuration Data */
volatile uint8_t KBS_CFG_DATA;
};
/* KBS register fields */
#define NPCX_KBSBUFINDX 0
#define NPCX_KBSEVT_KBSDONE 0
#define NPCX_KBSEVT_KBSERR 1
#define NPCX_KBSCTL_START 0
#define NPCX_KBSCTL_KBSMODE 1
#define NPCX_KBSCTL_KBSIEN 2
#define NPCX_KBSCTL_KBSINC 3
#define NPCX_KBSCTL_KBHDRV_FIELD FIELD(6, 2)
#define NPCX_KBSCFGINDX 0
/* Index of 'Automatic Scan' configuration register */
#define KBS_CFG_INDX_DLY1 0 /* Keyboard Scan Delay T1 Byte */
#define KBS_CFG_INDX_DLY2 1 /* Keyboard Scan Delay T2 Byte */
#define KBS_CFG_INDX_RTYTO 2 /* Keyboard Scan Retry Timeout */
#define KBS_CFG_INDX_CNUM 3 /* Keyboard Scan Columns Number */
#define KBS_CFG_INDX_CDIV 4 /* Keyboard Scan Clock Divisor */
#endif /* _NUVOTON_NPCX_REG_DEF_CROS_H */
|