Messages in this thread | | | Subject | Re: [PATCH 04/15] firmware: arm_scmi: Add names to scmi devices created | From | Cristian Marussi <> | Date | Tue, 10 Dec 2019 18:26:42 +0000 |
| |
Hi
On 10/12/2019 14:53, Sudeep Holla wrote: > 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. > > Signed-off-by: Sudeep Holla <sudeep.holla@arm.com> > --- > drivers/firmware/arm_scmi/driver.c | 36 +++++++++++++++++++++++++++++- > 1 file changed, 35 insertions(+), 1 deletion(-) > > diff --git a/drivers/firmware/arm_scmi/driver.c b/drivers/firmware/arm_scmi/driver.c > index 2952fcd8dd8a..0bbdc7c9eb0f 100644 > --- a/drivers/firmware/arm_scmi/driver.c > +++ b/drivers/firmware/arm_scmi/driver.c > @@ -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; > -- > 2.17.1 >
I'm a little bit puzzled by the builtin fixed define MAX_SCMI_DEV_PER_PROTOCOL, but I have not really an alternative solution as of now, so looks good to me.
Reviewed-by: Cristian Marussi <cristian.marussi@arm.com>
Cheers
Cristian
| |