Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 8 additions & 1 deletion components/drivers/pmdomain/pm-domain-scmi.c
Original file line number Diff line number Diff line change
Expand Up @@ -131,4 +131,11 @@ static struct rt_scmi_driver scmi_pm_domain_driver =

.probe = scmi_pm_domain_probe,
};
RT_SCMI_DRIVER_EXPORT(scmi_pm_domain_driver);

static int scmi_pm_domain_drv_register(void)
{
rt_scmi_driver_register(&scmi_pm_domain_driver);

return 0;
}
INIT_SUBSYS_EXPORT(scmi_pm_domain_drv_register);
20 changes: 14 additions & 6 deletions components/drivers/reset/reset-scmi.c
Original file line number Diff line number Diff line change
Expand Up @@ -41,21 +41,21 @@ static rt_err_t scmi_reset_do(struct scmi_reset *srst, int domain,

static rt_err_t scmi_reset_reset(struct rt_reset_control *rstc)
{
struct scmi_reset *srst = raw_to_scmi_reset(rstc);
struct scmi_reset *srst = raw_to_scmi_reset(rstc->rstcer);

return scmi_reset_do(srst, rstc->id, SCMI_RESET_FLAG_RESET, SCMI_ARCH_COLD_RESET);
}

static rt_err_t scmi_reset_assert(struct rt_reset_control *rstc)
{
struct scmi_reset *srst = raw_to_scmi_reset(rstc);
struct scmi_reset *srst = raw_to_scmi_reset(rstc->rstcer);

return scmi_reset_do(srst, rstc->id, SCMI_RESET_FLAG_ASSERT, SCMI_ARCH_COLD_RESET);
}

static rt_err_t scmi_reset_deassert(struct rt_reset_control *rstc)
{
struct scmi_reset *srst = raw_to_scmi_reset(rstc);
struct scmi_reset *srst = raw_to_scmi_reset(rstc->rstcer);

return scmi_reset_do(srst, rstc->id, 0, SCMI_ARCH_COLD_RESET);
}
Expand All @@ -64,10 +64,10 @@ static rt_err_t scmi_reset_ofw_parse(struct rt_reset_control *rstc,
struct rt_ofw_cell_args *args)
{
rt_err_t err;
struct scmi_reset *srst = raw_to_scmi_reset(rstc);
struct scmi_reset *srst = raw_to_scmi_reset(rstc->rstcer);
struct scmi_reset_attr_in in =
{
.domain_id = rt_cpu_to_le32(rstc->id),
.domain_id = rt_cpu_to_le32(args->args[0]),
};
struct scmi_reset_attr_out out;
struct rt_scmi_msg msg = RT_SCMI_MSG_IN_OUT(SCMI_RESET_DOMAIN_ATTRIBUTES, &in, &out);
Expand Down Expand Up @@ -98,6 +98,7 @@ static rt_err_t scmi_reset_probe(struct rt_scmi_device *sdev)
{
return -RT_ENOMEM;
}
srst->sdev = sdev;

rstcer = &srst->parent;

Expand Down Expand Up @@ -126,4 +127,11 @@ static struct rt_scmi_driver scmi_reset_driver =

.probe = scmi_reset_probe,
};
RT_SCMI_DRIVER_EXPORT(scmi_reset_driver);

static int scmi_reset_drv_register(void)
{
rt_scmi_driver_register(&scmi_reset_driver);

return 0;
}
INIT_SUBSYS_EXPORT(scmi_reset_drv_register);
Loading