firmware: arm_scmi: Add names to scmi devices created
Now that scmi bus provides option to create named scmi device, let us create the default devices with names. This will help to add names for matching to respective drivers and eventually to add multiple devices and drivers per protocol. Reviewed-by: Cristian Marussi <cristian.marussi@arm.com> Signed-off-by: Sudeep Holla <sudeep.holla@arm.com>
This commit is contained in:
parent
11040889af
commit
9c5c463f2a
@ -829,6 +829,40 @@ scmi_create_protocol_device(struct device_node *np, struct scmi_info *info,
|
||||
scmi_set_handle(sdev);
|
||||
}
|
||||
|
||||
#define MAX_SCMI_DEV_PER_PROTOCOL 2
|
||||
struct scmi_prot_devnames {
|
||||
int protocol_id;
|
||||
char *names[MAX_SCMI_DEV_PER_PROTOCOL];
|
||||
};
|
||||
|
||||
static struct scmi_prot_devnames devnames[] = {
|
||||
{ SCMI_PROTOCOL_POWER, { "genpd" },},
|
||||
{ SCMI_PROTOCOL_PERF, { "cpufreq" },},
|
||||
{ SCMI_PROTOCOL_CLOCK, { "clocks" },},
|
||||
{ SCMI_PROTOCOL_SENSOR, { "hwmon" },},
|
||||
{ SCMI_PROTOCOL_RESET, { "reset" },},
|
||||
};
|
||||
|
||||
static inline void
|
||||
scmi_create_protocol_devices(struct device_node *np, struct scmi_info *info,
|
||||
int prot_id)
|
||||
{
|
||||
int loop, cnt;
|
||||
|
||||
for (loop = 0; loop < ARRAY_SIZE(devnames); loop++) {
|
||||
if (devnames[loop].protocol_id != prot_id)
|
||||
continue;
|
||||
|
||||
for (cnt = 0; cnt < ARRAY_SIZE(devnames[loop].names); cnt++) {
|
||||
const char *name = devnames[loop].names[cnt];
|
||||
|
||||
if (name)
|
||||
scmi_create_protocol_device(np, info, prot_id,
|
||||
name);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
static int scmi_probe(struct platform_device *pdev)
|
||||
{
|
||||
int ret;
|
||||
@ -897,7 +931,7 @@ static int scmi_probe(struct platform_device *pdev)
|
||||
continue;
|
||||
}
|
||||
|
||||
scmi_create_protocol_device(child, info, prot_id, NULL);
|
||||
scmi_create_protocol_devices(child, info, prot_id);
|
||||
}
|
||||
|
||||
return 0;
|
||||
|
Loading…
Reference in New Issue
Block a user