2022-01-05 14:32:33

by Andy Shevchenko

[permalink] [raw]
Subject: [PATCH v3 1/5] i2c: Introduce common module to instantiate CCGx UCSI

Introduce a common module to provide an API to instantiate UCSI device
for Cypress CCGx Type-C controller. Individual bus drivers need to select
this one on demand.

Signed-off-by: Andy Shevchenko <[email protected]>
---
v3: added MODULE_LICENSE(GPL); (Nehal-bakulchandra)
drivers/i2c/busses/Kconfig | 7 +++++++
drivers/i2c/busses/Makefile | 3 +++
drivers/i2c/busses/i2c-ccgx-ucsi.c | 30 ++++++++++++++++++++++++++++++
drivers/i2c/busses/i2c-ccgx-ucsi.h | 11 +++++++++++
4 files changed, 51 insertions(+)
create mode 100644 drivers/i2c/busses/i2c-ccgx-ucsi.c
create mode 100644 drivers/i2c/busses/i2c-ccgx-ucsi.h

diff --git a/drivers/i2c/busses/Kconfig b/drivers/i2c/busses/Kconfig
index 42da31c1ab70..08e24e396e37 100644
--- a/drivers/i2c/busses/Kconfig
+++ b/drivers/i2c/busses/Kconfig
@@ -9,6 +9,13 @@ menu "I2C Hardware Bus support"
comment "PC SMBus host controller drivers"
depends on PCI

+config I2C_CCGX_UCSI
+ tristate
+ help
+ A common module to provide an API to instantiate UCSI device
+ for Cypress CCGx Type-C controller. Individual bus drivers
+ need to select this one on demand.
+
config I2C_ALI1535
tristate "ALI 1535"
depends on PCI
diff --git a/drivers/i2c/busses/Makefile b/drivers/i2c/busses/Makefile
index 1d00dce77098..79405cb5d600 100644
--- a/drivers/i2c/busses/Makefile
+++ b/drivers/i2c/busses/Makefile
@@ -6,6 +6,9 @@
# ACPI drivers
obj-$(CONFIG_I2C_SCMI) += i2c-scmi.o

+# Auxiliary I2C/SMBus modules
+obj-$(CONFIG_I2C_CCGX_UCSI) += i2c-ccgx-ucsi.o
+
# PC SMBus host controller drivers
obj-$(CONFIG_I2C_ALI1535) += i2c-ali1535.o
obj-$(CONFIG_I2C_ALI1563) += i2c-ali1563.o
diff --git a/drivers/i2c/busses/i2c-ccgx-ucsi.c b/drivers/i2c/busses/i2c-ccgx-ucsi.c
new file mode 100644
index 000000000000..092dc92dea9f
--- /dev/null
+++ b/drivers/i2c/busses/i2c-ccgx-ucsi.c
@@ -0,0 +1,30 @@
+// SPDX-License-Identifier: GPL-2.0-or-later
+/*
+ * Instantiate UCSI device for Cypress CCGx Type-C controller.
+ * Derived from i2c-designware-pcidrv.c and i2c-nvidia-gpu.c.
+ */
+
+#include <linux/i2c.h>
+#include <linux/export.h>
+#include <linux/module.h>
+#include <linux/string.h>
+
+#include "i2c-ccgx-ucsi.h"
+
+struct software_node;
+
+struct i2c_client *i2c_new_ccgx_ucsi(struct i2c_adapter *adapter, int irq,
+ const struct software_node *swnode)
+{
+ struct i2c_board_info info = {};
+
+ strscpy(info.type, "ccgx-ucsi", sizeof(info.type));
+ info.addr = 0x08;
+ info.irq = irq;
+ info.swnode = swnode;
+
+ return i2c_new_client_device(adapter, &info);
+}
+EXPORT_SYMBOL_GPL(i2c_new_ccgx_ucsi);
+
+MODULE_LICENSE("GPL");
diff --git a/drivers/i2c/busses/i2c-ccgx-ucsi.h b/drivers/i2c/busses/i2c-ccgx-ucsi.h
new file mode 100644
index 000000000000..739ac7a4b117
--- /dev/null
+++ b/drivers/i2c/busses/i2c-ccgx-ucsi.h
@@ -0,0 +1,11 @@
+/* SPDX-License-Identifier: GPL-2.0-or-later */
+#ifndef __I2C_CCGX_UCSI_H_
+#define __I2C_CCGX_UCSI_H_
+
+struct i2c_adapter;
+struct i2c_client;
+struct software_node;
+
+struct i2c_client *i2c_new_ccgx_ucsi(struct i2c_adapter *adapter, int irq,
+ const struct software_node *swnode);
+#endif /* __I2C_CCGX_UCSI_H_ */
--
2.34.1



