aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/mfd
diff options
context:
space:
mode:
authorSamuel Ortiz <sameo@linux.intel.com>2011-04-07 19:55:01 -0400
committerSamuel Ortiz <sameo@linux.intel.com>2011-05-26 13:45:07 -0400
commitc8a03c96b61bd03a3603bfe5381848c0b40e99be (patch)
tree1c0f4ca09f11b506b0b00ca651f5b4920c54e41e /drivers/mfd
parent9abd768a8d470d58071e30c57d1fa4a7090518bc (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.c12
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:
683EXPORT_SYMBOL_GPL(mc13783_adc_do_conversion); 683EXPORT_SYMBOL_GPL(mc13783_adc_do_conversion);
684 684
685static int mc13xxx_add_subdevice_pdata(struct mc13xxx *mc13xxx, 685static 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
706static int mc13xxx_add_subdevice(struct mc13xxx *mc13xxx, const char *format) 707static 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
711static int mc13xxx_probe(struct spi_device *spi) 712static 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}