1*04150feeSXiaoDong Huang /* 2*04150feeSXiaoDong Huang * Copyright (c) 2024, Rockchip, Inc. All rights reserved. 3*04150feeSXiaoDong Huang * 4*04150feeSXiaoDong Huang * SPDX-License-Identifier: BSD-3-Clause 5*04150feeSXiaoDong Huang */ 6*04150feeSXiaoDong Huang 7*04150feeSXiaoDong Huang #ifndef RK_SCMI_RESET_DOMAIN_H 8*04150feeSXiaoDong Huang #define RK_SCMI_RESET_DOMAIN_H 9*04150feeSXiaoDong Huang 10*04150feeSXiaoDong Huang #include <stdint.h> 11*04150feeSXiaoDong Huang 12*04150feeSXiaoDong Huang #include <common.h> 13*04150feeSXiaoDong Huang 14*04150feeSXiaoDong Huang struct rk_scmi_rstd; 15*04150feeSXiaoDong Huang 16*04150feeSXiaoDong Huang struct rk_scmi_rstd_ops { 17*04150feeSXiaoDong Huang int (*reset_auto)(struct rk_scmi_rstd *rstd, uint32_t state); 18*04150feeSXiaoDong Huang int (*reset_explicit)(struct rk_scmi_rstd *rstd, bool assert_not_deassert); 19*04150feeSXiaoDong Huang }; 20*04150feeSXiaoDong Huang 21*04150feeSXiaoDong Huang typedef struct rk_scmi_rstd { 22*04150feeSXiaoDong Huang char name[SCMI_RESET_DOMAIN_ATTR_NAME_SZ]; 23*04150feeSXiaoDong Huang uint32_t id; 24*04150feeSXiaoDong Huang uint32_t attribute; 25*04150feeSXiaoDong Huang uint32_t latency; 26*04150feeSXiaoDong Huang struct rk_scmi_rstd_ops *rstd_ops; 27*04150feeSXiaoDong Huang } rk_scmi_rstd_t; 28*04150feeSXiaoDong Huang 29*04150feeSXiaoDong Huang /* 30*04150feeSXiaoDong Huang * Return number of reset domain for an agent 31*04150feeSXiaoDong Huang * @agent_id: SCMI agent ID 32*04150feeSXiaoDong Huang * Return number of reset domain 33*04150feeSXiaoDong Huang */ 34*04150feeSXiaoDong Huang size_t rockchip_scmi_rstd_count(unsigned int agent_id); 35*04150feeSXiaoDong Huang 36*04150feeSXiaoDong Huang /* 37*04150feeSXiaoDong Huang * Get rk_scmi_rstd_t point 38*04150feeSXiaoDong Huang * @agent_id: SCMI agent ID 39*04150feeSXiaoDong Huang * @scmi_id: SCMI rstd ID 40*04150feeSXiaoDong Huang * Return a rk_scmi_rstd_t point 41*04150feeSXiaoDong Huang */ 42*04150feeSXiaoDong Huang rk_scmi_rstd_t *rockchip_scmi_get_rstd(unsigned int agent_id, 43*04150feeSXiaoDong Huang unsigned int scmi_id); 44*04150feeSXiaoDong Huang 45*04150feeSXiaoDong Huang #endif /* RK_SCMI_RESET_DOMAIN_H */ 46