Skip to content

Commit 011b730

Browse files
ChiHuaLaescolar
authored andcommitted
driver: reset: npcx: add driver support for reset controller
Nuvoton NPCX chips have reset registers which allow to reset the peripheral hardware modules. This commit adds the support by implementing the reset driver. Note that only the reset_line_toggle API is supported because of the nature of the reset controller's design. Signed-off-by: Jun Lin <[email protected]>
1 parent e10ed05 commit 011b730

File tree

13 files changed

+458
-0
lines changed

13 files changed

+458
-0
lines changed

drivers/reset/CMakeLists.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,3 +9,4 @@ zephyr_library_sources_ifdef(CONFIG_RESET_AST10X0 reset_ast10x0.c)
99
zephyr_library_sources_ifdef(CONFIG_RESET_STM32 reset_stm32.c)
1010
zephyr_library_sources_ifdef(CONFIG_RESET_NUMAKER reset_numaker.c)
1111
zephyr_library_sources_ifdef(CONFIG_RESET_INTEL_SOCFPGA reset_intel_socfpga.c)
12+
zephyr_library_sources_ifdef(CONFIG_RESET_NPCX reset_npcx.c)

drivers/reset/Kconfig

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,5 +33,6 @@ rsource "Kconfig.aspeed"
3333
rsource "Kconfig.stm32"
3434
rsource "Kconfig.numaker"
3535
rsource "Kconfig.intel_socfpga"
36+
rsource "Kconfig.npcx"
3637

3738
endif # RESET

drivers/reset/Kconfig.npcx

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
# NPCX reset controller driver configuration options
2+
3+
# Copyright (c) 2024 Nuvoton Technology Corporation.
4+
# SPDX-License-Identifier: Apache-2.0
5+
6+
config RESET_NPCX
7+
bool "Nuvoton NPCX embedded controller (EC) reset controller driver"
8+
default y
9+
depends on DT_HAS_NUVOTON_NPCX_RST_ENABLED
10+
help
11+
This option enables the reset controller driver for Nuvoton NPCX MCUs.

drivers/reset/reset_npcx.c

Lines changed: 78 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,78 @@
1+
/*
2+
* Copyright (c) 2024 Nuvoton Technology Corporation.
3+
*
4+
* SPDX-License-Identifier: Apache-2.0
5+
*/
6+
7+
#define DT_DRV_COMPAT nuvoton_npcx_rst
8+
9+
#include <zephyr/kernel.h>
10+
#include <zephyr/drivers/reset.h>
11+
12+
#if defined(CONFIG_SOC_SERIES_NPCX7)
13+
#include <zephyr/dt-bindings/reset/npcx7_reset.h>
14+
#elif defined(CONFIG_SOC_SERIES_NPCX9)
15+
#include <zephyr/dt-bindings/reset/npcx9_reset.h>
16+
#elif defined(CONFIG_SOC_SERIES_NPCX4)
17+
#include <zephyr/dt-bindings/reset/npcx4_reset.h>
18+
#endif
19+
20+
#include <zephyr/logging/log.h>
21+
LOG_MODULE_REGISTER(rst_npcx);
22+
23+
#define NPCX_RESET_CTL_REG_BYTE_SIZE 4
24+
#define NPCX_RESET_CTL_REG_OFFSET(id) ((id) >> (NPCX_RESET_CTL_REG_BYTE_SIZE + 1))
25+
#define NPCX_RESET_CTL_REG_BIT(id) (((id) & ((1 << (NPCX_RESET_CTL_REG_BYTE_SIZE + 1)) - 1)))
26+
27+
#define NPCX_SWRST_TRG_WORD_START 0xC183
28+
#define NPCX_SWRST_TRG_WORD_CLEAR 0x0
29+
#define NPCX_SWRST_TRG_WORD_DONE 0xFFFF
30+
#define NPCX_SWRST_DONE_TIMEOUT_US 100
31+
32+
struct reset_npcx_dev_config {
33+
struct swrst_reg *reg_base;
34+
};
35+
36+
static int reset_npcx_line_toggle(const struct device *dev, uint32_t id)
37+
{
38+
const struct reset_npcx_dev_config *const config = dev->config;
39+
struct swrst_reg *const reg = config->reg_base;
40+
unsigned int key;
41+
uint8_t reg_offset;
42+
uint8_t reg_bit;
43+
int ret = 0;
44+
45+
if (!IN_RANGE(id, NPCX_RESET_ID_START, NPCX_RESET_ID_END)) {
46+
LOG_ERR("Invalid Reset ID");
47+
return -EINVAL;
48+
}
49+
reg_offset = NPCX_RESET_CTL_REG_OFFSET(id);
50+
reg_bit = NPCX_RESET_CTL_REG_BIT(id);
51+
52+
key = irq_lock();
53+
54+
reg->SWRST_CTL[reg_offset] |= BIT(reg_bit);
55+
reg->SWRST_TRG = NPCX_SWRST_TRG_WORD_CLEAR;
56+
reg->SWRST_TRG = NPCX_SWRST_TRG_WORD_START;
57+
58+
if (!WAIT_FOR((reg->SWRST_TRG == NPCX_SWRST_TRG_WORD_DONE), NPCX_SWRST_DONE_TIMEOUT_US,
59+
NULL)) {
60+
LOG_ERR("Reset trig timeout");
61+
ret = -EBUSY;
62+
}
63+
64+
irq_unlock(key);
65+
66+
return ret;
67+
}
68+
69+
static const struct reset_driver_api reset_npcx_driver_api = {
70+
.line_toggle = reset_npcx_line_toggle,
71+
};
72+
73+
static const struct reset_npcx_dev_config reset_npcx_config = {
74+
.reg_base = (struct swrst_reg *)DT_INST_REG_ADDR(0),
75+
};
76+
77+
DEVICE_DT_INST_DEFINE(0, NULL, NULL, NULL, &reset_npcx_config, PRE_KERNEL_1,
78+
CONFIG_RESET_INIT_PRIORITY, &reset_npcx_driver_api);

