Unverified Commit f0e53aad authored by Heikki Krogerus's avatar Heikki Krogerus Committed by Rodrigo Vivi
Browse files

drm/xe: Support for I2C attached MCUs



Adding adaption/glue layer where the I2C host adapter
(Synopsys DesignWare I2C adapter) and the I2C clients (the
microcontroller units) are enumerated.

The microcontroller units (MCU) that are attached to the GPU
depend on the OEM. The initially supported MCU will be the
Add-In Management Controller (AMC).

Co-developed-by: default avatarMichael J. Ruhl <michael.j.ruhl@intel.com>
Signed-off-by: default avatarMichael J. Ruhl <michael.j.ruhl@intel.com>
Signed-off-by: default avatarHeikki Krogerus <heikki.krogerus@linux.intel.com>
Reviewed-by: default avatarRodrigo Vivi <rodrigo.vivi@intel.com>
Reviewed-by: default avatarAndi Shyti <andi.shyti@linux.intel.com>
Link: https://lore.kernel.org/r/20250701122252.2590230-4-heikki.krogerus@linux.intel.com


Signed-off-by: default avatarRodrigo Vivi <rodrigo.vivi@intel.com>
[Rodrigo fixed the co-developed tags and SPDX format in the .c file]
parent f6a8e9f3
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -45,6 +45,7 @@ config DRM_XE
	select WANT_DEV_COREDUMP
	select AUXILIARY_BUS
	select HMM_MIRROR
	select REGMAP if I2C
	help
	  Driver for Intel Xe2 series GPUs and later. Experimental support
	  for Xe series is also available.
+1 −0
Original line number Diff line number Diff line
@@ -125,6 +125,7 @@ xe-y += xe_bb.o \
	xe_wait_user_fence.o \
	xe_wopcm.o

xe-$(CONFIG_I2C)	+= xe_i2c.o
xe-$(CONFIG_HMM_MIRROR) += xe_hmm.o
xe-$(CONFIG_DRM_XE_GPUSVM) += xe_svm.o

+15 −0
Original line number Diff line number Diff line
/* SPDX-License-Identifier: MIT */
#ifndef _XE_I2C_REGS_H_
#define _XE_I2C_REGS_H_

#include "xe_reg_defs.h"
#include "xe_regs.h"

#define I2C_BRIDGE_OFFSET		(SOC_BASE + 0xd9000)
#define I2C_CONFIG_SPACE_OFFSET		(SOC_BASE + 0xf6000)
#define I2C_MEM_SPACE_OFFSET		(SOC_BASE + 0xf7400)

#define REG_SG_REMAP_ADDR_PREFIX	XE_REG(SOC_BASE + 0x0164)
#define REG_SG_REMAP_ADDR_POSTFIX	XE_REG(SOC_BASE + 0x0168)

#endif /* _XE_I2C_REGS_H_ */
+1 −0
Original line number Diff line number Diff line
@@ -19,6 +19,7 @@
#define   MASTER_IRQ				REG_BIT(31)
#define   GU_MISC_IRQ				REG_BIT(29)
#define   DISPLAY_IRQ				REG_BIT(16)
#define   I2C_IRQ				REG_BIT(12)
#define   GT_DW_IRQ(x)				REG_BIT(x)

/*
+1 −1
Original line number Diff line number Diff line
@@ -5,7 +5,7 @@
#ifndef _XE_PMT_H_
#define _XE_PMT_H_

#define SOC_BASE			0x280000
#include "xe_regs.h"

#define BMG_PMT_BASE_OFFSET		0xDB000
#define BMG_DISCOVERY_OFFSET		(SOC_BASE + BMG_PMT_BASE_OFFSET)
Loading