Skip to content

Commit c71bcdc

Browse files
Ajay GuptaWolfram Sang
authored andcommitted
i2c: add i2c bus driver for NVIDIA GPU
Latest NVIDIA GPU card has USB Type-C interface. There is a Type-C controller which can be accessed over I2C. This driver adds I2C bus driver to communicate with Type-C controller. I2C client driver will be part of USB Type-C UCSI driver. Signed-off-by: Ajay Gupta <ajayg@nvidia.com> Reviewed-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com> [wsa: kept Makefile sorting] Signed-off-by: Wolfram Sang <wsa@the-dreams.de>
1 parent 848bd3f commit c71bcdc

File tree

5 files changed

+403
-0
lines changed

5 files changed

+403
-0
lines changed
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
Kernel driver i2c-nvidia-gpu
2+
3+
Datasheet: not publicly available.
4+
5+
Authors:
6+
Ajay Gupta <ajayg@nvidia.com>
7+
8+
Description
9+
-----------
10+
11+
i2c-nvidia-gpu is a driver for I2C controller included in NVIDIA Turing
12+
and later GPUs and it is used to communicate with Type-C controller on GPUs.
13+
14+
If your 'lspci -v' listing shows something like the following,
15+
16+
01:00.3 Serial bus controller [0c80]: NVIDIA Corporation Device 1ad9 (rev a1)
17+
18+
then this driver should support the I2C controller of your GPU.

MAINTAINERS

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6861,6 +6861,13 @@ L: linux-acpi@vger.kernel.org
68616861
S: Maintained
68626862
F: drivers/i2c/i2c-core-acpi.c
68636863

6864+
I2C CONTROLLER DRIVER FOR NVIDIA GPU
6865+
M: Ajay Gupta <ajayg@nvidia.com>
6866+
L: linux-i2c@vger.kernel.org
6867+
S: Maintained
6868+
F: Documentation/i2c/busses/i2c-nvidia-gpu
6869+
F: drivers/i2c/busses/i2c-nvidia-gpu.c
6870+
68646871
I2C MUXES
68656872
M: Peter Rosin <peda@axentia.se>
68666873
L: linux-i2c@vger.kernel.org

drivers/i2c/busses/Kconfig

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -224,6 +224,15 @@ config I2C_NFORCE2_S4985
224224
This driver can also be built as a module. If so, the module
225225
will be called i2c-nforce2-s4985.
226226

227+
config I2C_NVIDIA_GPU
228+
tristate "NVIDIA GPU I2C controller"
229+
depends on PCI
230+
help
231+
If you say yes to this option, support will be included for the
232+
NVIDIA GPU I2C controller which is used to communicate with the GPU's
233+
Type-C controller. This driver can also be built as a module called
234+
i2c-nvidia-gpu.
235+
227236
config I2C_SIS5595
228237
tristate "SiS 5595"
229238
depends on PCI

drivers/i2c/busses/Makefile

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ obj-$(CONFIG_I2C_ISCH) += i2c-isch.o
1919
obj-$(CONFIG_I2C_ISMT) += i2c-ismt.o
2020
obj-$(CONFIG_I2C_NFORCE2) += i2c-nforce2.o
2121
obj-$(CONFIG_I2C_NFORCE2_S4985) += i2c-nforce2-s4985.o
22+
obj-$(CONFIG_I2C_NVIDIA_GPU) += i2c-nvidia-gpu.o
2223
obj-$(CONFIG_I2C_PIIX4) += i2c-piix4.o
2324
obj-$(CONFIG_I2C_SIS5595) += i2c-sis5595.o
2425
obj-$(CONFIG_I2C_SIS630) += i2c-sis630.o

0 commit comments

Comments
 (0)