dts/arm/nuvoton/npcx/npcx4.dtsi

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -317,6 +317,13 @@
317317
status = "disabled";
318318
};
319319
};
320+
321+
rctl: reset-controller@400c3100 {
322+
compatible = "nuvoton,npcx-rst";
323+
reg = <0x400c3100 0x14>;
324+
#reset-cells = <1>;
325+
status = "disabled";
326+
};
320327
};
321328

322329
soc-if {

dts/arm/nuvoton/npcx/npcx7.dtsi

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -260,6 +260,13 @@
260260
rx-plsize = <64>;
261261
tx-plsize = <16>;
262262
};
263+
264+
rctl: reset-controller@400c3100 {
265+
compatible = "nuvoton,npcx-rst";
266+
reg = <0x400c3100 0x10>;
267+
#reset-cells = <1>;
268+
status = "disabled";
269+
};
263270
};
264271

265272
soc-id {

dts/arm/nuvoton/npcx/npcx9.dtsi

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -288,6 +288,13 @@
288288
rx-plsize = <64>;
289289
tx-plsize = <16>;
290290
};
291+
292+
rctl: reset-controller@400c3100 {
293+
compatible = "nuvoton,npcx-rst";
294+
reg = <0x400c3100 0x14>;
295+
#reset-cells = <1>;
296+
status = "disabled";
297+
};
291298
};
292299

