diff options
author | Samuel Ortiz <sameo@linux.intel.com> | 2011-04-07 19:55:01 -0400 |
---|---|---|
committer | Samuel Ortiz <sameo@linux.intel.com> | 2011-05-26 13:45:07 -0400 |
commit | c8a03c96b61bd03a3603bfe5381848c0b40e99be (patch) | |
tree | 1c0f4ca09f11b506b0b00ca651f5b4920c54e41e /drivers/mfd | |
parent | 9abd768a8d470d58071e30c57d1fa4a7090518bc (diff) |
mfd: Use mfd cell platform_data for mc13xxx cells platform bits
With the addition of a platform device mfd_cell pointer, MFD drivers
can go back to passing platform data back to their sub drivers.
This allows for an mfd_cell->mfd_data removal and thus keep the
sub drivers MFD agnostic. This is mostly needed for non MFD aware
sub drivers.
Cc: Mark Brown <broonie@opensource.wolfsonmicro.com>
Cc: Liam Girdwood <lrg@slimlogic.co.uk>
Acked-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>
Diffstat (limited to 'drivers/mfd')
-rw-r--r-- | drivers/mfd/mc13xxx-core.c | 12 |
1 files changed, 7 insertions, 5 deletions
diff --git a/drivers/mfd/mc13xxx-core.c b/drivers/mfd/mc13xxx-core.c index 668634e89e81..7e4d44bf92ab 100644 --- a/drivers/mfd/mc13xxx-core.c +++ b/drivers/mfd/mc13xxx-core.c | |||
@@ -683,13 +683,14 @@ out: | |||
683 | EXPORT_SYMBOL_GPL(mc13783_adc_do_conversion); | 683 | EXPORT_SYMBOL_GPL(mc13783_adc_do_conversion); |
684 | 684 | ||
685 | static int mc13xxx_add_subdevice_pdata(struct mc13xxx *mc13xxx, | 685 | static int mc13xxx_add_subdevice_pdata(struct mc13xxx *mc13xxx, |
686 | const char *format, void *pdata) | 686 | const char *format, void *pdata, size_t pdata_size) |
687 | { | 687 | { |
688 | char buf[30]; | 688 | char buf[30]; |
689 | const char *name = mc13xxx_get_chipname(mc13xxx); | 689 | const char *name = mc13xxx_get_chipname(mc13xxx); |
690 | 690 | ||
691 | struct mfd_cell cell = { | 691 | struct mfd_cell cell = { |
692 | .mfd_data = pdata, | 692 | .platform_data = pdata, |
693 | .pdata_size = pdata_size, | ||
693 | }; | 694 | }; |
694 | 695 | ||
695 | /* there is no asnprintf in the kernel :-( */ | 696 | /* there is no asnprintf in the kernel :-( */ |
@@ -705,7 +706,7 @@ static int mc13xxx_add_subdevice_pdata(struct mc13xxx *mc13xxx, | |||
705 | 706 | ||
706 | static int mc13xxx_add_subdevice(struct mc13xxx *mc13xxx, const char *format) | 707 | static int mc13xxx_add_subdevice(struct mc13xxx *mc13xxx, const char *format) |
707 | { | 708 | { |
708 | return mc13xxx_add_subdevice_pdata(mc13xxx, format, NULL); | 709 | return mc13xxx_add_subdevice_pdata(mc13xxx, format, NULL, 0); |
709 | } | 710 | } |
710 | 711 | ||
711 | static int mc13xxx_probe(struct spi_device *spi) | 712 | static int mc13xxx_probe(struct spi_device *spi) |
@@ -764,7 +765,7 @@ err_revision: | |||
764 | 765 | ||
765 | if (pdata->flags & MC13XXX_USE_REGULATOR) { | 766 | if (pdata->flags & MC13XXX_USE_REGULATOR) { |
766 | mc13xxx_add_subdevice_pdata(mc13xxx, "%s-regulator", | 767 | mc13xxx_add_subdevice_pdata(mc13xxx, "%s-regulator", |
767 | &pdata->regulators); | 768 | &pdata->regulators, sizeof(pdata->regulators)); |
768 | } | 769 | } |
769 | 770 | ||
770 | if (pdata->flags & MC13XXX_USE_RTC) | 771 | if (pdata->flags & MC13XXX_USE_RTC) |
@@ -774,7 +775,8 @@ err_revision: | |||
774 | mc13xxx_add_subdevice(mc13xxx, "%s-ts"); | 775 | mc13xxx_add_subdevice(mc13xxx, "%s-ts"); |
775 | 776 | ||
776 | if (pdata->flags & MC13XXX_USE_LED) | 777 | if (pdata->flags & MC13XXX_USE_LED) |
777 | mc13xxx_add_subdevice_pdata(mc13xxx, "%s-led", pdata->leds); | 778 | mc13xxx_add_subdevice_pdata(mc13xxx, "%s-led", |
779 | pdata->leds, sizeof(*pdata->leds)); | ||
778 | 780 | ||
779 | return 0; | 781 | return 0; |
780 | } | 782 | } |