summaryrefslogtreecommitdiffstats
path: root/drivers/mfd/mc13xxx.c
Commit message (Collapse)AuthorAgeFilesLines
* of: use 'const void *' for struct of_device_id.dataAntony Pavlov2015-04-301-4/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Since 2011 barebox' of_device_id struct uses unsigned long type for data field: struct of_device_id { char *compatible; unsigned long data; }; Almost always struct of_device_id.data field are used as pointer and need 'unsigned long' casting. E.g. see 'git grep -A 4 of_device_id drivers/' output: drivers/ata/sata-imx.c:static __maybe_unused struct of_device_id imx_sata_dt_ids[] = { drivers/ata/sata-imx.c- { drivers/ata/sata-imx.c- .compatible = "fsl,imx6q-ahci", drivers/ata/sata-imx.c- .data = (unsigned long)&data_imx6, drivers/ata/sata-imx.c- }, { Here is of_device_id struct in linux kernel v4.0: struct of_device_id { char name[32]; char type[32]; char compatible[128]; const void *data; }; Changing of_device_id.data type to 'const void *data' will increase barebox' linux kernel compatibility and decrease number of 'unsigned long' casts. Part of the patch was done using the 'coccinelle' tool with the following semantic patch: @rule1@ identifier dev; identifier type; identifier func; @@ func(...) { <... - dev_get_drvdata(dev, (unsigned long *)&type) + dev_get_drvdata(dev, (const void **)&type) ...> } @rule2@ identifier dev; identifier type; identifier func; identifier data; @@ func(...) { <... - dev_get_drvdata(dev, (unsigned long *)&type->data) + dev_get_drvdata(dev, (const void **)&type->data) ...> } Signed-off-by: Antony Pavlov <antonynpavlov@gmail.com> Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
* mfd: mc13xxx: move to coredevice_initcallSascha Hauer2014-05-191-11/+21
| | | | | | | | The PMIC is often a dependency for other devices, so make sure it's initialized early. While at it, merge the spi/i2c registration into a single initcall and use IS_ENABLED instead of ifdefs. Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
* mfd: mc13xxx: Allow to set callback for mc13xxxSascha Hauer2014-05-191-0/+18
| | | | | | | | | | | | | Some boards have to initialize the PMIC before other devices can be initialized. This requires three levels of initcalls: one level in which the PMIC is probed, one in which the board can call mc13xxx_get() and the third one to initialize the PMIC dependent devices. Allow to register a callback which is called once the PMIC is initialized. This way mc13xxx_get() is no longer necessary and the number of required initcalls levels is reduced to two. Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
* treewide: Add missing includesSascha Hauer2013-11-081-0/+1
| | | | | | | | A lot of files rely on include/driver.h including include/of.h (and this including include/errno.h. include the files explicitly so we can eventually get rid of including of.h from driver.h Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
* mfd: mc13xxx: Add support for MC34708Alexander Shiyan2013-07-151-0/+20
| | | | | | | This patch moves support for MC34708 PMIC into mc13xxx driver. Signed-off-by: Alexander Shiyan <shc_work@mail.ru> Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
* mfd: mc13xxx: Separate query_revision function for each supported ICAlexander Shiyan2013-07-151-68/+97
| | | | | Signed-off-by: Alexander Shiyan <shc_work@mail.ru> Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
* mfd: mc13xxx: Determine used bus by "bus_type" fieldAlexander Shiyan2013-07-151-42/+21
| | | | | Signed-off-by: Alexander Shiyan <shc_work@mail.ru> Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
* Introduce device_spi_driver() macro and use it for SPI driversAlexander Shiyan2013-03-141-7/+1
| | | | | Signed-off-by: Alexander Shiyan <shc_work@mail.ru> Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
* I2C: Rename i2c_register_driver() for using with register_driver_macro()Alexander Shiyan2013-03-141-1/+1
| | | | | Signed-off-by: Alexander Shiyan <shc_work@mail.ru> Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
* SPI: Rename spi_register_driver() for using with register_driver_macro()Alexander Shiyan2013-03-141-1/+1
| | | | | Signed-off-by: Alexander Shiyan <shc_work@mail.ru> Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
* Merge branch 'for-next/remove-fsf-address'Sascha Hauer2012-10-031-4/+0
|\ | | | | | | | | | | Conflicts: drivers/net/miidev.c include/miidev.h
| * Treewide: remove address of the Free Software FoundationSascha Hauer2012-09-171-4/+0
| | | | | | | | | | | | | | The FSF address has changed in the past. Instead of updating it each time the address changes, just drop it completely treewide. Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
* | mfd mc13xxx: Add devicetree supportSascha Hauer2012-09-231-0/+12
| | | | | | | | Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
* | I2C: Put I2C devices on their own busSascha Hauer2012-09-141-1/+1
| | | | | | | | | | | | | | | | This patch adds a I2C bus on which the I2C devices and drivers register. This makes it cleaner as I2C devices won't accidently end up probed by a platform_device driver. Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
* | SPI: Put SPI devices on their own busSascha Hauer2012-09-141-1/+1
| | | | | | | | | | | | | | | | | | This patch adds a SPI bus on which the SPI devices and drivers register. This makes it cleaner as SPI devices won't accidently end up probed by a platform_device driver. Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de> Signed-off-by: Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com>
* | mfd mc13xxx: Separate I2C and SPI probeSascha Hauer2012-09-111-10/+18
|/ | | | | | | | | | Upcoming patches will put I2C/SPI on their own busses with spi_register_driver / i2c_register_driver which will only be available if the subsystem is enabled. We could provide static inlines, but it wouldn't make much sense to compile a spi/i2c driver if the corresponding subsystem is disabled. Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
* mc13xxx: Fixed memory leakAlexander Shiyan2012-09-041-5/+5
| | | | | | | | A string allocated by asprintf is not freed, so change it to a sprintf with the preallocated buffer. Signed-off-by: Alexander Shiyan <shc_work@mail.ru> Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
* mc13xxx: Hide private struct mc13xxx from other unitsAlexander Shiyan2012-09-041-0/+15
| | | | | | | Board support units must use only the provided functions. Signed-off-by: Alexander Shiyan <shc_work@mail.ru> Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
* mc13xxx: Added mc13xxx_revision() function.Alexander Shiyan2012-08-101-0/+6
| | | | | Signed-off-by: Alexander Shiyan <shc_work@mail.ru> Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
* mc13xxx: Define maximum SPI clock frequency global to driverAlexander Shiyan2012-07-201-0/+1
| | | | | | | | | | This patch provide setup for SPI clk frequency global to driver. For MC13783 maximum clock frequency is 20 MHz, for MC13892 maximum clock frequency is 26 MHz, so we define 20 MHz as a maximum SPI clk. Signed-off-by: Alexander Shiyan <shc_work@mail.ru> Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
* use loff_t for file offsetsSascha Hauer2012-06-301-2/+2
| | | | | | | This is a first step for 64bit file support: Make the file sizes/offsets 64bit. Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
* mfd mc13xxxx: Set mc_dev to NULL on failureSascha Hauer2012-05-161-3/+1
| | | | | | | | | The mc13xxx driver correctly bails out on failure, but leaves mc_dev initialized, so a later mc13xxx_get won't fail but returns an invalid pointer. Fix this. While at it, remove some superfluous code from mc13xxx_get. Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
* Add support for MC13783 to mc13xxx driverAlexander Shiyan2012-04-111-0/+10
| | | | | Signed-off-by: Alexander Shiyan <shc_work@mail.ru> Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
* Rename definition MC13892_REG_IDENTIFICATION to MC13XXX_Alexander Shiyan2012-04-111-1/+1
| | | | | Signed-off-by: Alexander Shiyan <shc_work@mail.ru> Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
* Detect MC13892 chip ID in mc13xxx_query_revision()Alexander Shiyan2012-04-111-17/+26
| | | | | Signed-off-by: Alexander Shiyan <shc_work@mail.ru> Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
* Rename remainings structs and functions from mc13892_ to mc13xxx_Alexander Shiyan2012-04-111-33/+33
| | | | | Signed-off-by: Alexander Shiyan <shc_work@mail.ru> Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
* Make mc13892_revision enum as defineAlexander Shiyan2012-04-111-3/+3
| | | | | Signed-off-by: Alexander Shiyan <shc_work@mail.ru> Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
* Sort includes in mc13xxx.cAlexander Shiyan2012-04-111-1/+1
| | | | | Signed-off-by: Alexander Shiyan <shc_work@mail.ru> Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
* Rename mc13892 driver name to mc13xxxAlexander Shiyan2012-04-111-3/+3
| | | | | Signed-off-by: Alexander Shiyan <shc_work@mail.ru> Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
* Rename mc13892_mode enum to mc13xxx_modeAlexander Shiyan2012-04-111-9/+9
| | | | | | | Also renamed enum values. Signed-off-by: Alexander Shiyan <shc_work@mail.ru> Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
* Rename mc13892.c unit to mc13xxx.cAlexander Shiyan2012-04-111-0/+327
Also renamed config option name to MFD_MC13XXX. Signed-off-by: Alexander Shiyan <shc_work@mail.ru> Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>