summaryrefslogtreecommitdiffstats
path: root/drivers/i2c
diff options
context:
space:
mode:
authorAntony Pavlov <antonynpavlov@gmail.com>2015-04-29 11:56:58 +0300
committerSascha Hauer <s.hauer@pengutronix.de>2015-04-30 08:12:57 +0200
commit377d261708d3057200c7ad9647fddb15169fea78 (patch)
tree9334590c4a63ec0b4ea01b91a7adc627a1ceb699 /drivers/i2c
parent92207cde490261c52cc804588561d8f3117cdf87 (diff)
downloadbarebox-377d261708d3057200c7ad9647fddb15169fea78.tar.gz
barebox-377d261708d3057200c7ad9647fddb15169fea78.tar.xz
of: use 'const void *' for struct of_device_id.data
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>
Diffstat (limited to 'drivers/i2c')
-rw-r--r--drivers/i2c/busses/i2c-at91.c14
-rw-r--r--drivers/i2c/busses/i2c-mv64xxx.c8
-rw-r--r--drivers/i2c/busses/i2c-omap.c4
-rw-r--r--drivers/i2c/busses/i2c-tegra.c10
4 files changed, 18 insertions, 18 deletions
diff --git a/drivers/i2c/busses/i2c-at91.c b/drivers/i2c/busses/i2c-at91.c
index 3a644cf62f..622c56d97b 100644
--- a/drivers/i2c/busses/i2c-at91.c
+++ b/drivers/i2c/busses/i2c-at91.c
@@ -387,22 +387,22 @@ static struct platform_device_id at91_twi_devtypes[] = {
static struct of_device_id at91_twi_dt_ids[] = {
{
.compatible = "atmel,at91rm9200-i2c",
- .data = (unsigned long) &at91rm9200_config,
+ .data = &at91rm9200_config,
} , {
.compatible = "atmel,at91sam9260-i2c",
- .data = (unsigned long) &at91sam9260_config,
+ .data = &at91sam9260_config,
} , {
.compatible = "atmel,at91sam9261-i2c",
- .data = (unsigned long) &at91sam9261_config,
+ .data = &at91sam9261_config,
} , {
.compatible = "atmel,at91sam9g20-i2c",
- .data = (unsigned long) &at91sam9g20_config,
+ .data = &at91sam9g20_config,
} , {
.compatible = "atmel,at91sam9g10-i2c",
- .data = (unsigned long) &at91sam9g10_config,
+ .data = &at91sam9g10_config,
}, {
.compatible = "atmel,at91sam9x5-i2c",
- .data = (unsigned long) &at91sam9x5_config,
+ .data = &at91sam9x5_config,
}, {
/* sentinel */
}
@@ -417,7 +417,7 @@ static int at91_twi_probe(struct device_d *dev)
i2c_at91 = xzalloc(sizeof(struct at91_twi_dev));
- rc = dev_get_drvdata(dev, (unsigned long *)&i2c_data);
+ rc = dev_get_drvdata(dev, (const void **)&i2c_data);
if (rc < 0) {
dev_err(dev, "failed to retrieve driver data\n");
goto out_free;
diff --git a/drivers/i2c/busses/i2c-mv64xxx.c b/drivers/i2c/busses/i2c-mv64xxx.c
index 6d8c85b9d7..3c0ccefd40 100644
--- a/drivers/i2c/busses/i2c-mv64xxx.c
+++ b/drivers/i2c/busses/i2c-mv64xxx.c
@@ -487,9 +487,9 @@ mv64xxx_i2c_xfer(struct i2c_adapter *adap, struct i2c_msg msgs[], int num)
*****************************************************************************
*/
static struct of_device_id mv64xxx_i2c_of_match_table[] = {
- { .compatible = "marvell,mv64xxx-i2c", .data = (unsigned long)&mv64xxx_i2c_regs_mv64xxx},
- { .compatible = "marvell,mv78230-i2c", .data = (unsigned long)&mv64xxx_i2c_regs_mv64xxx},
- { .compatible = "marvell,mv78230-a0-i2c", .data = (unsigned long)&mv64xxx_i2c_regs_mv64xxx},
+ { .compatible = "marvell,mv64xxx-i2c", .data = &mv64xxx_i2c_regs_mv64xxx},
+ { .compatible = "marvell,mv78230-i2c", .data = &mv64xxx_i2c_regs_mv64xxx},
+ { .compatible = "marvell,mv78230-a0-i2c", .data = &mv64xxx_i2c_regs_mv64xxx},
{}
};
@@ -574,7 +574,7 @@ mv64xxx_of_config(struct mv64xxx_i2c_data *drv_data,
goto out;
}
- dev_get_drvdata(pd, (unsigned long *)&mv64xxx_regs);
+ dev_get_drvdata(pd, (const void **)&mv64xxx_regs);
memcpy(&drv_data->reg_offsets, mv64xxx_regs,
sizeof(drv_data->reg_offsets));
diff --git a/drivers/i2c/busses/i2c-omap.c b/drivers/i2c/busses/i2c-omap.c
index 96c3c2bc87..4308963b18 100644
--- a/drivers/i2c/busses/i2c-omap.c
+++ b/drivers/i2c/busses/i2c-omap.c
@@ -1002,7 +1002,7 @@ i2c_omap_probe(struct device_d *pdev)
goto err_free_mem;
}
- r = dev_get_drvdata(pdev, (unsigned long *)&i2c_data);
+ r = dev_get_drvdata(pdev, (const void **)&i2c_data);
if (r)
return r;
@@ -1137,7 +1137,7 @@ static struct platform_device_id omap_i2c_ids[] = {
static __maybe_unused struct of_device_id omap_i2c_dt_ids[] = {
{
.compatible = "ti,omap3-i2c",
- .data = (unsigned long)&omap3_data,
+ .data = &omap3_data,
}, {
.compatible = "ti,omap4-i2c",
}, {
diff --git a/drivers/i2c/busses/i2c-tegra.c b/drivers/i2c/busses/i2c-tegra.c
index f793cbeabf..f6a4b227f4 100644
--- a/drivers/i2c/busses/i2c-tegra.c
+++ b/drivers/i2c/busses/i2c-tegra.c
@@ -640,7 +640,7 @@ static int tegra_i2c_probe(struct device_d *dev)
i2c_dev->bus_clk_rate = 100000; /* default clock rate */
i2c_dev->hw = &tegra20_i2c_hw;
- dev_get_drvdata(dev, (unsigned long *)&i2c_dev->hw);
+ dev_get_drvdata(dev, (const void **)&i2c_dev->hw);
i2c_dev->is_dvc = of_device_is_compatible(dev->device_node,
"nvidia,tegra20-i2c-dvc");
@@ -676,16 +676,16 @@ static int tegra_i2c_probe(struct device_d *dev)
static __maybe_unused struct of_device_id tegra_i2c_compatible[] = {
{
.compatible = "nvidia,tegra114-i2c",
- .data = (unsigned long)&tegra114_i2c_hw,
+ .data = &tegra114_i2c_hw,
}, {
.compatible = "nvidia,tegra30-i2c",
- .data = (unsigned long)&tegra30_i2c_hw,
+ .data = &tegra30_i2c_hw,
}, {
.compatible = "nvidia,tegra20-i2c",
- .data = (unsigned long)&tegra20_i2c_hw,
+ .data = &tegra20_i2c_hw,
}, {
.compatible = "nvidia,tegra20-i2c-dvc",
- .data = (unsigned long)&tegra20_i2c_hw,
+ .data = &tegra20_i2c_hw,
}, {
/* sentinel */
}