1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374 |
- /*
- * Copyright (c) 2024, Rockchip, Inc. All rights reserved.
- *
- * SPDX-License-Identifier: BSD-3-Clause
- */
- #include <drivers/scmi-msg.h>
- #include <drivers/scmi.h>
- #include "scmi_rstd.h"
- #pragma weak rockchip_scmi_rstd_count
- #pragma weak rockchip_scmi_get_rstd
- size_t rockchip_scmi_rstd_count(unsigned int agent_id __unused)
- {
- return 0U;
- }
- rk_scmi_rstd_t *rockchip_scmi_get_rstd(unsigned int agent_id __unused,
- unsigned int scmi_id __unused)
- {
- return NULL;
- }
- size_t plat_scmi_rstd_count(unsigned int agent_id)
- {
- return rockchip_scmi_rstd_count(agent_id);
- }
- const char *plat_scmi_rstd_get_name(unsigned int agent_id,
- unsigned int scmi_id)
- {
- rk_scmi_rstd_t *rstd;
- rstd = rockchip_scmi_get_rstd(agent_id, scmi_id);
- if (rstd == NULL)
- return NULL;
- return rstd->name;
- }
- int32_t plat_scmi_rstd_autonomous(unsigned int agent_id,
- unsigned int scmi_id,
- unsigned int state)
- {
- rk_scmi_rstd_t *rstd;
- rstd = rockchip_scmi_get_rstd(agent_id, scmi_id);
- if (rstd == NULL)
- return SCMI_NOT_FOUND;
- if ((rstd->rstd_ops && rstd->rstd_ops->reset_auto) != 0)
- return rstd->rstd_ops->reset_auto(rstd, state);
- else
- return SCMI_NOT_SUPPORTED;
- }
- int32_t plat_scmi_rstd_set_state(unsigned int agent_id,
- unsigned int scmi_id,
- bool assert_not_deassert)
- {
- rk_scmi_rstd_t *rstd;
- rstd = rockchip_scmi_get_rstd(agent_id, scmi_id);
- if (rstd == NULL)
- return SCMI_NOT_FOUND;
- if ((rstd->rstd_ops && rstd->rstd_ops->reset_explicit) != 0)
- return rstd->rstd_ops->reset_explicit(rstd,
- assert_not_deassert);
- else
- return SCMI_NOT_SUPPORTED;
- }
|