Message ID | 20230530145601.2592-5-Jonathan.Cameron@huawei.com |
---|---|
State | Superseded |
Headers | show |
Series | i2c: Enabling use of aspeed-i2c with ACPI | expand |
On Tue, May 30, 2023 at 5:58 PM Jonathan Cameron <Jonathan.Cameron@huawei.com> wrote: > > Moving over to generic firmware properties allows this driver to > get closer to working out of the box with both device tree and > other firmware options, such as ACPI via PRP0001. > > Tested only via QEMU emulation. ... > -#include <linux/of_address.h> > -#include <linux/of_platform.h> > +#include <linux/property.h> Ah, stupid me. You can discard the previous question (in one of the previous emails). ... > + bus->get_clk_reg_val = (u32 (*)(struct device *, u32)) > + device_get_match_data(&pdev->dev); Why not typedef this function and use it here and there?
On Tue, 30 May 2023 22:50:12 +0300 Andy Shevchenko <andy.shevchenko@gmail.com> wrote: > On Tue, May 30, 2023 at 5:58 PM Jonathan Cameron > <Jonathan.Cameron@huawei.com> wrote: > > > > Moving over to generic firmware properties allows this driver to > > get closer to working out of the box with both device tree and > > other firmware options, such as ACPI via PRP0001. > > > > Tested only via QEMU emulation. > > ... > > > -#include <linux/of_address.h> > > -#include <linux/of_platform.h> > > > +#include <linux/property.h> > > Ah, stupid me. You can discard the previous question (in one of the > previous emails). > > ... > > > + bus->get_clk_reg_val = (u32 (*)(struct device *, u32)) > > + device_get_match_data(&pdev->dev); > > Why not typedef this function and use it here and there? > Minimizing scope of changes, but sure it's a reasonable tidy up so a precursor patch. Jonathan
diff --git a/drivers/i2c/busses/i2c-aspeed.c b/drivers/i2c/busses/i2c-aspeed.c index 4363bfe06f9b..353834d7ffd5 100644 --- a/drivers/i2c/busses/i2c-aspeed.c +++ b/drivers/i2c/busses/i2c-aspeed.c @@ -18,9 +18,8 @@ #include <linux/irq.h> #include <linux/kernel.h> #include <linux/module.h> -#include <linux/of_address.h> -#include <linux/of_platform.h> #include <linux/platform_device.h> +#include <linux/property.h> #include <linux/reset.h> #include <linux/slab.h> @@ -975,7 +974,6 @@ MODULE_DEVICE_TABLE(of, aspeed_i2c_bus_of_table); static int aspeed_i2c_probe_bus(struct platform_device *pdev) { - const struct of_device_id *match; struct aspeed_i2c_bus *bus; struct clk *parent_clk; int irq, ret; @@ -1004,15 +1002,13 @@ static int aspeed_i2c_probe_bus(struct platform_device *pdev) reset_control_deassert(bus->rst); bus->bus_frequency = I2C_MAX_STANDARD_MODE_FREQ; - of_property_read_u32(pdev->dev.of_node, - "bus-frequency", &bus->bus_frequency); + device_property_read_u32(&pdev->dev, + "bus-frequency", &bus->bus_frequency); - match = of_match_node(aspeed_i2c_bus_of_table, pdev->dev.of_node); - if (!match) + bus->get_clk_reg_val = (u32 (*)(struct device *, u32)) + device_get_match_data(&pdev->dev); + if (!bus->get_clk_reg_val) bus->get_clk_reg_val = aspeed_i2c_24xx_get_clk_reg_val; - else - bus->get_clk_reg_val = (u32 (*)(struct device *, u32)) - match->data; /* Initialize the I2C adapter */ spin_lock_init(&bus->lock);
Moving over to generic firmware properties allows this driver to get closer to working out of the box with both device tree and other firmware options, such as ACPI via PRP0001. Tested only via QEMU emulation. Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com> --- v2: - Added a proper patch description. - Updated to reflect optional nature of bus-frequency. --- drivers/i2c/busses/i2c-aspeed.c | 16 ++++++---------- 1 file changed, 6 insertions(+), 10 deletions(-)