summaryrefslogtreecommitdiffstats
path: root/drivers/gpio
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/gpio
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/gpio')
-rw-r--r--drivers/gpio/gpio-generic.c2
-rw-r--r--drivers/gpio/gpio-imx.c18
-rw-r--r--drivers/gpio/gpio-mxs.c6
-rw-r--r--drivers/gpio/gpio-omap.c6
-rw-r--r--drivers/gpio/gpio-pca953x.c2
-rw-r--r--drivers/gpio/gpio-tegra.c6
6 files changed, 20 insertions, 20 deletions
diff --git a/drivers/gpio/gpio-generic.c b/drivers/gpio/gpio-generic.c
index 1524a3304b..c6202fc651 100644
--- a/drivers/gpio/gpio-generic.c
+++ b/drivers/gpio/gpio-generic.c
@@ -370,7 +370,7 @@ static int bgpio_dev_probe(struct device_d *dev)
if (err)
return err;
- dev_get_drvdata(dev, &flags);
+ dev_get_drvdata(dev, (const void **)&flags);
bgc = xzalloc(sizeof(struct bgpio_chip));
if (!bgc)
diff --git a/drivers/gpio/gpio-imx.c b/drivers/gpio/gpio-imx.c
index d32638cf0b..6311db22fe 100644
--- a/drivers/gpio/gpio-imx.c
+++ b/drivers/gpio/gpio-imx.c
@@ -136,7 +136,7 @@ static int imx_gpio_probe(struct device_d *dev)
struct imx_gpio_regs *regs;
int ret;
- ret = dev_get_drvdata(dev, (unsigned long *)&regs);
+ ret = dev_get_drvdata(dev, (const void **)&regs);
if (ret)
return ret;
@@ -164,28 +164,28 @@ static int imx_gpio_probe(struct device_d *dev)
static __maybe_unused struct of_device_id imx_gpio_dt_ids[] = {
{
.compatible = "fsl,imx1-gpio",
- .data = (unsigned long)&regs_imx1,
+ .data = &regs_imx1,
}, {
.compatible = "fsl,imx21-gpio",
- .data = (unsigned long)&regs_imx1,
+ .data = &regs_imx1,
}, {
.compatible = "fsl,imx27-gpio",
- .data = (unsigned long)&regs_imx1,
+ .data = &regs_imx1,
}, {
.compatible = "fsl,imx31-gpio",
- .data = (unsigned long)&regs_imx31,
+ .data = &regs_imx31,
}, {
.compatible = "fsl,imx35-gpio",
- .data = (unsigned long)&regs_imx31,
+ .data = &regs_imx31,
}, {
.compatible = "fsl,imx51-gpio",
- .data = (unsigned long)&regs_imx31,
+ .data = &regs_imx31,
}, {
.compatible = "fsl,imx53-gpio",
- .data = (unsigned long)&regs_imx31,
+ .data = &regs_imx31,
}, {
.compatible = "fsl,imx6q-gpio",
- .data = (unsigned long)&regs_imx31,
+ .data = &regs_imx31,
}, {
/* sentinel */
}
diff --git a/drivers/gpio/gpio-mxs.c b/drivers/gpio/gpio-mxs.c
index 30f9589831..b2b3ad3ac6 100644
--- a/drivers/gpio/gpio-mxs.c
+++ b/drivers/gpio/gpio-mxs.c
@@ -112,7 +112,7 @@ static int mxs_gpio_probe(struct device_d *dev)
struct mxs_gpio_regs *regs;
int ret, id;
- ret = dev_get_drvdata(dev, (unsigned long *)&regs);
+ ret = dev_get_drvdata(dev, (const void **)&regs);
if (ret)
return ret;
@@ -150,10 +150,10 @@ static int mxs_gpio_probe(struct device_d *dev)
static __maybe_unused struct of_device_id mxs_gpio_dt_ids[] = {
{
.compatible = "fsl,imx23-gpio",
- .data = (unsigned long)&regs_mxs23,
+ .data = &regs_mxs23,
}, {
.compatible = "fsl,imx28-gpio",
- .data = (unsigned long)&regs_mxs28,
+ .data = &regs_mxs28,
}, {
/* sentinel */
}
diff --git a/drivers/gpio/gpio-omap.c b/drivers/gpio/gpio-omap.c
index ff31b15dcd..43449df45b 100644
--- a/drivers/gpio/gpio-omap.c
+++ b/drivers/gpio/gpio-omap.c
@@ -144,7 +144,7 @@ static int omap_gpio_probe(struct device_d *dev)
struct omap_gpio_chip *omapgpio;
struct omap_gpio_drvdata *drvdata = NULL;
- dev_get_drvdata(dev, (unsigned long *)&drvdata);
+ dev_get_drvdata(dev, (const void **)&drvdata);
omapgpio = xzalloc(sizeof(*omapgpio));
omapgpio->base = dev_request_mem_region(dev, 0);
@@ -176,10 +176,10 @@ static int omap_gpio_probe(struct device_d *dev)
static __maybe_unused struct of_device_id omap_gpio_dt_ids[] = {
{
.compatible = "ti,omap4-gpio",
- .data = (unsigned long)&gpio_omap4_drvdata,
+ .data = &gpio_omap4_drvdata,
}, {
.compatible = "ti,omap3-gpio",
- .data = (unsigned long)&gpio_omap3_drvdata,
+ .data = &gpio_omap3_drvdata,
}, {
}
};
diff --git a/drivers/gpio/gpio-pca953x.c b/drivers/gpio/gpio-pca953x.c
index aabbb09eb8..3c952301a1 100644
--- a/drivers/gpio/gpio-pca953x.c
+++ b/drivers/gpio/gpio-pca953x.c
@@ -431,7 +431,7 @@ static int pca953x_probe(struct device_d *dev)
} else {
int err;
- err = dev_get_drvdata(dev, &driver_data);
+ err = dev_get_drvdata(dev, (const void **)&driver_data);
if (err)
return err;
diff --git a/drivers/gpio/gpio-tegra.c b/drivers/gpio/gpio-tegra.c
index d4eea4e572..e2cc3f4a8c 100644
--- a/drivers/gpio/gpio-tegra.c
+++ b/drivers/gpio/gpio-tegra.c
@@ -142,7 +142,7 @@ static int tegra_gpio_probe(struct device_d *dev)
{
int i, j, ret;
- ret = dev_get_drvdata(dev, (unsigned long *)&config);
+ ret = dev_get_drvdata(dev, (const void **)&config);
if (ret) {
dev_err(dev, "dev_get_drvdata failed: %d\n", ret);
return ret;
@@ -184,10 +184,10 @@ static struct tegra_gpio_soc_config tegra30_gpio_config = {
static __maybe_unused struct of_device_id tegra_gpio_dt_ids[] = {
{
.compatible = "nvidia,tegra20-gpio",
- .data = (unsigned long)&tegra20_gpio_config
+ .data = &tegra20_gpio_config
}, {
.compatible = "nvidia,tegra30-gpio",
- .data = (unsigned long)&tegra30_gpio_config
+ .data = &tegra30_gpio_config
}, {
/* sentinel */
},