2022-01-24 19:28:38

by Andy Shevchenko

[permalink] [raw]
Subject: Re: [PATCH v3 1/5] i2c: Introduce common module to instantiate CCGx UCSI

On Wed, Jan 05, 2022 at 04:19:31PM +0200, Andy Shevchenko wrote:
> Introduce a common module to provide an API to instantiate UCSI device
> for Cypress CCGx Type-C controller. Individual bus drivers need to select
> this one on demand.

Ajay, is it possible to get your tag on the series, please?

--
With Best Regards,
Andy Shevchenko


2022-02-07 21:13:03

by Wolfram Sang

[permalink] [raw]
Subject: Re: [PATCH v3 1/5] i2c: Introduce common module to instantiate CCGx UCSI


> > Ajay, is it possible to get your tag on the series, please?
>
> Wolfram, can you remind, please, what the process is, if there is
> a non-responsive (in a meaningful period of time) maintainer?

Well, I can apply patches if there is no response but interest and
reasonable trust, of course. Your series has interest and trust. But
still, it may be nice to ping active people from Nvidia and ask about
Ajay.


Attachments:
(No filename) (425.00 B)
signature.asc (849.00 B)
Download all attachments

2022-02-09 06:32:18

by Andy Shevchenko

[permalink] [raw]
Subject: Re: [PATCH v3 1/5] i2c: Introduce common module to instantiate CCGx UCSI

On Mon, Jan 24, 2022 at 05:06:47PM +0200, Andy Shevchenko wrote:
> On Wed, Jan 05, 2022 at 04:19:31PM +0200, Andy Shevchenko wrote:
> > Introduce a common module to provide an API to instantiate UCSI device
> > for Cypress CCGx Type-C controller. Individual bus drivers need to select
> > this one on demand.
>
> Ajay, is it possible to get your tag on the series, please?

Wolfram, can you remind, please, what the process is, if there is
a non-responsive (in a meaningful period of time) maintainer?

--
With Best Regards,
Andy Shevchenko



2022-02-09 06:59:39

by Andy Shevchenko

[permalink] [raw]
Subject: Re: [PATCH v3 1/5] i2c: Introduce common module to instantiate CCGx UCSI

On Mon, Feb 07, 2022 at 03:14:56PM +0100, Wolfram Sang wrote:
>
> > > Ajay, is it possible to get your tag on the series, please?
> >
> > Wolfram, can you remind, please, what the process is, if there is
> > a non-responsive (in a meaningful period of time) maintainer?
>
> Well, I can apply patches if there is no response but interest and
> reasonable trust, of course. Your series has interest and trust. But
> still, it may be nice to ping active people from Nvidia and ask about
> Ajay.

Okay, I have Cc'ed this message to the people whose addresses I found in the
changes in the Git history of the vanilla kernel with most frequent appearance.

The Q is who is on nVidia side is responsible now for I?C controller driver?

--
With Best Regards,
Andy Shevchenko



2022-02-15 09:28:11

by Wolfram Sang

[permalink] [raw]
Subject: Re: [PATCH v3 1/5] i2c: Introduce common module to instantiate CCGx UCSI

On Wed, Jan 05, 2022 at 04:19:31PM +0200, Andy Shevchenko wrote:
> Introduce a common module to provide an API to instantiate UCSI device
> for Cypress CCGx Type-C controller. Individual bus drivers need to select
> this one on demand.
>
> Signed-off-by: Andy Shevchenko <[email protected]>