293300
soc-id {
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
# Copyright (c) 2024 Nuvoton Technology Corporation.
2+
# SPDX-License-Identifier: Apache-2.0
3+
4+
description: NPCX Reset Controller
5+
6+
compatible: "nuvoton,npcx-rst"
7+
8+
include: [reset-controller.yaml, base.yaml]
9+
10+
properties:
11+
reg:
12+
required: true
13+
14+
"#reset-cells":
15+
const: 1
16+
17+
reset-cells:
18+
- id
Lines changed: 114 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,114 @@
1+
/*
2+
* Copyright (c) 2024 Nuvoton Technology Corporation.
3+
*
4+
* SPDX-License-Identifier: Apache-2.0
5+
*/
6+
7+
#ifndef ZEPHYR_INCLUDE_DT_BINDINGS_RESET_NPCX4_RESET_H
8+
#define ZEPHYR_INCLUDE_DT_BINDINGS_RESET_NPCX4_RESET_H
9+
10+
#define NPCX_RESET_SWRST_CTL1_OFFSET 0
11+
#define NPCX_RESET_SWRST_CTL2_OFFSET 32
12+
#define NPCX_RESET_SWRST_CTL3_OFFSET 64
13+
#define NPCX_RESET_SWRST_CTL4_OFFSET 96
14+
15+
#define NPCX_RESET_GPIO0 (NPCX_RESET_SWRST_CTL1_OFFSET + 0)
16+
#define NPCX_RESET_GPIO1 (NPCX_RESET_SWRST_CTL1_OFFSET + 1)
17+
#define NPCX_RESET_GPIO2 (NPCX_RESET_SWRST_CTL1_OFFSET + 2)
18+
#define NPCX_RESET_GPIO3 (NPCX_RESET_SWRST_CTL1_OFFSET + 3)
19+
#define NPCX_RESET_GPIO4 (NPCX_RESET_SWRST_CTL1_OFFSET + 4)
20+
#define NPCX_RESET_GPIO5 (NPCX_RESET_SWRST_CTL1_OFFSET + 5)
21+
#define NPCX_RESET_GPIO6 (NPCX_RESET_SWRST_CTL1_OFFSET + 6)
22+
#define NPCX_RESET_GPIO7 (NPCX_RESET_SWRST_CTL1_OFFSET + 7)
23+
#define NPCX_RESET_GPIO8 (NPCX_RESET_SWRST_CTL1_OFFSET + 8)
24+
#define NPCX_RESET_GPIO9 (NPCX_RESET_SWRST_CTL1_OFFSET + 9)
25+
#define NPCX_RESET_GPIOA (NPCX_RESET_SWRST_CTL1_OFFSET + 10)
26+
#define NPCX_RESET_GPIOB (NPCX_RESET_SWRST_CTL1_OFFSET + 11)
27+
#define NPCX_RESET_GPIOC (NPCX_RESET_SWRST_CTL1_OFFSET + 12)
28+
#define NPCX_RESET_GPIOD (NPCX_RESET_SWRST_CTL1_OFFSET + 13)
29+
#define NPCX_RESET_GPIOE (NPCX_RESET_SWRST_CTL1_OFFSET + 14)
30+
#define NPCX_RESET_GPIOF (NPCX_RESET_SWRST_CTL1_OFFSET + 15)
31+
#define NPCX_RESET_ITIM64 (NPCX_RESET_SWRST_CTL1_OFFSET + 16)
32+
#define NPCX_RESET_ITIM32_1 (NPCX_RESET_SWRST_CTL1_OFFSET + 18)
33+
#define NPCX_RESET_ITIM32_2 (NPCX_RESET_SWRST_CTL1_OFFSET + 19)
34+
#define NPCX_RESET_ITIM32_3 (NPCX_RESET_SWRST_CTL1_OFFSET + 20)
35+
#define NPCX_RESET_ITIM32_4 (NPCX_RESET_SWRST_CTL1_OFFSET + 21)
36+
#define NPCX_RESET_ITIM32_5 (NPCX_RESET_SWRST_CTL1_OFFSET + 22)
37+
#define NPCX_RESET_ITIM32_6 (NPCX_RESET_SWRST_CTL1_OFFSET + 23)
38+
#define NPCX_RESET_MTC (NPCX_RESET_SWRST_CTL1_OFFSET + 25)
39+
#define NPCX_RESET_MIWU0 (NPCX_RESET_SWRST_CTL1_OFFSET + 26)
40+
#define NPCX_RESET_MIWU1 (NPCX_RESET_SWRST_CTL1_OFFSET + 27)
41+
#define NPCX_RESET_MIWU2 (NPCX_RESET_SWRST_CTL1_OFFSET + 28)
42+
#define NPCX_RESET_GDMA1 (NPCX_RESET_SWRST_CTL1_OFFSET + 29)
43+
#define NPCX_RESET_GDMA2 (NPCX_RESET_SWRST_CTL1_OFFSET + 30)
44+
45+
#define NPCX_RESET_PMC (NPCX_RESET_SWRST_CTL2_OFFSET + 0)
46+
#define NPCX_RESET_SHI (NPCX_RESET_SWRST_CTL2_OFFSET + 2)
47+
#define NPCX_RESET_SPIP (NPCX_RESET_SWRST_CTL2_OFFSET + 3)
48+
#define NPCX_RESET_ADCE (NPCX_RESET_SWRST_CTL2_OFFSET + 4)
49+
#define NPCX_RESET_PECI (NPCX_RESET_SWRST_CTL2_OFFSET + 5)
50+
#define NPCX_RESET_CRUART2 (NPCX_RESET_SWRST_CTL2_OFFSET + 6)
51+
#define NPCX_RESET_ADCI (NPCX_RESET_SWRST_CTL2_OFFSET + 7)
52+
#define NPCX_RESET_SMB0 (NPCX_RESET_SWRST_CTL2_OFFSET + 8)
53+
#define NPCX_RESET_SMB1 (NPCX_RESET_SWRST_CTL2_OFFSET + 9)
54+
#define NPCX_RESET_SMB2 (NPCX_RESET_SWRST_CTL2_OFFSET + 10)
55+
#define NPCX_RESET_SMB3 (NPCX_RESET_SWRST_CTL2_OFFSET + 11)
56+
#define NPCX_RESET_SMB4 (NPCX_RESET_SWRST_CTL2_OFFSET + 12)
57+
#define NPCX_RESET_SMB5 (NPCX_RESET_SWRST_CTL2_OFFSET + 13)
58+
#define NPCX_RESET_SMB6 (NPCX_RESET_SWRST_CTL2_OFFSET + 14)
59+
#define NPCX_RESET_TWD (NPCX_RESET_SWRST_CTL2_OFFSET + 15)
60+
#define NPCX_RESET_PWM0 (NPCX_RESET_SWRST_CTL2_OFFSET + 16)
61+
#define NPCX_RESET_PWM1 (NPCX_RESET_SWRST_CTL2_OFFSET + 17)
62+
#define NPCX_RESET_PWM2 (NPCX_RESET_SWRST_CTL2_OFFSET + 18)
63+
#define NPCX_RESET_PWM3 (NPCX_RESET_SWRST_CTL2_OFFSET + 19)
64+
#define NPCX_RESET_PWM4 (NPCX_RESET_SWRST_CTL2_OFFSET + 20)
65+
#define NPCX_RESET_PWM5 (NPCX_RESET_SWRST_CTL2_OFFSET + 21)
66+
#define NPCX_RESET_PWM6 (NPCX_RESET_SWRST_CTL2_OFFSET + 22)
67+
#define NPCX_RESET_PWM7 (NPCX_RESET_SWRST_CTL2_OFFSET + 23)
68+
#define NPCX_RESET_MFT16_1 (NPCX_RESET_SWRST_CTL2_OFFSET + 24)
69+
#define NPCX_RESET_MFT16_2 (NPCX_RESET_SWRST_CTL2_OFFSET + 25)
70+
#define NPCX_RESET_MFT16_3 (NPCX_RESET_SWRST_CTL2_OFFSET + 26)
71+
#define NPCX_RESET_SMB7 (NPCX_RESET_SWRST_CTL2_OFFSET + 27)
72+
#define NPCX_RESET_CRUART1 (NPCX_RESET_SWRST_CTL2_OFFSET + 28)
73+
#define NPCX_RESET_PS2 (NPCX_RESET_SWRST_CTL2_OFFSET + 29)
74+
#define NPCX_RESET_SDP (NPCX_RESET_SWRST_CTL2_OFFSET + 30)
75+
#define NPCX_RESET_KBS (NPCX_RESET_SWRST_CTL2_OFFSET + 31)
76+
77+
#define NPCX_RESET_SIOCFG (NPCX_RESET_SWRST_CTL3_OFFSET + 0)
78+
#define NPCX_RESET_SERPORT (NPCX_RESET_SWRST_CTL3_OFFSET + 1)
79+
#define NPCX_RESET_I3C_1 (NPCX_RESET_SWRST_CTL3_OFFSET + 4)
80+
#define NPCX_RESET_I3C_2 (NPCX_RESET_SWRST_CTL3_OFFSET + 5)
81+
#define NPCX_RESET_I3C_3 (NPCX_RESET_SWRST_CTL3_OFFSET + 6)
82+
#define NPCX_RESET_I3C_RD (NPCX_RESET_SWRST_CTL3_OFFSET + 7)
83+
#define NPCX_RESET_MSWC (NPCX_RESET_SWRST_CTL3_OFFSET + 8)
84+
#define NPCX_RESET_SHM (NPCX_RESET_SWRST_CTL3_OFFSET + 9)
85+
#define NPCX_RESET_PMCH1 (NPCX_RESET_SWRST_CTL3_OFFSET + 10)
86+
#define NPCX_RESET_PMCH2 (NPCX_RESET_SWRST_CTL3_OFFSET + 11)
87+
#define NPCX_RESET_PMCH3 (NPCX_RESET_SWRST_CTL3_OFFSET + 12)
88+
#define NPCX_RESET_PMCH4 (NPCX_RESET_SWRST_CTL3_OFFSET + 13)
89+
#define NPCX_RESET_KBC (NPCX_RESET_SWRST_CTL3_OFFSET + 15)
90+
#define NPCX_RESET_C2HOST (NPCX_RESET_SWRST_CTL3_OFFSET + 16)
91+
#define NPCX_RESET_CRUART3 (NPCX_RESET_SWRST_CTL3_OFFSET + 18)
92+
#define NPCX_RESET_CRUART4 (NPCX_RESET_SWRST_CTL3_OFFSET + 19)
93+
#define NPCX_RESET_LFCG (NPCX_RESET_SWRST_CTL3_OFFSET + 20)
94+
#define NPCX_RESET_DEV (NPCX_RESET_SWRST_CTL3_OFFSET + 22)
95+
#define NPCX_RESET_SYSCFG (NPCX_RESET_SWRST_CTL3_OFFSET + 23)
96+
#define NPCX_RESET_SBY (NPCX_RESET_SWRST_CTL3_OFFSET + 24)
97+
#define NPCX_RESET_BBRAM (NPCX_RESET_SWRST_CTL3_OFFSET + 25)
98+
#define NPCX_RESET_SHA_2B (NPCX_RESET_SWRST_CTL3_OFFSET + 26)
99+
#define NPCX_RESET_SHA_2A (NPCX_RESET_SWRST_CTL3_OFFSET + 29)
100+
101+
#define NPCX_RESET_MDC (NPCX_RESET_SWRST_CTL4_OFFSET + 15)
102+
#define NPCX_RESET_FIU0 (NPCX_RESET_SWRST_CTL4_OFFSET + 16)
103+
#define NPCX_RESET_FIU1 (NPCX_RESET_SWRST_CTL4_OFFSET + 17)
104+
#define NPCX_RESET_MDMA1 (NPCX_RESET_SWRST_CTL4_OFFSET + 24)
105+
#define NPCX_RESET_MDMA2 (NPCX_RESET_SWRST_CTL4_OFFSET + 25)
106+
#define NPCX_RESET_MDMA3 (NPCX_RESET_SWRST_CTL4_OFFSET + 26)
107+
#define NPCX_RESET_MDMA4 (NPCX_RESET_SWRST_CTL4_OFFSET + 27)
108+
#define NPCX_RESET_MDMA5 (NPCX_RESET_SWRST_CTL4_OFFSET + 28)
109+
#define NPCX_RESET_MDMA6 (NPCX_RESET_SWRST_CTL4_OFFSET + 29)
110+
#define NPCX_RESET_MDMA7 (NPCX_RESET_SWRST_CTL4_OFFSET + 30)
111+
112+
#define NPCX_RESET_ID_START NPCX_RESET_GPIO0
113+
#define NPCX_RESET_ID_END NPCX_RESET_MDMA7
114+
#endif
Lines changed: 94 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,94 @@
1+
/*
2+
* Copyright (c) 2024 Nuvoton Technology Corporation.
3+
*
4+
* SPDX-License-Identifier: Apache-2.0
5+
*/
6+
7+
#ifndef ZEPHYR_INCLUDE_DT_BINDINGS_RESET_NPCX7_RESET_H
8+
#define ZEPHYR_INCLUDE_DT_BINDINGS_RESET_NPCX7_RESET_H
9+
10+
#define NPCX_RESET_SWRST_CTL1_OFFSET 0
11+
#define NPCX_RESET_SWRST_CTL2_OFFSET 32
12+
#define NPCX_RESET_SWRST_CTL3_OFFSET 64
13+
14+
#define NPCX_RESET_GPIO0 (NPCX_RESET_SWRST_CTL1_OFFSET + 0)
15+
#define NPCX_RESET_GPIO1 (NPCX_RESET_SWRST_CTL1_OFFSET + 1)
16+
#define NPCX_RESET_GPIO2 (NPCX_RESET_SWRST_CTL1_OFFSET + 2)
17+
#define NPCX_RESET_GPIO3 (NPCX_RESET_SWRST_CTL1_OFFSET + 3)
18+
#define NPCX_RESET_GPIO4 (NPCX_RESET_SWRST_CTL1_OFFSET + 4)
19+
#define NPCX_RESET_GPIO5 (NPCX_RESET_SWRST_CTL1_OFFSET + 5)
20+
#define NPCX_RESET_GPIO6 (NPCX_RESET_SWRST_CTL1_OFFSET + 6)
21+
#define NPCX_RESET_GPIO7 (NPCX_RESET_SWRST_CTL1_OFFSET + 7)
22+
#define NPCX_RESET_GPIO8 (NPCX_RESET_SWRST_CTL1_OFFSET + 8)
23+
#define NPCX_RESET_GPIO9 (NPCX_RESET_SWRST_CTL1_OFFSET + 9)
24+
#define NPCX_RESET_GPIOA (NPCX_RESET_SWRST_CTL1_OFFSET + 10)
25+
#define NPCX_RESET_GPIOB (NPCX_RESET_SWRST_CTL1_OFFSET + 11)
26+
#define NPCX_RESET_GPIOC (NPCX_RESET_SWRST_CTL1_OFFSET + 12)
27+
#define NPCX_RESET_GPIOD (NPCX_RESET_SWRST_CTL1_OFFSET + 13)
28+
#define NPCX_RESET_GPIOE (NPCX_RESET_SWRST_CTL1_OFFSET + 14)
29+
#define NPCX_RESET_GPIOF (NPCX_RESET_SWRST_CTL1_OFFSET + 15)
30+
#define NPCX_RESET_ITIM64 (NPCX_RESET_SWRST_CTL1_OFFSET + 16)
31+
#define NPCX_RESET_ITIM16_1 (NPCX_RESET_SWRST_CTL1_OFFSET + 18)
32+
#define NPCX_RESET_ITIM16_2 (NPCX_RESET_SWRST_CTL1_OFFSET + 19)
33+
#define NPCX_RESET_ITIM16_3 (NPCX_RESET_SWRST_CTL1_OFFSET + 20)
34+
#define NPCX_RESET_ITIM16_4 (NPCX_RESET_SWRST_CTL1_OFFSET + 21)
35+
#define NPCX_RESET_ITIM16_5 (NPCX_RESET_SWRST_CTL1_OFFSET + 22)
36+
#define NPCX_RESET_ITIM16_6 (NPCX_RESET_SWRST_CTL1_OFFSET + 23)
37+
#define NPCX_RESET_ITIM32 (NPCX_RESET_SWRST_CTL1_OFFSET + 24)
38+
#define NPCX_RESET_MTC (NPCX_RESET_SWRST_CTL1_OFFSET + 25)
39+
#define NPCX_RESET_MIWU0 (NPCX_RESET_SWRST_CTL1_OFFSET + 26)
40+
#define NPCX_RESET_MIWU1 (NPCX_RESET_SWRST_CTL1_OFFSET + 27)
41+
#define NPCX_RESET_MIWU2 (NPCX_RESET_SWRST_CTL1_OFFSET + 28)
42+
#define NPCX_RESET_GDMA (NPCX_RESET_SWRST_CTL1_OFFSET + 29)
43+
#define NPCX_RESET_FIU (NPCX_RESET_SWRST_CTL1_OFFSET + 30)
44+
45+
#define NPCX_RESET_PMC (NPCX_RESET_SWRST_CTL2_OFFSET + 0)
46+
#define NPCX_RESET_SHI (NPCX_RESET_SWRST_CTL2_OFFSET + 2)
47+
#define NPCX_RESET_SPIP (NPCX_RESET_SWRST_CTL2_OFFSET + 3)
48+
#define NPCX_RESET_PECI (NPCX_RESET_SWRST_CTL2_OFFSET + 5)
49+
#define NPCX_RESET_CRUART2 (NPCX_RESET_SWRST_CTL2_OFFSET + 6)
50+
#define NPCX_RESET_ADC (NPCX_RESET_SWRST_CTL2_OFFSET + 7)
51+
#define NPCX_RESET_SMB0 (NPCX_RESET_SWRST_CTL2_OFFSET + 8)
52+
#define NPCX_RESET_SMB1 (NPCX_RESET_SWRST_CTL2_OFFSET + 9)
53+
#define NPCX_RESET_SMB2 (NPCX_RESET_SWRST_CTL2_OFFSET + 10)
54+
#define NPCX_RESET_SMB3 (NPCX_RESET_SWRST_CTL2_OFFSET + 11)
55+
#define NPCX_RESET_SMB4 (NPCX_RESET_SWRST_CTL2_OFFSET + 12)
56+
#define NPCX_RESET_SMB5 (NPCX_RESET_SWRST_CTL2_OFFSET + 13)
57+
#define NPCX_RESET_SMB6 (NPCX_RESET_SWRST_CTL2_OFFSET + 14)
58+
#define NPCX_RESET_TWD (NPCX_RESET_SWRST_CTL2_OFFSET + 15)
59+
#define NPCX_RESET_PWM0 (NPCX_RESET_SWRST_CTL2_OFFSET + 16)
60+
#define NPCX_RESET_PWM1 (NPCX_RESET_SWRST_CTL2_OFFSET + 17)
61+
#define NPCX_RESET_PWM2 (NPCX_RESET_SWRST_CTL2_OFFSET + 18)
62+
#define NPCX_RESET_PWM3 (NPCX_RESET_SWRST_CTL2_OFFSET + 19)
63+
#define NPCX_RESET_PWM4 (NPCX_RESET_SWRST_CTL2_OFFSET + 20)
64+
#define NPCX_RESET_PWM5 (NPCX_RESET_SWRST_CTL2_OFFSET + 21)
65+
#define NPCX_RESET_PWM6 (NPCX_RESET_SWRST_CTL2_OFFSET + 22)
66+
#define NPCX_RESET_PWM7 (NPCX_RESET_SWRST_CTL2_OFFSET + 23)
67+
#define NPCX_RESET_MFT16_1 (NPCX_RESET_SWRST_CTL2_OFFSET + 24)
68+
#define NPCX_RESET_MFT16_2 (NPCX_RESET_SWRST_CTL2_OFFSET + 25)
69+
#define NPCX_RESET_MFT16_3 (NPCX_RESET_SWRST_CTL2_OFFSET + 26)
70+
#define NPCX_RESET_SMB7 (NPCX_RESET_SWRST_CTL2_OFFSET + 27)
71+
#define NPCX_RESET_CRUART1 (NPCX_RESET_SWRST_CTL2_OFFSET + 28)
72+
#define NPCX_RESET_PS2 (NPCX_RESET_SWRST_CTL2_OFFSET + 29)
73+
#define NPCX_RESET_SDP (NPCX_RESET_SWRST_CTL2_OFFSET + 30)
74+
#define NPCX_RESET_KBS (NPCX_RESET_SWRST_CTL2_OFFSET + 31)
75+
76+
#define NPCX_RESET_SIOCFG (NPCX_RESET_SWRST_CTL3_OFFSET + 0)
77+
#define NPCX_RESET_SERPORT (NPCX_RESET_SWRST_CTL3_OFFSET + 1)
78+
#define NPCX_RESET_MSWC (NPCX_RESET_SWRST_CTL3_OFFSET + 8)
79+
#define NPCX_RESET_SHM (NPCX_RESET_SWRST_CTL3_OFFSET + 9)
80+
#define NPCX_RESET_PMCH1 (NPCX_RESET_SWRST_CTL3_OFFSET + 10)
81+
#define NPCX_RESET_PMCH2 (NPCX_RESET_SWRST_CTL3_OFFSET + 11)
82+
#define NPCX_RESET_PMCH3 (NPCX_RESET_SWRST_CTL3_OFFSET + 12)
83+
#define NPCX_RESET_PMCH4 (NPCX_RESET_SWRST_CTL3_OFFSET + 13)
84+
#define NPCX_RESET_KBC (NPCX_RESET_SWRST_CTL3_OFFSET + 15)
85+
#define NPCX_RESET_C2HOST (NPCX_RESET_SWRST_CTL3_OFFSET + 16)
86+
#define NPCX_RESET_LFCG (NPCX_RESET_SWRST_CTL3_OFFSET + 20)
87+
#define NPCX_RESET_DEV (NPCX_RESET_SWRST_CTL3_OFFSET + 22)
88+
#define NPCX_RESET_SYSCFG (NPCX_RESET_SWRST_CTL3_OFFSET + 23)
89+
#define NPCX_RESET_SBY (NPCX_RESET_SWRST_CTL3_OFFSET + 24)
90+
#define NPCX_RESET_BBRAM (NPCX_RESET_SWRST_CTL3_OFFSET + 25)
91+
92+
#define NPCX_RESET_ID_START NPCX_RESET_GPIO0
93+
#define NPCX_RESET_ID_END NPCX_RESET_BBRAM
94+
#endif

0 commit comments

Comments
 (0)