Re: [PATCH 08/12] mfd: vexpress-sysreg: Add syscon labels as platform data
From: Lee Jones
Date: Tue Feb 11 2014 - 12:29:39 EST
> This patch adds label names for syscon registers as platform
> data for the relevant MFD cells.
Okay, I see.
Hmm... not sure I like this at all. It seems awfully as though you're
bending current infrastructure to suit your needs. There must be better
ways of passing a name than through pdata, and if there isn't I'd
suggest setting up a sysconf pdata struct that others can use in case
they wish to expand the functionality further in some other
unfathomable way. :)
> Cc: Samuel Ortiz <sameo@xxxxxxxxxxxxxxx>
> Cc: Lee Jones <lee.jones@xxxxxxxxxx>
> Signed-off-by: Pawel Moll <pawel.moll@xxxxxxx>
> ---
> drivers/mfd/vexpress-sysreg.c | 12 ++++++++++++
> 1 file changed, 12 insertions(+)
>
> diff --git a/drivers/mfd/vexpress-sysreg.c b/drivers/mfd/vexpress-sysreg.c
> index ece5ac8..57c21a0 100644
> --- a/drivers/mfd/vexpress-sysreg.c
> +++ b/drivers/mfd/vexpress-sysreg.c
> @@ -132,6 +132,8 @@ void __init vexpress_sysreg_early_init(void __iomem *base)
>
> /* The sysreg block is just a random collection of various functions... */
>
> +static const char vexpress_sysreg_sys_id_pdata[] = "sys_id";
> +
> static struct bgpio_pdata vexpress_sysreg_sys_led_pdata = {
> .label = "sys_led",
> .base = -1,
> @@ -150,6 +152,10 @@ static struct bgpio_pdata vexpress_sysreg_sys_flash_pdata = {
> .ngpio = 1,
> };
>
> +static const char vexpress_sysreg_sys_misc_pdata[] = "sys_misc";
> +
> +static const char vexpress_sysreg_sys_procid_pdata[] = "sys_procid";
> +
> static struct mfd_cell vexpress_sysreg_cells[] = {
> {
> .name = "syscon",
> @@ -157,6 +163,8 @@ static struct mfd_cell vexpress_sysreg_cells[] = {
> .resources = (struct resource []) {
> DEFINE_RES_MEM(SYS_ID, 0x4),
> },
> + .platform_data = &vexpress_sysreg_sys_id_pdata,
> + .pdata_size = sizeof(vexpress_sysreg_sys_id_pdata),
> }, {
> .name = "basic-mmio-gpio",
> .of_compatible = "arm,vexpress-sysreg,sys_led",
> @@ -190,12 +198,16 @@ static struct mfd_cell vexpress_sysreg_cells[] = {
> .resources = (struct resource []) {
> DEFINE_RES_MEM(SYS_MISC, 0x4),
> },
> + .platform_data = &vexpress_sysreg_sys_misc_pdata,
> + .pdata_size = sizeof(vexpress_sysreg_sys_misc_pdata),
> }, {
> .name = "syscon",
> .num_resources = 1,
> .resources = (struct resource []) {
> DEFINE_RES_MEM(SYS_PROCID0, 0x8),
> },
> + .platform_data = &vexpress_sysreg_sys_procid_pdata,
> + .pdata_size = sizeof(vexpress_sysreg_sys_procid_pdata),
> }, {
> .name = "vexpress-syscfg",
> .num_resources = 1,
--
Lee Jones
Linaro STMicroelectronics Landing Team Lead
Linaro.org â Open source software for ARM SoCs
Follow Linaro: Facebook | Twitter | Blog
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/