Commit 39b2ca68 authored by Heiner Kallweit's avatar Heiner Kallweit Committed by Wolfram Sang

i2c: meson: use i2c core for DT clock-frequency parsing

We don't have to parse the DT manually to retrieve the bus frequency
and we don't have to maintain an own default for the bus frequency.
Let the i2c core do this for us.
Signed-off-by: default avatarHeiner Kallweit <hkallweit1@gmail.com>
Reviewed-by: default avatarJerome Brunet <jbrunet@baylibre.com>
Signed-off-by: default avatarWolfram Sang <wsa@the-dreams.de>
parent 09af1c2f
...@@ -8,6 +8,8 @@ Required properties: ...@@ -8,6 +8,8 @@ Required properties:
- #address-cells: should be <1> - #address-cells: should be <1>
- #size-cells: should be <0> - #size-cells: should be <0>
For details regarding the following core I2C bindings see also i2c.txt.
Optional properties: Optional properties:
- clock-frequency: the desired I2C bus clock frequency in Hz; in - clock-frequency: the desired I2C bus clock frequency in Hz; in
absence of this property the default value is used (100 kHz). absence of this property the default value is used (100 kHz).
......
...@@ -38,7 +38,6 @@ ...@@ -38,7 +38,6 @@
#define REG_CTRL_CLKDIV_MASK ((BIT(10) - 1) << REG_CTRL_CLKDIV_SHIFT) #define REG_CTRL_CLKDIV_MASK ((BIT(10) - 1) << REG_CTRL_CLKDIV_SHIFT)
#define I2C_TIMEOUT_MS 500 #define I2C_TIMEOUT_MS 500
#define DEFAULT_FREQ 100000
enum { enum {
TOKEN_END = 0, TOKEN_END = 0,
...@@ -387,15 +386,14 @@ static int meson_i2c_probe(struct platform_device *pdev) ...@@ -387,15 +386,14 @@ static int meson_i2c_probe(struct platform_device *pdev)
struct device_node *np = pdev->dev.of_node; struct device_node *np = pdev->dev.of_node;
struct meson_i2c *i2c; struct meson_i2c *i2c;
struct resource *mem; struct resource *mem;
u32 freq; struct i2c_timings timings;
int irq, ret = 0; int irq, ret = 0;
i2c = devm_kzalloc(&pdev->dev, sizeof(struct meson_i2c), GFP_KERNEL); i2c = devm_kzalloc(&pdev->dev, sizeof(struct meson_i2c), GFP_KERNEL);
if (!i2c) if (!i2c)
return -ENOMEM; return -ENOMEM;
if (of_property_read_u32(pdev->dev.of_node, "clock-frequency", &freq)) i2c_parse_fw_timings(&pdev->dev, &timings, true);
freq = DEFAULT_FREQ;
i2c->dev = &pdev->dev; i2c->dev = &pdev->dev;
platform_set_drvdata(pdev, i2c); platform_set_drvdata(pdev, i2c);
...@@ -452,7 +450,7 @@ static int meson_i2c_probe(struct platform_device *pdev) ...@@ -452,7 +450,7 @@ static int meson_i2c_probe(struct platform_device *pdev)
return ret; return ret;
} }
meson_i2c_set_clk_div(i2c, freq); meson_i2c_set_clk_div(i2c, timings.bus_freq_hz);
return 0; return 0;
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment