diff --git a/drivers/mfd/Kconfig b/drivers/mfd/Kconfig index d90b49d50531..aa1fe3bcf7f6 100644 --- a/drivers/mfd/Kconfig +++ b/drivers/mfd/Kconfig @@ -1218,6 +1218,7 @@ config MFD_RK1000 if you say yes here you get support for the RK1000, with func as TVEncoder or CODEC. +source "drivers/mfd/display-serdes/Kconfig" source "drivers/mfd/rkx110_x120/Kconfig" config MFD_RN5T618 diff --git a/drivers/mfd/Makefile b/drivers/mfd/Makefile index 70ec822acfeb..17c722019f32 100644 --- a/drivers/mfd/Makefile +++ b/drivers/mfd/Makefile @@ -230,6 +230,7 @@ obj-$(CONFIG_MFD_RK806) += rk806-core.o obj-$(CONFIG_MFD_RK806_SPI) += rk806-spi.o obj-$(CONFIG_MFD_RK808) += rk808.o obj-$(CONFIG_MFD_RK1000) += rk1000-core.o +obj-$(CONFIG_MFD_SERDES_DISPLAY) += display-serdes/ obj-y += rkx110_x120/ obj-$(CONFIG_MFD_RN5T618) += rn5t618.o obj-$(CONFIG_MFD_SEC_CORE) += sec-core.o sec-irq.o diff --git a/drivers/mfd/display-serdes/Kconfig b/drivers/mfd/display-serdes/Kconfig new file mode 100644 index 000000000000..18855fef3a69 --- /dev/null +++ b/drivers/mfd/display-serdes/Kconfig @@ -0,0 +1,31 @@ +# SPDX-License-Identifier: GPL-2.0-only +# +# Multifunction miscellaneous devices +# +comment "driver for different display serdes" + +menuconfig MFD_SERDES_DISPLAY + tristate "rockchip display serdes drivers support" + select DRM_PANEL_BRIDGE + select DRM_KMS_HELPER + select DRM_MIPI_DSI + select SERDES_DISPLAY_CHIP_ROHM + select SERDES_DISPLAY_CHIP_MAXIM + select SERDES_DISPLAY_CHIP_ROCKCHIP + select SERDES_DISPLAY_CHIP_NOVO + select MFD_CORE + select REGMAP_I2C + select GENERIC_PINCTRL_GROUPS + select GENERIC_PINMUX_FUNCTIONS + default n + help + This driver supports different serdes devices from different vendor such as + maxim, rohm, rockchip etc. + +if MFD_SERDES_DISPLAY +source "drivers/mfd/display-serdes/maxim/Kconfig" +source "drivers/mfd/display-serdes/rohm/Kconfig" +source "drivers/mfd/display-serdes/rockchip/Kconfig" +source "drivers/mfd/display-serdes/novo/Kconfig" +endif + diff --git a/drivers/mfd/display-serdes/Makefile b/drivers/mfd/display-serdes/Makefile new file mode 100644 index 000000000000..420076ccc22e --- /dev/null +++ b/drivers/mfd/display-serdes/Makefile @@ -0,0 +1,13 @@ +# SPDX-License-Identifier: GPL-2.0 +# +# Makefile for multifunction miscellaneous devices that just used for display +# + +obj-$(CONFIG_SERDES_DISPLAY_CHIP_MAXIM) += maxim/ +obj-$(CONFIG_SERDES_DISPLAY_CHIP_ROHM) += rohm/ +obj-$(CONFIG_SERDES_DISPLAY_CHIP_ROCKCHIP) += rockchip/ +obj-$(CONFIG_SERDES_DISPLAY_CHIP_NOVO) += novo/ + +serdes-mfd-display-$(CONFIG_MFD_SERDES_DISPLAY) += serdes-core.o serdes-irq.o + +obj-$(CONFIG_MFD_SERDES_DISPLAY) += serdes-mfd-display.o serdes-i2c.o serdes-bridge.o serdes-panel.o serdes-gpio.o serdes-pinctrl.o diff --git a/drivers/mfd/display-serdes/core.h b/drivers/mfd/display-serdes/core.h new file mode 100644 index 000000000000..28f994588964 --- /dev/null +++ b/drivers/mfd/display-serdes/core.h @@ -0,0 +1,353 @@ +/* SPDX-License-Identifier: GPL-2.0-only */ +/* + * core.h -- core define for mfd display arch + * + * Copyright (c) 2023-2028 Rockchip Electronics Co. Ltd. + * + * Author: luowei + * + */ + +#ifndef __MFD_SERDES_CORE_H__ +#define __MFD_SERDES_CORE_H__ + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include