xref: /rk3399_ARM-atf/plat/mediatek/mt8186/drivers/pmic/pmic_wrap_init.h (revision 04f28f895f1dc8683838a1382c8f92881f4cf21d)
15bc88ec6SJames Lo /*
2*ca93b018SBo-Chen Chen  * Copyright (c) 2021-2022, MediaTek Inc. All rights reserved.
35bc88ec6SJames Lo  *
45bc88ec6SJames Lo  * SPDX-License-Identifier: BSD-3-Clause
55bc88ec6SJames Lo  */
65bc88ec6SJames Lo 
75bc88ec6SJames Lo #ifndef PMIC_WRAP_INIT_H
85bc88ec6SJames Lo #define PMIC_WRAP_INIT_H
95bc88ec6SJames Lo 
105bc88ec6SJames Lo #include <stdint.h>
115bc88ec6SJames Lo 
125bc88ec6SJames Lo #include "platform_def.h"
13*ca93b018SBo-Chen Chen #include <pmic_wrap_init_common.h>
145bc88ec6SJames Lo 
155bc88ec6SJames Lo static struct mt8186_pmic_wrap_regs *const mtk_pwrap = (void *)PMIC_WRAP_BASE;
165bc88ec6SJames Lo 
175bc88ec6SJames Lo /* timeout setting */
185bc88ec6SJames Lo enum {
195bc88ec6SJames Lo 	TIMEOUT_RESET       = 50,	/* us */
205bc88ec6SJames Lo 	TIMEOUT_READ        = 50,	/* us */
215bc88ec6SJames Lo 	TIMEOUT_WAIT_IDLE   = 50	/* us */
225bc88ec6SJames Lo };
235bc88ec6SJames Lo 
245bc88ec6SJames Lo /* PMIC_WRAP registers */
255bc88ec6SJames Lo struct mt8186_pmic_wrap_regs {
265bc88ec6SJames Lo 	uint32_t unused[776];
275bc88ec6SJames Lo 	uint32_t wacs2_cmd;
285bc88ec6SJames Lo 	uint32_t wacs2_rdata;
295bc88ec6SJames Lo 	uint32_t wacs2_vldclr;
305bc88ec6SJames Lo };
315bc88ec6SJames Lo 
325bc88ec6SJames Lo enum {
335bc88ec6SJames Lo 	RDATA_WACS_RDATA_SHIFT = 0,
345bc88ec6SJames Lo 	RDATA_WACS_FSM_SHIFT = 16,
355bc88ec6SJames Lo 	RDATA_WACS_REQ_SHIFT = 19,
365bc88ec6SJames Lo 	RDATA_SYNC_IDLE_SHIFT = 20,
375bc88ec6SJames Lo 	RDATA_INIT_DONE_SHIFT = 22,
385bc88ec6SJames Lo 	RDATA_SYS_IDLE_SHIFT = 23,
395bc88ec6SJames Lo };
405bc88ec6SJames Lo 
415bc88ec6SJames Lo enum {
425bc88ec6SJames Lo 	RDATA_WACS_RDATA_MASK = 0xffff,
435bc88ec6SJames Lo 	RDATA_WACS_FSM_MASK = 0x7,
445bc88ec6SJames Lo 	RDATA_WACS_REQ_MASK = 0x1,
455bc88ec6SJames Lo 	RDATA_SYNC_IDLE_MASK = 0x1,
465bc88ec6SJames Lo 	RDATA_INIT_DONE_MASK = 0x1,
475bc88ec6SJames Lo 	RDATA_SYS_IDLE_MASK = 0x1,
485bc88ec6SJames Lo };
495bc88ec6SJames Lo 
505bc88ec6SJames Lo /* WACS_FSM */
515bc88ec6SJames Lo enum {
525bc88ec6SJames Lo 	WACS_FSM_IDLE            = 0x00,
535bc88ec6SJames Lo 	WACS_FSM_REQ             = 0x02,
545bc88ec6SJames Lo 	WACS_FSM_WFDLE           = 0x04,
555bc88ec6SJames Lo 	WACS_FSM_WFVLDCLR        = 0x06,
565bc88ec6SJames Lo 	WACS_INIT_DONE           = 0x01,
575bc88ec6SJames Lo 	WACS_SYNC_IDLE           = 0x01,
585bc88ec6SJames Lo 	WACS_SYNC_BUSY           = 0x00
595bc88ec6SJames Lo };
605bc88ec6SJames Lo 
615bc88ec6SJames Lo #endif /* PMIC_WRAP_INIT_H */
62