Skip to content

Commit

Permalink
staging: nvec: move device tree parsing to its own function
Browse files Browse the repository at this point in the history
This moves device tree parsing to its own function so more stuff can
be cleanly added in the future.

Signed-off-by: Leon Romanovsky <leon@leon.nu>
Signed-off-by: Marc Dietrich <marvin24@gmx.de>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
  • Loading branch information
Marc Dietrich authored and Greg Kroah-Hartman committed Jun 24, 2013
1 parent 2c6cbdd commit 95cd186
Showing 1 changed file with 24 additions and 11 deletions.
35 changes: 24 additions & 11 deletions drivers/staging/nvec/nvec.c
Original file line number Diff line number Diff line change
Expand Up @@ -771,6 +771,27 @@ static void nvec_power_off(void)
nvec_write_async(nvec_power_handle, ap_pwr_down, 2);
}

/*
* Parse common device tree data
*/
static int nvec_i2c_parse_dt_pdata(struct nvec_chip *nvec)
{
nvec->gpio = of_get_named_gpio(nvec->dev->of_node, "request-gpios", 0);

if (nvec->gpio < 0) {
dev_err(nvec->dev, "no gpio specified");
return -ENODEV;
}

if (of_property_read_u32(nvec->dev->of_node, "slave-addr",
&nvec->i2c_addr)) {
dev_err(nvec->dev, "no i2c address specified");
return -ENODEV;
}

return 0;
}

static int tegra_nvec_probe(struct platform_device *pdev)
{
int err, ret;
Expand All @@ -796,17 +817,9 @@ static int tegra_nvec_probe(struct platform_device *pdev)
platform_set_drvdata(pdev, nvec);
nvec->dev = &pdev->dev;

nvec->gpio = of_get_named_gpio(nvec->dev->of_node, "request-gpios", 0);
if (nvec->gpio < 0) {
dev_err(&pdev->dev, "no gpio specified");
return -ENODEV;
}

if (of_property_read_u32(nvec->dev->of_node, "slave-addr",
&nvec->i2c_addr)) {
dev_err(&pdev->dev, "no i2c address specified");
return -ENODEV;
}
err = nvec_i2c_parse_dt_pdata(nvec);
if (err < 0)
return err;

res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
base = devm_ioremap_resource(&pdev->dev, res);
Expand Down

0 comments on commit 95cd186

Please sign in to comment.