Message ID | 20190610084213.1052-1-lee.jones@linaro.org (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | [v3,1/8] i2c: i2c-qcom-geni: Provide support for ACPI | expand |
On Mon, 10 Jun 2019 at 10:42, Lee Jones <lee.jones@linaro.org> wrote: > > Add a match table to allow automatic probing of ACPI device > QCOM0220. Ignore clock attainment errors. Set default clock > frequency value. > > Signed-off-by: Lee Jones <lee.jones@linaro.org> Acked-by: Ard Biesheuvel <ard.biesheuvel@linaro.org> > --- > drivers/i2c/busses/i2c-qcom-geni.c | 15 ++++++++++++++- > 1 file changed, 14 insertions(+), 1 deletion(-) > > diff --git a/drivers/i2c/busses/i2c-qcom-geni.c b/drivers/i2c/busses/i2c-qcom-geni.c > index db075bc0d952..9e3b8a98688d 100644 > --- a/drivers/i2c/busses/i2c-qcom-geni.c > +++ b/drivers/i2c/busses/i2c-qcom-geni.c > @@ -1,6 +1,7 @@ > // SPDX-License-Identifier: GPL-2.0 > // Copyright (c) 2017-2018, The Linux Foundation. All rights reserved. > > +#include <linux/acpi.h> > #include <linux/clk.h> > #include <linux/dma-mapping.h> > #include <linux/err.h> > @@ -483,6 +484,14 @@ static const struct i2c_algorithm geni_i2c_algo = { > .functionality = geni_i2c_func, > }; > > +#ifdef CONFIG_ACPI > +static const struct acpi_device_id geni_i2c_acpi_match[] = { > + { "QCOM0220"}, > + { }, > +}; > +MODULE_DEVICE_TABLE(acpi, geni_i2c_acpi_match); > +#endif > + > static int geni_i2c_probe(struct platform_device *pdev) > { > struct geni_i2c_dev *gi2c; > @@ -502,7 +511,7 @@ static int geni_i2c_probe(struct platform_device *pdev) > return PTR_ERR(gi2c->se.base); > > gi2c->se.clk = devm_clk_get(&pdev->dev, "se"); > - if (IS_ERR(gi2c->se.clk)) { > + if (IS_ERR(gi2c->se.clk) && !has_acpi_companion(&pdev->dev)) { > ret = PTR_ERR(gi2c->se.clk); > dev_err(&pdev->dev, "Err getting SE Core clk %d\n", ret); > return ret; > @@ -516,6 +525,9 @@ static int geni_i2c_probe(struct platform_device *pdev) > gi2c->clk_freq_out = KHZ(100); > } > > + if (has_acpi_companion(&pdev->dev)) > + ACPI_COMPANION_SET(&gi2c->adap.dev, ACPI_COMPANION(&pdev->dev)); > + > gi2c->irq = platform_get_irq(pdev, 0); > if (gi2c->irq < 0) { > dev_err(&pdev->dev, "IRQ error for i2c-geni\n"); > @@ -660,6 +672,7 @@ static struct platform_driver geni_i2c_driver = { > .name = "geni_i2c", > .pm = &geni_i2c_pm_ops, > .of_match_table = geni_i2c_dt_match, > + .acpi_match_table = ACPI_PTR(geni_i2c_acpi_match), > }, > }; > > -- > 2.17.1 >
On Mon, Jun 10, 2019 at 09:42:06AM +0100, Lee Jones wrote: > Add a match table to allow automatic probing of ACPI device > QCOM0220. Ignore clock attainment errors. Set default clock > frequency value. > > Signed-off-by: Lee Jones <lee.jones@linaro.org> Sadly, there is no cover-letter describing if there is a dependency or not. I assume there is, otherwise I would get the I2C patches only? But what is the suggested way upstream then? Also, the current maintainer entry for this driver looks like: drivers/i2c/busses/i2c-qcom-geni.c: Andy Gross <agross@kernel.org> (maintainer:ARM/QUALCOMM SUPPORT) David Brown <david.brown@linaro.org> (maintainer:ARM/QUALCOMM SUPPORT) Alok Chauhan <alokc@codeaurora.org> (supporter:QUALCOMM GENERIC INTERFACE I2C DRIVER) I didn't hear from those people yet, would be great to have their acks.
On Wed, 12 Jun 2019, Wolfram Sang wrote: > On Mon, Jun 10, 2019 at 09:42:06AM +0100, Lee Jones wrote: > > Add a match table to allow automatic probing of ACPI device > > QCOM0220. Ignore clock attainment errors. Set default clock > > frequency value. > > > > Signed-off-by: Lee Jones <lee.jones@linaro.org> > > Sadly, there is no cover-letter describing if there is a dependency or > not. I assume there is, otherwise I would get the I2C patches only? But > what is the suggested way upstream then? There are no cross-subsystem build dependencies on any of these patches. The only reason they are bundled together in the same patch-set is for cross-subsystem visibility and understanding. There is wide interest in these devices. > Also, the current maintainer entry for this driver looks like: > > drivers/i2c/busses/i2c-qcom-geni.c: > Andy Gross <agross@kernel.org> (maintainer:ARM/QUALCOMM SUPPORT) > David Brown <david.brown@linaro.org> (maintainer:ARM/QUALCOMM SUPPORT) > Alok Chauhan <alokc@codeaurora.org> (supporter:QUALCOMM GENERIC INTERFACE I2C DRIVER) > > I didn't hear from those people yet, would be great to have their acks. I will see if I can rouse them from their slumber.
> There are no cross-subsystem build dependencies on any of these > patches. The only reason they are bundled together in the same > patch-set is for cross-subsystem visibility and understanding. > > There is wide interest in these devices. I see. That would have been a great cover-letter, Lee ;) Thanks for the heads up! > > > Also, the current maintainer entry for this driver looks like: > > > > drivers/i2c/busses/i2c-qcom-geni.c: > > Andy Gross <agross@kernel.org> (maintainer:ARM/QUALCOMM SUPPORT) > > David Brown <david.brown@linaro.org> (maintainer:ARM/QUALCOMM SUPPORT) > > Alok Chauhan <alokc@codeaurora.org> (supporter:QUALCOMM GENERIC INTERFACE I2C DRIVER) > > > > I didn't hear from those people yet, would be great to have their acks. > > I will see if I can rouse them from their slumber. Please do. If they are not to reach, we probably need to update the entry...
On Wed, 12 Jun 2019, Wolfram Sang wrote: > > > There are no cross-subsystem build dependencies on any of these > > patches. The only reason they are bundled together in the same > > patch-set is for cross-subsystem visibility and understanding. > > > > There is wide interest in these devices. > > I see. That would have been a great cover-letter, Lee ;) Thanks for the > heads up! :) > > > Also, the current maintainer entry for this driver looks like: > > > > > > drivers/i2c/busses/i2c-qcom-geni.c: > > > Andy Gross <agross@kernel.org> (maintainer:ARM/QUALCOMM SUPPORT) > > > David Brown <david.brown@linaro.org> (maintainer:ARM/QUALCOMM SUPPORT) > > > Alok Chauhan <alokc@codeaurora.org> (supporter:QUALCOMM GENERIC INTERFACE I2C DRIVER) > > > > > > I didn't hear from those people yet, would be great to have their acks. > > > > I will see if I can rouse them from their slumber. > > Please do. If they are not to reach, we probably need to update the > entry... I contacted both of them. Andy doesn't touch anything that isn't QUP based (8994 and older). David doesn't deal with MSM platforms if Andy is available. So I guess the decision is yours. Seeing at this patch is pretty trivial and has our ACPI expert's Ack, the decision shouldn't be a difficult one.
On Thu, 13 Jun 2019, Lee Jones wrote: > On Wed, 12 Jun 2019, Wolfram Sang wrote: > > > > > > There are no cross-subsystem build dependencies on any of these > > > patches. The only reason they are bundled together in the same > > > patch-set is for cross-subsystem visibility and understanding. > > > > > > There is wide interest in these devices. > > > > I see. That would have been a great cover-letter, Lee ;) Thanks for the > > heads up! > > :) > > > > > Also, the current maintainer entry for this driver looks like: > > > > > > > > drivers/i2c/busses/i2c-qcom-geni.c: > > > > Andy Gross <agross@kernel.org> (maintainer:ARM/QUALCOMM SUPPORT) > > > > David Brown <david.brown@linaro.org> (maintainer:ARM/QUALCOMM SUPPORT) > > > > Alok Chauhan <alokc@codeaurora.org> (supporter:QUALCOMM GENERIC INTERFACE I2C DRIVER) > > > > > > > > I didn't hear from those people yet, would be great to have their acks. > > > > > > I will see if I can rouse them from their slumber. > > > > Please do. If they are not to reach, we probably need to update the > > entry... > > I contacted both of them. > > Andy doesn't touch anything that isn't QUP based (8994 and older). > > David doesn't deal with MSM platforms if Andy is available. > > So I guess the decision is yours. Seeing at this patch is pretty > trivial and has our ACPI expert's Ack, the decision shouldn't be a > difficult one. BTW, v4 has collected Acks and a cover-letter. :)
> I contacted both of them. > > Andy doesn't touch anything that isn't QUP based (8994 and older). > > David doesn't deal with MSM platforms if Andy is available. That's good to know, thanks! > So I guess the decision is yours. Seeing at this patch is pretty > trivial and has our ACPI expert's Ack, the decision shouldn't be a > difficult one. No worries, the patch will be applied. I just wanted to check if the listed maintainers are still there. Otherwise I need to orphan this driver.
diff --git a/drivers/i2c/busses/i2c-qcom-geni.c b/drivers/i2c/busses/i2c-qcom-geni.c index db075bc0d952..9e3b8a98688d 100644 --- a/drivers/i2c/busses/i2c-qcom-geni.c +++ b/drivers/i2c/busses/i2c-qcom-geni.c @@ -1,6 +1,7 @@ // SPDX-License-Identifier: GPL-2.0 // Copyright (c) 2017-2018, The Linux Foundation. All rights reserved. +#include <linux/acpi.h> #include <linux/clk.h> #include <linux/dma-mapping.h> #include <linux/err.h> @@ -483,6 +484,14 @@ static const struct i2c_algorithm geni_i2c_algo = { .functionality = geni_i2c_func, }; +#ifdef CONFIG_ACPI +static const struct acpi_device_id geni_i2c_acpi_match[] = { + { "QCOM0220"}, + { }, +}; +MODULE_DEVICE_TABLE(acpi, geni_i2c_acpi_match); +#endif + static int geni_i2c_probe(struct platform_device *pdev) { struct geni_i2c_dev *gi2c; @@ -502,7 +511,7 @@ static int geni_i2c_probe(struct platform_device *pdev) return PTR_ERR(gi2c->se.base); gi2c->se.clk = devm_clk_get(&pdev->dev, "se"); - if (IS_ERR(gi2c->se.clk)) { + if (IS_ERR(gi2c->se.clk) && !has_acpi_companion(&pdev->dev)) { ret = PTR_ERR(gi2c->se.clk); dev_err(&pdev->dev, "Err getting SE Core clk %d\n", ret); return ret; @@ -516,6 +525,9 @@ static int geni_i2c_probe(struct platform_device *pdev) gi2c->clk_freq_out = KHZ(100); } + if (has_acpi_companion(&pdev->dev)) + ACPI_COMPANION_SET(&gi2c->adap.dev, ACPI_COMPANION(&pdev->dev)); + gi2c->irq = platform_get_irq(pdev, 0); if (gi2c->irq < 0) { dev_err(&pdev->dev, "IRQ error for i2c-geni\n"); @@ -660,6 +672,7 @@ static struct platform_driver geni_i2c_driver = { .name = "geni_i2c", .pm = &geni_i2c_pm_ops, .of_match_table = geni_i2c_dt_match, + .acpi_match_table = ACPI_PTR(geni_i2c_acpi_match), }, };
Add a match table to allow automatic probing of ACPI device QCOM0220. Ignore clock attainment errors. Set default clock frequency value. Signed-off-by: Lee Jones <lee.jones@linaro.org> --- drivers/i2c/busses/i2c-qcom-geni.c | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-)