1 /*
2  * Copyright (c) 2023 Realtek, SIBG-SD7
3  *
4  * SPDX-License-Identifier: Apache-2.0
5  */
6 
7 #ifndef ZEPHYR_SOC_REALTEK_RTS5912_REG_GPIO_H
8 #define ZEPHYR_SOC_REALTEK_RTS5912_REG_GPIO_H
9 
10 /*
11  * @brief GPIO Controller (GPIO)
12  */
13 
14 typedef struct {
15 	volatile uint32_t GCR[132];
16 } GPIO_Type;
17 
18 /* GCR */
19 #define GPIO_GCR_DIR_Pos      (0UL)
20 #define GPIO_GCR_DIR_Msk      BIT(GPIO_GCR_DIR_Pos)
21 #define GPIO_GCR_INDETEN_Pos  (1UL)
22 #define GPIO_GCR_INDETEN_Msk  BIT(GPIO_GCR_INDETEN_Pos)
23 #define GPIO_GCR_INVOLMD_Pos  (2UL)
24 #define GPIO_GCR_INVOLMD_Msk  BIT(GPIO_GCR_INVOLMD_Pos)
25 #define GPIO_GCR_PINSTS_Pos   (3UL)
26 #define GPIO_GCR_PINSTS_Msk   BIT(GPIO_GCR_PINSTS_Pos)
27 #define GPIO_GCR_MFCTRL_Pos   (8UL)
28 #define GPIO_GCR_MFCTRL_Msk   GENMASK(10, 8)
29 #define GPIO_GCR_OUTDRV_Pos   (11UL)
30 #define GPIO_GCR_OUTDRV_Msk   BIT(GPIO_GCR_OUTDRV_Pos)
31 #define GPIO_GCR_SLEWRATE_Pos (12UL)
32 #define GPIO_GCR_SLEWRATE_Msk BIT(GPIO_GCR_SLEWRATE_Pos)
33 #define GPIO_GCR_PULLDWEN_Pos (13UL)
34 #define GPIO_GCR_PULLDWEN_Msk BIT(GPIO_GCR_PULLDWEN_Pos)
35 #define GPIO_GCR_PULLUPEN_Pos (14UL)
36 #define GPIO_GCR_PULLUPEN_Msk BIT(GPIO_GCR_PULLUPEN_Pos)
37 #define GPIO_GCR_SCHEN_Pos    (15UL)
38 #define GPIO_GCR_SCHEN_Msk    BIT(GPIO_GCR_SCHEN_Pos)
39 #define GPIO_GCR_OUTMD_Pos    (16UL)
40 #define GPIO_GCR_OUTMD_Msk    BIT(GPIO_GCR_OUTMD_Pos)
41 #define GPIO_GCR_OUTCTRL_Pos  (17UL)
42 #define GPIO_GCR_OUTCTRL_Msk  BIT(GPIO_GCR_OUTCTRL_Pos)
43 #define GPIO_GCR_INTCTRL_Pos  (24UL)
44 #define GPIO_GCR_INTCTRL_Msk  GENMASK(26, 24)
45 #define GPIO_GCR_INTEN_Pos    (28UL)
46 #define GPIO_GCR_INTEN_Msk    BIT(GPIO_GCR_INTEN_Pos)
47 #define GPIO_GCR_INTSTS_Pos   (31UL)
48 #define GPIO_GCR_INTSTS_Msk   BIT(GPIO_GCR_INTSTS_Pos)
49 
50 #endif /* ZEPHYR_SOC_REALTEK_RTS5912_REG_GPIO_H */
51