From: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
To: Wolfram Sang <wsa@kernel.org>,
Andy Shevchenko <andriy.shevchenko@linux.intel.com>,
linux-kernel@vger.kernel.org, linux-i2c@vger.kernel.org
Cc: Jarkko Nikula <jarkko.nikula@linux.intel.com>,
Mika Westerberg <mika.westerberg@linux.intel.com>,
Ajay Gupta <ajayg@nvidia.com>
Subject: [PATCH v1 02/11] i2c: designware-pci: Switch to use i2c_new_ccgx_ucsi()
Date: Tue, 7 Dec 2021 21:21:50 +0200 [thread overview]
Message-ID: <20211207192159.41383-2-andriy.shevchenko@linux.intel.com> (raw)
In-Reply-To: <20211207192159.41383-1-andriy.shevchenko@linux.intel.com>
Instead of open coded variant switch to use i2c_new_ccgx_ucsi().
Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
---
drivers/i2c/busses/Kconfig | 1 +
drivers/i2c/busses/i2c-designware-pcidrv.c | 30 ++++------------------
2 files changed, 6 insertions(+), 25 deletions(-)
diff --git a/drivers/i2c/busses/Kconfig b/drivers/i2c/busses/Kconfig
index 0fb2caf7498c..451ddec12dba 100644
--- a/drivers/i2c/busses/Kconfig
+++ b/drivers/i2c/busses/Kconfig
@@ -577,6 +577,7 @@ config I2C_DESIGNWARE_PCI
tristate "Synopsys DesignWare PCI"
depends on PCI
select I2C_DESIGNWARE_CORE
+ select I2C_CCGX_UCSI
help
If you say yes to this option, support will be included for the
Synopsys DesignWare I2C adapter. Only master mode is supported.
diff --git a/drivers/i2c/busses/i2c-designware-pcidrv.c b/drivers/i2c/busses/i2c-designware-pcidrv.c
index 0f409a4c2da0..2952eca87b86 100644
--- a/drivers/i2c/busses/i2c-designware-pcidrv.c
+++ b/drivers/i2c/busses/i2c-designware-pcidrv.c
@@ -24,6 +24,7 @@
#include <linux/slab.h>
#include "i2c-designware-core.h"
+#include "i2c-ccgx-ucsi.h"
#define DRIVER_NAME "i2c-designware-pci"
#define AMD_CLK_RATE_HZ 100000
@@ -118,26 +119,6 @@ static int mfld_setup(struct pci_dev *pdev, struct dw_pci_controller *c)
return -ENODEV;
}
- /*
- * TODO find a better way how to deduplicate instantiation
- * of USB PD slave device from nVidia GPU driver.
- */
-static int navi_amd_register_client(struct dw_i2c_dev *dev)
-{
- struct i2c_board_info info;
-
- memset(&info, 0, sizeof(struct i2c_board_info));
- strscpy(info.type, "ccgx-ucsi", I2C_NAME_SIZE);
- info.addr = 0x08;
- info.irq = dev->irq;
-
- dev->slave = i2c_new_client_device(&dev->adapter, &info);
- if (IS_ERR(dev->slave))
- return PTR_ERR(dev->slave);
-
- return 0;
-}
-
static int navi_amd_setup(struct pci_dev *pdev, struct dw_pci_controller *c)
{
struct dw_i2c_dev *dev = dev_get_drvdata(&pdev->dev);
@@ -324,11 +305,10 @@ static int i2c_dw_pci_probe(struct pci_dev *pdev,
}
if ((dev->flags & MODEL_MASK) == MODEL_AMD_NAVI_GPU) {
- r = navi_amd_register_client(dev);
- if (r) {
- dev_err(dev->dev, "register client failed with %d\n", r);
- return r;
- }
+ dev->slave = i2c_new_ccgx_ucsi(&dev->adapter, dev->irq, NULL);
+ if (IS_ERR(dev->slave))
+ return dev_err_probe(&pdev->dev, PTR_ERR(dev->slave),
+ "register UCSI failed\n");
}
pm_runtime_set_autosuspend_delay(&pdev->dev, 1000);
--
2.33.0
next prev parent reply other threads:[~2021-12-07 19:22 UTC|newest]
Thread overview: 20+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-12-07 19:21 [PATCH v1 01/11] i2c: Introduce common module to instantiate CCGx UCSI Andy Shevchenko
2021-12-07 19:21 ` Andy Shevchenko [this message]
2021-12-07 19:21 ` [PATCH v1 03/11] i2c: designware-pci: Use temporary variable for struct device Andy Shevchenko
2021-12-08 12:35 ` Jarkko Nikula
2021-12-07 19:21 ` [PATCH v1 04/11] i2c: designware-pci: Convert to use dev_err_probe() Andy Shevchenko
2021-12-08 12:21 ` Jarkko Nikula
2021-12-07 19:21 ` [PATCH v1 05/11] i2c: designware-pci: use __maybe_unused for PM functions Andy Shevchenko
2021-12-08 12:31 ` Jarkko Nikula
2021-12-07 19:21 ` [PATCH v1 06/11] i2c: designware-pci: Fix to change data types of hcnt and lcnt parameters Andy Shevchenko
2021-12-08 12:29 ` Jarkko Nikula
2021-12-07 19:21 ` [PATCH v1 07/11] i2c: designware-pci: Group MODULE_*() macros Andy Shevchenko
2021-12-08 12:30 ` Jarkko Nikula
2021-12-07 19:21 ` [PATCH v1 08/11] i2c: designware-pci: Add a note about struct dw_scl_sda_cfg usage Andy Shevchenko
2021-12-08 12:29 ` Jarkko Nikula
2021-12-07 19:21 ` [PATCH v1 09/11] i2c: nvidia-gpu: Switch to use i2c_new_ccgx_ucsi() Andy Shevchenko
2021-12-07 19:21 ` [PATCH v1 10/11] i2c: nvidia-gpu: Use temporary variable for struct device Andy Shevchenko
2021-12-07 19:21 ` [PATCH v1 11/11] i2c: nvidia-gpu: Convert to use dev_err_probe() Andy Shevchenko
2021-12-08 12:29 ` [PATCH v1 01/11] i2c: Introduce common module to instantiate CCGx UCSI Jarkko Nikula
2021-12-13 18:00 ` Andy Shevchenko
2021-12-15 13:50 ` Shah, Nehal-bakulchandra
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20211207192159.41383-2-andriy.shevchenko@linux.intel.com \
--to=andriy.shevchenko@linux.intel.com \
--cc=ajayg@nvidia.com \
--cc=jarkko.nikula@linux.intel.com \
--cc=linux-i2c@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=mika.westerberg@linux.intel.com \
--cc=wsa@kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).