Applied to for-next, thanks!


Attachments:
(No filename) (348.00 B)
signature.asc (849.00 B)
Download all attachments

2022-02-15 11:35:33

by Andy Shevchenko

[permalink] [raw]
Subject: Re: [PATCH v3 1/5] i2c: Introduce common module to instantiate CCGx UCSI

On Tue, Feb 15, 2022 at 10:07:50AM +0100, Wolfram Sang wrote:
> On Wed, Jan 05, 2022 at 04:19:31PM +0200, Andy Shevchenko wrote:
> > Introduce a common module to provide an API to instantiate UCSI device
> > for Cypress CCGx Type-C controller. Individual bus drivers need to select
> > this one on demand.
> >
> > Signed-off-by: Andy Shevchenko <[email protected]>
>
> Applied to for-next, thanks!

Thank you!

I hope at least AMD guys would be happy and can utilize this module for their
new hardware.

--
With Best Regards,
Andy Shevchenko


2022-02-15 11:42:59

by Andy Shevchenko

[permalink] [raw]
Subject: Re: [PATCH v3 1/5] i2c: Introduce common module to instantiate CCGx UCSI

On Tue, Feb 15, 2022 at 10:10:09AM +0100, Wolfram Sang wrote:
>
> > Okay, I have Cc'ed this message to the people whose addresses I found in the
> > changes in the Git history of the vanilla kernel with most frequent appearance.
> >
> > The Q is who is on nVidia side is responsible now for I?C controller driver?
>
> I applied your series now. But the question where Ajay is or who now
> maintains the i2c-nvidia-gpu driver still remains...

True. I dunno why nVidia guys are non-responsive for more than a week...
Maybe we should orphan the driver if no-one response in meaningful time
(let's say till the next merge window)?

--
With Best Regards,
Andy Shevchenko


2022-02-15 11:47:42

by Wolfram Sang

[permalink] [raw]
Subject: Re: [PATCH v3 1/5] i2c: Introduce common module to instantiate CCGx UCSI


> Okay, I have Cc'ed this message to the people whose addresses I found in the
> changes in the Git history of the vanilla kernel with most frequent appearance.
>
> The Q is who is on nVidia side is responsible now for I²C controller driver?

I applied your series now. But the question where Ajay is or who now
maintains the i2c-nvidia-gpu driver still remains...


Attachments:
(No filename) (378.00 B)
signature.asc (849.00 B)
Download all attachments

2022-02-15 15:32:58

by Wolfram Sang

[permalink] [raw]
Subject: Re: [PATCH v3 1/5] i2c: Introduce common module to instantiate CCGx UCSI


> Maybe we should orphan the driver if no-one response in meaningful time
> (let's say till the next merge window)?

Yes, I had a similar idea.


Attachments:
(No filename) (152.00 B)
signature.asc (849.00 B)
Download all attachments

2022-02-15 23:06:52

by Ajay Gupta

[permalink] [raw]
Subject: RE: [PATCH v3 1/5] i2c: Introduce common module to instantiate CCGx UCSI

Hi Wolfram and Andy,

> -----Original Message-----
> From: Wolfram Sang <[email protected]>
> Sent: Tuesday, February 15, 2022 4:46 AM
> To: Andy Shevchenko <[email protected]>
> Cc: Thierry Reding <[email protected]>; [email protected];
> [email protected]; Jarkko Nikula <[email protected]>;
> Mika Westerberg <[email protected]>; Ajay Gupta
> <[email protected]>; Shah, Nehal-bakulchandra <nehal-
> [email protected]>; Amit Cohen <[email protected]>;
> Nikolay Aleksandrov <[email protected]>; Sameer Pujar
> <[email protected]>
> Subject: Re: [PATCH v3 1/5] i2c: Introduce common module to instantiate
> CCGx UCSI
>
>
> > Maybe we should orphan the driver if no-one response in meaningful
> > time (let's say till the next merge window)?
Sorry for the late response. The series looks good to me. I don't have setup ready
to test the changes but will be able to test next week and let you know if there is
any issues.

Thanks
Ajay
> nvpublic
>
> Yes, I had a similar idea.