From 2aa34d8499de95b3910fe5d41fdefa0b3bc83bb2 Mon Sep 17 00:00:00 2001 From: Guochun Huang Date: Wed, 27 Nov 2024 15:56:21 +0800 Subject: [PATCH 1/6] drm/rockchip: dsi2: allocate macros for mipi dsi2 drivers Signed-off-by: Guochun Huang Change-Id: Ie2f712cb1aea522004e84c7d0f4d66fe94427d57 --- drivers/gpu/drm/rockchip/Kconfig | 16 +++++++++++++--- drivers/gpu/drm/rockchip/Makefile | 4 ++-- drivers/gpu/drm/rockchip/rockchip_drm_drv.c | 2 +- 3 files changed, 16 insertions(+), 6 deletions(-) diff --git a/drivers/gpu/drm/rockchip/Kconfig b/drivers/gpu/drm/rockchip/Kconfig index 3f7ebc325264..a6f0e9ad92e2 100644 --- a/drivers/gpu/drm/rockchip/Kconfig +++ b/drivers/gpu/drm/rockchip/Kconfig @@ -8,9 +8,9 @@ config DRM_ROCKCHIP select VIDEOMODE_HELPERS select DRM_ANALOGIX_DP if ROCKCHIP_ANALOGIX_DP select DRM_DW_HDMI if ROCKCHIP_DW_HDMI - select DRM_DW_MIPI_DSI if ROCKCHIP_DW_MIPI_DSI - select GENERIC_PHY if ROCKCHIP_DW_MIPI_DSI - select GENERIC_PHY_MIPI_DPHY if ROCKCHIP_DW_MIPI_DSI + select DRM_DW_MIPI_DSI if ROCKCHIP_DW_MIPI_DSI || ROCKCHIP_DW_MIPI_DSI2 + select GENERIC_PHY if ROCKCHIP_DW_MIPI_DSI || ROCKCHIP_DW_MIPI_DSI2 + select GENERIC_PHY_MIPI_DPHY if ROCKCHIP_DW_MIPI_DSI || ROCKCHIP_DW_MIPI_DSI2 select SND_SOC_HDMI_CODEC if ROCKCHIP_CDN_DP && SND_SOC help Choose this option if you have a Rockchip soc chipset. @@ -107,6 +107,16 @@ config ROCKCHIP_DW_MIPI_DSI enable MIPI DSI on RK3288 or RK3399 based SoC, you should select this option. +config ROCKCHIP_DW_MIPI_DSI2 + bool "Rockchip specific extensions for Synopsys DW MIPI DSI2" + default ROCKCHIP_DW_MIPI_DSI + select GENERIC_PHY_MIPI_DPHY + help + This selects support for Rockchip SoC specific extensions + for the Synopsys DesignWare dsi2 driver. If you want to + enable MIPI DSI2 on RK3576 or RK3588 based SoC, you should + select this option. + config ROCKCHIP_DW_DP bool "Rockchip specific extensions for Synopsys DW DPTX" select DRM_DISPLAY_HDCP_HELPER diff --git a/drivers/gpu/drm/rockchip/Makefile b/drivers/gpu/drm/rockchip/Makefile index bc18ae5501f6..2d0ccf7ae308 100644 --- a/drivers/gpu/drm/rockchip/Makefile +++ b/drivers/gpu/drm/rockchip/Makefile @@ -19,8 +19,8 @@ rockchipdrm-$(CONFIG_ROCKCHIP_CDN_DP) += cdn-dp-core.o cdn-dp-reg.o \ cdn-dp-link-training.o rockchipdrm-$(CONFIG_ROCKCHIP_DRM_TVE) += rockchip_drm_tve.o rockchipdrm-$(CONFIG_ROCKCHIP_DW_HDMI) += dw_hdmi-rockchip.o -rockchipdrm-$(CONFIG_ROCKCHIP_DW_MIPI_DSI) += dw-mipi-dsi-rockchip.o \ - dw-mipi-dsi2-rockchip.o +rockchipdrm-$(CONFIG_ROCKCHIP_DW_MIPI_DSI) += dw-mipi-dsi-rockchip.o +rockchipdrm-$(CONFIG_ROCKCHIP_DW_MIPI_DSI2) += dw-mipi-dsi2-rockchip.o rockchipdrm-$(CONFIG_ROCKCHIP_DW_DP) += dw-dp.o rockchipdrm-$(CONFIG_ROCKCHIP_INNO_HDMI) += inno_hdmi.o rockchipdrm-$(CONFIG_ROCKCHIP_LVDS) += rockchip_lvds.o diff --git a/drivers/gpu/drm/rockchip/rockchip_drm_drv.c b/drivers/gpu/drm/rockchip/rockchip_drm_drv.c index 30772aa63c16..58e84ad2c451 100644 --- a/drivers/gpu/drm/rockchip/rockchip_drm_drv.c +++ b/drivers/gpu/drm/rockchip/rockchip_drm_drv.c @@ -2587,7 +2587,7 @@ static int __init rockchip_drm_init(void) ADD_ROCKCHIP_SUB_DRIVER(dw_mipi_dsi_rockchip_driver, CONFIG_ROCKCHIP_DW_MIPI_DSI); ADD_ROCKCHIP_SUB_DRIVER(dw_mipi_dsi2_rockchip_driver, - CONFIG_ROCKCHIP_DW_MIPI_DSI); + CONFIG_ROCKCHIP_DW_MIPI_DSI2); ADD_ROCKCHIP_SUB_DRIVER(inno_hdmi_driver, CONFIG_ROCKCHIP_INNO_HDMI); ADD_ROCKCHIP_SUB_DRIVER(rk3066_hdmi_driver, CONFIG_ROCKCHIP_RK3066_HDMI); From a104b8efc3f1b9f49d16d8c08f27acaadd3dff2b Mon Sep 17 00:00:00 2001 From: Jon Lin Date: Wed, 27 Nov 2024 16:53:21 +0800 Subject: [PATCH 2/6] mtd: spinand: Add macro definition constraints Change-Id: I65e03dd7cc70d1ab279c5bdea0ef8969666d7469 Signed-off-by: Jon Lin --- drivers/mtd/nand/spi/Kconfig | 2 + drivers/mtd/nand/spi/Kconfig.spinandlist | 156 +++++++++++++++++++++++ drivers/mtd/nand/spi/Makefile | 26 +++- drivers/mtd/nand/spi/core.c | 46 +++++++ 4 files changed, 229 insertions(+), 1 deletion(-) create mode 100644 drivers/mtd/nand/spi/Kconfig.spinandlist diff --git a/drivers/mtd/nand/spi/Kconfig b/drivers/mtd/nand/spi/Kconfig index 8c1d95d23b56..e6cfa409756f 100644 --- a/drivers/mtd/nand/spi/Kconfig +++ b/drivers/mtd/nand/spi/Kconfig @@ -8,3 +8,5 @@ menuconfig MTD_SPI_NAND select MTD_NAND_BBT_USING_FLASH help This is the framework for the SPI NAND device drivers. + +source "drivers/mtd/nand/spi/Kconfig.spinandlist" diff --git a/drivers/mtd/nand/spi/Kconfig.spinandlist b/drivers/mtd/nand/spi/Kconfig.spinandlist new file mode 100644 index 000000000000..eb41188cbd29 --- /dev/null +++ b/drivers/mtd/nand/spi/Kconfig.spinandlist @@ -0,0 +1,156 @@ +# SPDX-License-Identifier: GPL-2.0-only + +if MTD_SPI_NAND + +config MTD_SPI_NAND_DEVICE_AUTOSELECT + bool "Autoselect SPI Nand flash" + default y + help + By default, auto-selects all SPI Nand flash chips. + +menu "SPI Nand flash" + visible if !MTD_SPI_NAND_DEVICE_AUTOSELECT + +config MTD_SPI_NAND_ATO + bool "ATO SPI flash support" + default y if MTD_SPI_NAND_DEVICE_AUTOSELECT + help + Add support for various ATO SPI Nand flash chips + +config MTD_SPI_NAND_BIWIN + bool "BIWIN SPI flash support" + default y if MTD_SPI_NAND_DEVICE_AUTOSELECT + help + Add support for various BIWIN SPI Nand flash chips + +config MTD_SPI_NAND_DOSILICON + bool "DOSILICON SPI flash support" + default y if MTD_SPI_NAND_DEVICE_AUTOSELECT + help + Add support for various DOSILICON SPI Nand flash chips + +config MTD_SPI_NAND_ESMT + bool "ESMT SPI flash support" + default y if MTD_SPI_NAND_DEVICE_AUTOSELECT + select SPI_NAND_MICRON + help + Add support for various ESMT SPI Nand flash chips + +config MTD_SPI_NAND_ETRON + bool "ETRON SPI flash support" + default y if MTD_SPI_NAND_DEVICE_AUTOSELECT + help + Add support for various ETRON SPI Nand flash chips + +config MTD_SPI_NAND_FMSH + bool "FMSH SPI flash support" + default y if MTD_SPI_NAND_DEVICE_AUTOSELECT + help + Add support for various FMSH SPI Nand flash chips + +config MTD_SPI_NAND_FORESEE + bool "FORESEE SPI flash support" + default y if MTD_SPI_NAND_DEVICE_AUTOSELECT + help + Add support for various FORESEE SPI Nand flash chips + +config MTD_SPI_NAND_GIGADEVICE + bool "GIGADEVICE SPI flash support" + default y if MTD_SPI_NAND_DEVICE_AUTOSELECT + help + Add support for various GIGADEVICE SPI Nand flash chips + +config MTD_SPI_NAND_GSTO + bool "GSTO SPI flash support" + default y if MTD_SPI_NAND_DEVICE_AUTOSELECT + help + Add support for various GSTO SPI Nand flash chips + +config MTD_SPI_NAND_HIKSEMI + bool "HIKSEMI SPI flash support" + default y if MTD_SPI_NAND_DEVICE_AUTOSELECT + help + Add support for various HIKSEMI SPI Nand flash chips + +config MTD_SPI_NAND_HYF + bool "HYF SPI flash support" + default y if MTD_SPI_NAND_DEVICE_AUTOSELECT + help + Add support for various HYF SPI Nand flash chips + +config MTD_SPI_NAND_JSC + bool "JSC SPI flash support" + default y if MTD_SPI_NAND_DEVICE_AUTOSELECT + help + Add support for various JSC SPI Nand flash chips + +config MTD_SPI_NAND_MACRONIX + bool "MACRONIX SPI flash support" + default y if MTD_SPI_NAND_DEVICE_AUTOSELECT + help + Add support for various MACRONIX SPI Nand flash chips + +config MTD_SPI_NAND_MICRON + bool "MICRON SPI flash support" + default y if MTD_SPI_NAND_DEVICE_AUTOSELECT + help + Add support for various MICRON SPI Nand flash chips + +config MTD_SPI_NAND_PARAGON + bool "PARAGON SPI flash support" + default y if MTD_SPI_NAND_DEVICE_AUTOSELECT + help + Add support for various PARAGON SPI Nand flash chips + +config MTD_SPI_NAND_SILICONGO + bool "SILICONGO SPI flash support" + default y if MTD_SPI_NAND_DEVICE_AUTOSELECT + help + Add support for various SILICONGO SPI Nand flash chips + +config MTD_SPI_NAND_SKYHIGH + bool "SKYHIGH SPI flash support" + default y if MTD_SPI_NAND_DEVICE_AUTOSELECT + help + Add support for various SKYHIGH SPI Nand flash chips + +config MTD_SPI_NAND_TOSHIBA + bool "TOSHIBA SPI flash support" + default y if MTD_SPI_NAND_DEVICE_AUTOSELECT + help + Add support for various TOSHIBA SPI Nand flash chips + +config MTD_SPI_NAND_UNIM + bool "UNIM SPI flash support" + default y if MTD_SPI_NAND_DEVICE_AUTOSELECT + help + Add support for various UNIM SPI Nand flash chips + +config MTD_SPI_NAND_WINBOND + bool "WINBOND SPI flash support" + default y if MTD_SPI_NAND_DEVICE_AUTOSELECT + help + Add support for various WINBOND SPI Nand flash chips + +config MTD_SPI_NAND_XINCUN + bool "XINCUN SPI flash support" + default y if MTD_SPI_NAND_DEVICE_AUTOSELECT + help + Add support for various XINCUN SPI Nand flash chips + +config MTD_SPI_NAND_XTX + bool "XTX SPI flash support" + default y if MTD_SPI_NAND_DEVICE_AUTOSELECT + select MTD_SPI_NAND_MICRON + help + Add support for various XTX SPI Nand flash chips + +config MTD_SPI_NAND_ZBIT + bool "ZBIT SPI flash support" + default y if MTD_SPI_NAND_DEVICE_AUTOSELECT + help + Add support for various ZBIT SPI Nand flash chips + +endmenu + +endif diff --git a/drivers/mtd/nand/spi/Makefile b/drivers/mtd/nand/spi/Makefile index b28cdffeaa6d..2fd86cdb708c 100644 --- a/drivers/mtd/nand/spi/Makefile +++ b/drivers/mtd/nand/spi/Makefile @@ -1,3 +1,27 @@ # SPDX-License-Identifier: GPL-2.0 -spinand-objs := core.o ato.o gigadevice.o gsto.o macronix.o micron.o paragon.o toshiba.o winbond.o biwin.o dosilicon.o esmt.o etron.o fmsh.o foresee.o hiksemi.o hyf.o jsc.o silicongo.o skyhigh.o unim.o xincun.o xtx.o zbit.o +spinand-objs := core.o obj-$(CONFIG_MTD_SPI_NAND) += spinand.o + +spinand-$(CONFIG_MTD_SPI_NAND_ATO) += ato.o +spinand-$(CONFIG_MTD_SPI_NAND_BIWIN) += biwin.o +spinand-$(CONFIG_MTD_SPI_NAND_DOSILICON) += dosilicon.o +spinand-$(CONFIG_MTD_SPI_NAND_ESMT) += esmt.o +spinand-$(CONFIG_MTD_SPI_NAND_ETRON) += etron.o +spinand-$(CONFIG_MTD_SPI_NAND_FMSH) += fmsh.o +spinand-$(CONFIG_MTD_SPI_NAND_FORESEE) += foresee.o +spinand-$(CONFIG_MTD_SPI_NAND_GIGADEVICE) += gigadevice.o +spinand-$(CONFIG_MTD_SPI_NAND_GSTO) += gsto.o +spinand-$(CONFIG_MTD_SPI_NAND_HIKSEMI) += hiksemi.o +spinand-$(CONFIG_MTD_SPI_NAND_HYF) += hyf.o +spinand-$(CONFIG_MTD_SPI_NAND_JSC) += jsc.o +spinand-$(CONFIG_MTD_SPI_NAND_MACRONIX) += macronix.o +spinand-$(CONFIG_MTD_SPI_NAND_MICRON) += micron.o +spinand-$(CONFIG_MTD_SPI_NAND_PARAGON) += paragon.o +spinand-$(CONFIG_MTD_SPI_NAND_SILICONGO) += silicongo.o +spinand-$(CONFIG_MTD_SPI_NAND_SKYHIGH) += skyhigh.o +spinand-$(CONFIG_MTD_SPI_NAND_TOSHIBA) += toshiba.o +spinand-$(CONFIG_MTD_SPI_NAND_UNIM) += unim.o +spinand-$(CONFIG_MTD_SPI_NAND_WINBOND) += winbond.o +spinand-$(CONFIG_MTD_SPI_NAND_XINCUN) += xincun.o +spinand-$(CONFIG_MTD_SPI_NAND_XTX) += xtx.o +spinand-$(CONFIG_MTD_SPI_NAND_ZBIT) += zbit.o diff --git a/drivers/mtd/nand/spi/core.c b/drivers/mtd/nand/spi/core.c index a46142634b1c..0eb65ca35b73 100644 --- a/drivers/mtd/nand/spi/core.c +++ b/drivers/mtd/nand/spi/core.c @@ -951,30 +951,76 @@ static const struct nand_ops spinand_ops = { }; static const struct spinand_manufacturer *spinand_manufacturers[] = { +#ifdef CONFIG_MTD_SPI_NAND_ATO &ato_spinand_manufacturer, +#endif +#ifdef CONFIG_MTD_SPI_NAND_BIWIN &biwin_spinand_manufacturer, +#endif +#ifdef CONFIG_MTD_SPI_NAND_DOSILICON &dosilicon_spinand_manufacturer, +#endif +#ifdef CONFIG_MTD_SPI_NAND_ESMT &esmt_spinand_manufacturer, +#endif +#ifdef CONFIG_MTD_SPI_NAND_ETRON &etron_spinand_manufacturer, +#endif +#ifdef CONFIG_MTD_SPI_NAND_FMSH &fmsh_spinand_manufacturer, +#endif +#ifdef CONFIG_MTD_SPI_NAND_FORESEE &foresee_spinand_manufacturer, +#endif +#ifdef CONFIG_MTD_SPI_NAND_GIGADEVICE &gigadevice_spinand_manufacturer, +#endif +#ifdef CONFIG_MTD_SPI_NAND_GSTO &gsto_spinand_manufacturer, +#endif +#ifdef CONFIG_MTD_SPI_NAND_HIKSEMI &hiksemi_spinand_manufacturer, +#endif +#ifdef CONFIG_MTD_SPI_NAND_HYF &hyf_spinand_manufacturer, +#endif +#ifdef CONFIG_MTD_SPI_NAND_JSC &jsc_spinand_manufacturer, +#endif +#ifdef CONFIG_MTD_SPI_NAND_MACRONIX ¯onix_spinand_manufacturer, +#endif +#ifdef CONFIG_MTD_SPI_NAND_MICRON µn_spinand_manufacturer, +#endif +#ifdef CONFIG_MTD_SPI_NAND_PARAGON ¶gon_spinand_manufacturer, +#endif +#ifdef CONFIG_MTD_SPI_NAND_SILICONGO &silicongo_spinand_manufacturer, +#endif +#ifdef CONFIG_MTD_SPI_NAND_SKYHIGH &skyhigh_spinand_manufacturer, +#endif +#ifdef CONFIG_MTD_SPI_NAND_TOSHIBA &toshiba_spinand_manufacturer, +#endif +#ifdef CONFIG_MTD_SPI_NAND_UNIM &unim_spinand_manufacturer, &unim_zl_spinand_manufacturer, +#endif +#ifdef CONFIG_MTD_SPI_NAND_WINBOND &winbond_spinand_manufacturer, +#endif +#ifdef CONFIG_MTD_SPI_NAND_XINCUN &xincun_spinand_manufacturer, +#endif +#ifdef CONFIG_MTD_SPI_NAND_XTX &xtx_spinand_manufacturer, +#endif +#ifdef CONFIG_MTD_SPI_NAND_ZBIT &zbit_spinand_manufacturer, +#endif }; static int spinand_manufacturer_match(struct spinand_device *spinand, From 7c8198aa9ac6a193134274d914d34c83e7032ccf Mon Sep 17 00:00:00 2001 From: Wang Panzhenzhuan Date: Tue, 26 Nov 2024 16:33:12 +0800 Subject: [PATCH 3/6] arm64: dts: rockchip: rk356x evb boards: add vcm config add vcm config for ov5695 & gc8034 module Signed-off-by: Wang Panzhenzhuan Change-Id: I904cfbf90b5b2aa9ece56df2832a5ef382bfa308 --- .../boot/dts/rockchip/rk3566-evb2-lp4x-v10.dtsi | 13 +++++++++++++ .../boot/dts/rockchip/rk3566-evb3-ddr3-v10.dtsi | 13 +++++++++++++ .../boot/dts/rockchip/rk3568-evb1-ddr4-v10.dtsi | 14 ++++++++++++++ .../boot/dts/rockchip/rk3568-evb5-ddr4-v10.dtsi | 14 ++++++++++++++ .../boot/dts/rockchip/rk3568-evb6-ddr3-v10.dtsi | 14 ++++++++++++++ 5 files changed, 68 insertions(+) diff --git a/arch/arm64/boot/dts/rockchip/rk3566-evb2-lp4x-v10.dtsi b/arch/arm64/boot/dts/rockchip/rk3566-evb2-lp4x-v10.dtsi index 15f878d85fde..79e607fa8217 100644 --- a/arch/arm64/boot/dts/rockchip/rk3566-evb2-lp4x-v10.dtsi +++ b/arch/arm64/boot/dts/rockchip/rk3566-evb2-lp4x-v10.dtsi @@ -256,6 +256,17 @@ status = "okay"; pinctrl-0 = <&i2c2m1_xfer>; + dw9714: dw9714@c { + compatible = "dongwoon,dw9714"; + status = "okay"; + reg = <0x0c>; + rockchip,vcm-start-current = <10>; + rockchip,vcm-rated-current = <85>; + rockchip,vcm-step-mode = <5>; + rockchip,camera-module-index = <0>; + rockchip,camera-module-facing = "back"; + }; + /* split mode: lane0/1 */ ov5695: ov5695@36 { status = "okay"; @@ -273,6 +284,7 @@ rockchip,camera-module-facing = "back"; rockchip,camera-module-name = "TongJu"; rockchip,camera-module-lens-name = "CHT842-MD"; + lens-focus = <&dw9714>; port { ov5695_out: endpoint { remote-endpoint = <&mipi_in_ucam1>; @@ -322,6 +334,7 @@ rockchip,camera-module-facing = "back"; rockchip,camera-module-name = "RK-CMK-8M-2-v1"; rockchip,camera-module-lens-name = "CK8401"; + lens-focus = <&dw9714>; port { gc8034_out: endpoint { remote-endpoint = <&dphy0_in>; diff --git a/arch/arm64/boot/dts/rockchip/rk3566-evb3-ddr3-v10.dtsi b/arch/arm64/boot/dts/rockchip/rk3566-evb3-ddr3-v10.dtsi index 7e99bf7b464f..0a7e2881d1fe 100644 --- a/arch/arm64/boot/dts/rockchip/rk3566-evb3-ddr3-v10.dtsi +++ b/arch/arm64/boot/dts/rockchip/rk3566-evb3-ddr3-v10.dtsi @@ -192,6 +192,17 @@ status = "okay"; pinctrl-0 = <&i2c2m1_xfer>; + dw9714: dw9714@c { + compatible = "dongwoon,dw9714"; + status = "okay"; + reg = <0x0c>; + rockchip,vcm-start-current = <10>; + rockchip,vcm-rated-current = <85>; + rockchip,vcm-step-mode = <5>; + rockchip,camera-module-index = <0>; + rockchip,camera-module-facing = "back"; + }; + gc2145: gc2145@3c { status = "okay"; compatible = "galaxycore,gc2145"; @@ -236,6 +247,7 @@ rockchip,camera-module-facing = "back"; rockchip,camera-module-name = "TongJu"; rockchip,camera-module-lens-name = "CHT842-MD"; + lens-focus = <&dw9714>; port { ov5695_out: endpoint { remote-endpoint = <&mipi_in_ucam0>; @@ -259,6 +271,7 @@ rockchip,camera-module-facing = "back"; rockchip,camera-module-name = "RK-CMK-8M-2-v1"; rockchip,camera-module-lens-name = "CK8401"; + lens-focus = <&dw9714>; port { gc8034_out: endpoint { remote-endpoint = <&mipi_in_ucam1>; diff --git a/arch/arm64/boot/dts/rockchip/rk3568-evb1-ddr4-v10.dtsi b/arch/arm64/boot/dts/rockchip/rk3568-evb1-ddr4-v10.dtsi index 14f35e1bd877..2b72b8c7bbe5 100644 --- a/arch/arm64/boot/dts/rockchip/rk3568-evb1-ddr4-v10.dtsi +++ b/arch/arm64/boot/dts/rockchip/rk3568-evb1-ddr4-v10.dtsi @@ -265,6 +265,18 @@ &i2c4 { status = "okay"; + + dw9714: dw9714@c { + compatible = "dongwoon,dw9714"; + status = "okay"; + reg = <0x0c>; + rockchip,vcm-start-current = <10>; + rockchip,vcm-rated-current = <85>; + rockchip,vcm-step-mode = <5>; + rockchip,camera-module-index = <0>; + rockchip,camera-module-facing = "back"; + }; + gc8034: gc8034@37 { compatible = "galaxycore,gc8034"; status = "okay"; @@ -281,6 +293,7 @@ rockchip,camera-module-facing = "back"; rockchip,camera-module-name = "RK-CMK-8M-2-v1"; rockchip,camera-module-lens-name = "CK8401"; + lens-focus = <&dw9714>; port { gc8034_out: endpoint { remote-endpoint = <&mipi_in_ucam1>; @@ -324,6 +337,7 @@ rockchip,camera-module-facing = "back"; rockchip,camera-module-name = "TongJu"; rockchip,camera-module-lens-name = "CHT842-MD"; + lens-focus = <&dw9714>; port { ov5695_out: endpoint { remote-endpoint = <&mipi_in_ucam2>; diff --git a/arch/arm64/boot/dts/rockchip/rk3568-evb5-ddr4-v10.dtsi b/arch/arm64/boot/dts/rockchip/rk3568-evb5-ddr4-v10.dtsi index cb054e4932e1..ceaf0f2b841d 100644 --- a/arch/arm64/boot/dts/rockchip/rk3568-evb5-ddr4-v10.dtsi +++ b/arch/arm64/boot/dts/rockchip/rk3568-evb5-ddr4-v10.dtsi @@ -296,6 +296,18 @@ &i2c4 { status = "okay"; + + dw9714: dw9714@c { + compatible = "dongwoon,dw9714"; + status = "okay"; + reg = <0x0c>; + rockchip,vcm-start-current = <10>; + rockchip,vcm-rated-current = <85>; + rockchip,vcm-step-mode = <5>; + rockchip,camera-module-index = <0>; + rockchip,camera-module-facing = "back"; + }; + gc8034: gc8034@37 { compatible = "galaxycore,gc8034"; status = "okay"; @@ -312,6 +324,7 @@ rockchip,camera-module-facing = "back"; rockchip,camera-module-name = "RK-CMK-8M-2-v1"; rockchip,camera-module-lens-name = "CK8401"; + lens-focus = <&dw9714>; port { gc8034_out: endpoint { remote-endpoint = <&mipi_in_ucam1>; @@ -355,6 +368,7 @@ rockchip,camera-module-facing = "back"; rockchip,camera-module-name = "TongJu"; rockchip,camera-module-lens-name = "CHT842-MD"; + lens-focus = <&dw9714>; port { ov5695_out: endpoint { remote-endpoint = <&mipi_in_ucam2>; diff --git a/arch/arm64/boot/dts/rockchip/rk3568-evb6-ddr3-v10.dtsi b/arch/arm64/boot/dts/rockchip/rk3568-evb6-ddr3-v10.dtsi index 7163f3815272..894fdc0ab3c8 100644 --- a/arch/arm64/boot/dts/rockchip/rk3568-evb6-ddr3-v10.dtsi +++ b/arch/arm64/boot/dts/rockchip/rk3568-evb6-ddr3-v10.dtsi @@ -133,6 +133,18 @@ &i2c4 { status = "okay"; + + dw9714: dw9714@c { + compatible = "dongwoon,dw9714"; + status = "okay"; + reg = <0x0c>; + rockchip,vcm-start-current = <10>; + rockchip,vcm-rated-current = <85>; + rockchip,vcm-step-mode = <5>; + rockchip,camera-module-index = <0>; + rockchip,camera-module-facing = "back"; + }; + os04a10: os04a10@36 { compatible = "ovti,os04a10"; reg = <0x36>; @@ -171,6 +183,7 @@ rockchip,camera-module-facing = "back"; rockchip,camera-module-name = "RK-CMK-8M-2-v1"; rockchip,camera-module-lens-name = "CK8401"; + lens-focus = <&dw9714>; port { gc8034_out: endpoint { remote-endpoint = <&mipi_in_ucam1>; @@ -193,6 +206,7 @@ rockchip,camera-module-facing = "back"; rockchip,camera-module-name = "TongJu"; rockchip,camera-module-lens-name = "CHT842-MD"; + lens-focus = <&dw9714>; port { ov5695_out: endpoint { remote-endpoint = <&mipi_in_ucam2>; From f965b5da7c18b199a8fb27fd4fa8d4ce0615a708 Mon Sep 17 00:00:00 2001 From: Jon Lin Date: Wed, 27 Nov 2024 16:10:14 +0800 Subject: [PATCH 4/6] mtd: spi-nor: Add macro definition constraints Change-Id: I3b35faaea4fad132be18940328e7df88ebdb0dbd Signed-off-by: Jon Lin --- drivers/mtd/spi-nor/Kconfig | 1 + drivers/mtd/spi-nor/Kconfig.spinorlist | 148 +++++++++++++++++++++++++ drivers/mtd/spi-nor/Makefile | 44 ++++---- drivers/mtd/spi-nor/core.c | 46 ++++++++ 4 files changed, 217 insertions(+), 22 deletions(-) create mode 100644 drivers/mtd/spi-nor/Kconfig.spinorlist diff --git a/drivers/mtd/spi-nor/Kconfig b/drivers/mtd/spi-nor/Kconfig index ab7f2e7cdde5..e88fb485839c 100644 --- a/drivers/mtd/spi-nor/Kconfig +++ b/drivers/mtd/spi-nor/Kconfig @@ -76,5 +76,6 @@ config MTD_SPI_NOR_SWP_KEEP endchoice source "drivers/mtd/spi-nor/controllers/Kconfig" +source "drivers/mtd/spi-nor/Kconfig.spinorlist" endif # MTD_SPI_NOR diff --git a/drivers/mtd/spi-nor/Kconfig.spinorlist b/drivers/mtd/spi-nor/Kconfig.spinorlist new file mode 100644 index 000000000000..eb281a667fcc --- /dev/null +++ b/drivers/mtd/spi-nor/Kconfig.spinorlist @@ -0,0 +1,148 @@ +# SPDX-License-Identifier: GPL-2.0-only + +if MTD_SPI_NOR + +config MTD_SPI_NOR_DEVICE_AUTOSELECT + bool "Autoselect SPI Nor flash" + default y + help + By default, auto-selects all SPI Nor flash chips. + +menu "SPI Nor flash" + visible if !MTD_SPI_NOR_DEVICE_AUTOSELECT + +config MTD_SPI_NOR_ATMEL + bool "Atmel SPI flash support" + default y if MTD_SPI_NOR_DEVICE_AUTOSELECT + help + Add support for various Atmel SPI flash chips (AT45xxx and AT25xxx) + +config MTD_SPI_NOR_BOYA + bool "BOYA SPI flash support" + default y if MTD_SPI_NOR_DEVICE_AUTOSELECT + help + Add support for various BOYA SPI flash chips (BY25xxx) + +config MTD_SPI_NOR_CATALYST + bool "CATALYST SPI flash support" + default y if MTD_SPI_NOR_DEVICE_AUTOSELECT + help + Add support for various CATALYST SPI flash chips (cat25xxx) + +config MTD_SPI_NOR_DOSILICON + bool "DOSILICON SPI flash support" + default y if MTD_SPI_NOR_DEVICE_AUTOSELECT + help + Add support for various DOSILICON SPI flash chips (FM25xxx) + +config MTD_SPI_NOR_EON + bool "EON SPI flash support" + default y if MTD_SPI_NOR_DEVICE_AUTOSELECT + help + Add support for various EON SPI flash chips (EN25xxx) + +config MTD_SPI_NOR_ESMT + bool "ESMT SPI flash support" + default y if MTD_SPI_NOR_DEVICE_AUTOSELECT + help + Add support for various ESMT SPI flash chips (F25xxx and EN25) + +config MTD_SPI_NOR_EVERSPIN + bool "EVERSPIN SPI flash support" + default y if MTD_SPI_NOR_DEVICE_AUTOSELECT + help + Add support for various EVERSPIN SPI flash chips (mrxxx) + +config MTD_SPI_NOR_FMSH + bool "FMSH SPI flash support" + default y if MTD_SPI_NOR_DEVICE_AUTOSELECT + help + Add support for various FMSH SPI flash chips (FM25xxx) + +config MTD_SPI_NOR_FUJITSU + bool "FUJITSU SPI flash support" + default y if MTD_SPI_NOR_DEVICE_AUTOSELECT + help + Add support for various FUJITSU SPI flash chips (MB85xxx) + +config MTD_SPI_NOR_GIGADEVICE + bool "GigaDevice SPI flash support" + default y if MTD_SPI_NOR_DEVICE_AUTOSELECT + help + Add support for various GigaDevice SPI flash chips (GD25xxx) + +config MTD_SPI_NOR_INTEL + bool "INTEL SPI flash support" + default y if MTD_SPI_NOR_DEVICE_AUTOSELECT + help + Add support for various INTEL SPI flash chips + +config MTD_SPI_NOR_ISSI + bool "ISSI SPI flash support" + default y if MTD_SPI_NOR_DEVICE_AUTOSELECT + help + Add support for various ISSI SPI flash chips (ISxxx) + +config MTD_SPI_NOR_MACRONIX + bool "Macronix SPI flash support" + default y if MTD_SPI_NOR_DEVICE_AUTOSELECT + help + Add support for various Macronix SPI flash chips (MX25Lxxx) + +config MTD_SPI_NOR_NORMEM + bool "NORMEM SPI flash support" + default y if MTD_SPI_NOR_DEVICE_AUTOSELECT + help + Add support for various NORMEM SPI flash chips (NM25xxx) + +config MTD_SPI_NOR_PUYA + bool "PUYA SPI flash support" + default y if MTD_SPI_NOR_DEVICE_AUTOSELECT + help + Add support for various PUYA SPI flash chips (PY25xxx) + +config MTD_SPI_NOR_SPANSION + bool "Spansion SPI flash support" + default y if MTD_SPI_NOR_DEVICE_AUTOSELECT + help + Add support for various Spansion SPI flash chips (S25FLxxx) + +config MTD_SPI_NOR_STMICRO + bool "STMicro SPI flash support" + default y if MTD_SPI_NOR_DEVICE_AUTOSELECT + help + Add support for various STMicro SPI flash chips (M25Pxxx and N25Qxxx) + +config MTD_SPI_NOR_SST + bool "SST SPI flash support" + default y if MTD_SPI_NOR_DEVICE_AUTOSELECT + help + Add support for various SST SPI flash chips (SST25xxx) + +config MTD_SPI_NOR_WINBOND + bool "Winbond SPI flash support" + default y if MTD_SPI_NOR_DEVICE_AUTOSELECT + help + Add support for various WINBOND SPI flash chips (W25xxx) + +config MTD_SPI_NOR_XILINX + bool "XILINX SPI flash support" + default y if MTD_SPI_NOR_DEVICE_AUTOSELECT + help + Add support for various XILINX SPI flash chips (3Sxxx) + +config MTD_SPI_NOR_XMC + bool "XMC SPI flash support" + default y if MTD_SPI_NOR_DEVICE_AUTOSELECT + help + Add support for various XMC SPI flash chips (XM25xxx) + +config MTD_SPI_NOR_XTX + bool "XTX SPI flash support" + default y if MTD_SPI_NOR_DEVICE_AUTOSELECT + help + Add support for various XTX SPI flash chips (XT25xxx) + +endmenu + +endif # MTD_SPI_NOR diff --git a/drivers/mtd/spi-nor/Makefile b/drivers/mtd/spi-nor/Makefile index 1401664fea87..a89fe38b21a8 100644 --- a/drivers/mtd/spi-nor/Makefile +++ b/drivers/mtd/spi-nor/Makefile @@ -1,28 +1,28 @@ # SPDX-License-Identifier: GPL-2.0 spi-nor-objs := core.o sfdp.o swp.o otp.o sysfs.o -spi-nor-objs += atmel.o -spi-nor-objs += boya.o -spi-nor-objs += catalyst.o -spi-nor-objs += dosilicon.o -spi-nor-objs += eon.o -spi-nor-objs += esmt.o -spi-nor-objs += everspin.o -spi-nor-objs += fmsh.o -spi-nor-objs += fujitsu.o -spi-nor-objs += gigadevice.o -spi-nor-objs += normem.o -spi-nor-objs += intel.o -spi-nor-objs += issi.o -spi-nor-objs += macronix.o -spi-nor-objs += micron-st.o -spi-nor-objs += puya.o -spi-nor-objs += spansion.o -spi-nor-objs += sst.o -spi-nor-objs += winbond.o -spi-nor-objs += xilinx.o -spi-nor-objs += xmc.o -spi-nor-objs += xtx.o +spi-nor-$(CONFIG_MTD_SPI_NOR_ATMEL) += atmel.o +spi-nor-$(CONFIG_MTD_SPI_NOR_BOYA) += boya.o +spi-nor-$(CONFIG_MTD_SPI_NOR_CATALYST) += catalyst.o +spi-nor-$(CONFIG_MTD_SPI_NOR_DOSILICON) += dosilicon.o +spi-nor-$(CONFIG_MTD_SPI_NOR_EON) += eon.o +spi-nor-$(CONFIG_MTD_SPI_NOR_ESMT) += esmt.o +spi-nor-$(CONFIG_MTD_SPI_NOR_EVERSPIN) += everspin.o +spi-nor-$(CONFIG_MTD_SPI_NOR_FMSH) += fmsh.o +spi-nor-$(CONFIG_MTD_SPI_NOR_FUJITSU) += fujitsu.o +spi-nor-$(CONFIG_MTD_SPI_NOR_GIGADEVICE) += gigadevice.o +spi-nor-$(CONFIG_MTD_SPI_NOR_INTEL) += intel.o +spi-nor-$(CONFIG_MTD_SPI_NOR_ISSI) += issi.o +spi-nor-$(CONFIG_MTD_SPI_NOR_MACRONIX) += macronix.o +spi-nor-$(CONFIG_MTD_SPI_NOR_STMICRO) += micron-st.o +spi-nor-$(CONFIG_MTD_SPI_NOR_NORMEM) += normem.o +spi-nor-$(CONFIG_MTD_SPI_NOR_PUYA) += puya.o +spi-nor-$(CONFIG_MTD_SPI_NOR_SPANSION) += spansion.o +spi-nor-$(CONFIG_MTD_SPI_NOR_SST) += sst.o +spi-nor-$(CONFIG_MTD_SPI_NOR_WINBOND) += winbond.o +spi-nor-$(CONFIG_MTD_SPI_NOR_XILINX) += xilinx.o +spi-nor-$(CONFIG_MTD_SPI_NOR_XMC) += xmc.o +spi-nor-$(CONFIG_MTD_SPI_NOR_XTX) += xtx.o spi-nor-$(CONFIG_DEBUG_FS) += debugfs.o obj-$(CONFIG_MTD_SPI_NOR) += spi-nor.o diff --git a/drivers/mtd/spi-nor/core.c b/drivers/mtd/spi-nor/core.c index f46420308c21..ba809b46cd4f 100644 --- a/drivers/mtd/spi-nor/core.c +++ b/drivers/mtd/spi-nor/core.c @@ -1753,29 +1753,75 @@ int spi_nor_sr2_bit2_quad_enable(struct spi_nor *nor) } static const struct spi_nor_manufacturer *manufacturers[] = { +#ifdef CONFIG_MTD_SPI_NOR_ATMEL &spi_nor_atmel, +#endif +#ifdef CONFIG_MTD_SPI_NOR_BOYA &spi_nor_boya, +#endif +#ifdef CONFIG_MTD_SPI_NOR_CATALYST &spi_nor_catalyst, +#endif +#ifdef CONFIG_MTD_SPI_NOR_DOSILICON &spi_nor_dosilicon, +#endif +#ifdef CONFIG_MTD_SPI_NOR_EON &spi_nor_eon, +#endif +#ifdef CONFIG_MTD_SPI_NOR_ESMT &spi_nor_esmt, +#endif +#ifdef CONFIG_MTD_SPI_NOR_EVERSPIN &spi_nor_everspin, +#endif +#ifdef CONFIG_MTD_SPI_NOR_FMSH &spi_nor_fmsh, +#endif +#ifdef CONFIG_MTD_SPI_NOR_FUJITSU &spi_nor_fujitsu, +#endif +#ifdef CONFIG_MTD_SPI_NOR_GIGADEVICE &spi_nor_gigadevice, +#endif +#ifdef CONFIG_MTD_SPI_NOR_NORMEM &spi_nor_normem, +#endif +#ifdef CONFIG_MTD_SPI_NOR_INTEL &spi_nor_intel, +#endif +#ifdef CONFIG_MTD_SPI_NOR_ISSI &spi_nor_issi, +#endif +#ifdef CONFIG_MTD_SPI_NOR_MACRONIX &spi_nor_macronix, +#endif +#ifdef CONFIG_MTD_SPI_NOR_STMICRO &spi_nor_micron, +#endif +#ifdef CONFIG_MTD_SPI_NOR_PUYA &spi_nor_puya, +#endif +#ifdef CONFIG_MTD_SPI_NOR_STMICRO &spi_nor_st, +#endif +#ifdef CONFIG_MTD_SPI_NOR_SPANSION &spi_nor_spansion, +#endif +#ifdef CONFIG_MTD_SPI_NOR_SST &spi_nor_sst, +#endif +#ifdef CONFIG_MTD_SPI_NOR_WINBOND &spi_nor_winbond, +#endif +#ifdef CONFIG_MTD_SPI_NOR_XILINX &spi_nor_xilinx, +#endif +#ifdef CONFIG_MTD_SPI_NOR_XMC &spi_nor_xmc, +#endif +#ifdef CONFIG_MTD_SPI_NOR_XTX &spi_nor_xtx, +#endif }; static const struct flash_info *spi_nor_match_id(struct spi_nor *nor, From b2a3a286187dbd513d7e8cf91fbf7aa834d311ef Mon Sep 17 00:00:00 2001 From: Zhen Chen Date: Wed, 20 Nov 2024 16:34:53 +0800 Subject: [PATCH 5/6] Mali: utgard: Replace calls to dma_fence_ops::signaled with dma_fence_is_signaled() To address the issue in kernel 6.1 that 'dma_fence_ops::signaled' is NULL for certain signaled fence instances. Change-Id: Ie5e03e849947a9cd2b02fd057ebb44878aa2d0b0 Signed-off-by: Zhen Chen --- drivers/gpu/arm/mali400/mali/common/mali_timeline.c | 2 +- .../arm/mali400/mali/common/mali_timeline_fence_wait.c | 2 +- drivers/gpu/arm/mali400/mali/linux/mali_internal_sync.c | 9 +++------ 3 files changed, 5 insertions(+), 8 deletions(-) mode change 100755 => 100644 drivers/gpu/arm/mali400/mali/common/mali_timeline.c mode change 100755 => 100644 drivers/gpu/arm/mali400/mali/common/mali_timeline_fence_wait.c diff --git a/drivers/gpu/arm/mali400/mali/common/mali_timeline.c b/drivers/gpu/arm/mali400/mali/common/mali_timeline.c old mode 100755 new mode 100644 index ffffee9306ce..ee42a997c7e6 --- a/drivers/gpu/arm/mali400/mali/common/mali_timeline.c +++ b/drivers/gpu/arm/mali400/mali/common/mali_timeline.c @@ -1551,7 +1551,7 @@ static void mali_timeline_do_sync_fence_callback(void *arg) #elif LINUX_VERSION_CODE < KERNEL_VERSION(4, 9, 0) fence_status = atomic_read(&sync_fence->status); #else - fence_status = sync_fence->fence->ops->signaled(sync_fence->fence); + fence_status = dma_fence_is_signaled(sync_fence->fence); #endif system = tracker->system; diff --git a/drivers/gpu/arm/mali400/mali/common/mali_timeline_fence_wait.c b/drivers/gpu/arm/mali400/mali/common/mali_timeline_fence_wait.c old mode 100755 new mode 100644 index 1ab13f50997f..dff480332868 --- a/drivers/gpu/arm/mali400/mali/common/mali_timeline_fence_wait.c +++ b/drivers/gpu/arm/mali400/mali/common/mali_timeline_fence_wait.c @@ -113,7 +113,7 @@ static mali_bool mali_timeline_fence_wait_check_status(struct mali_timeline_syst #elif LINUX_VERSION_CODE < KERNEL_VERSION(4, 9, 0) if (0 < atomic_read(&sync_fence->status)) { #else - if (0 == sync_fence->fence->ops->signaled(sync_fence->fence)) { + if (0 == dma_fence_is_signaled(sync_fence->fence)) { #endif ret = MALI_FALSE; diff --git a/drivers/gpu/arm/mali400/mali/linux/mali_internal_sync.c b/drivers/gpu/arm/mali400/mali/linux/mali_internal_sync.c index e13cbad3e513..e0f89108d4fe 100644 --- a/drivers/gpu/arm/mali400/mali/linux/mali_internal_sync.c +++ b/drivers/gpu/arm/mali400/mali/linux/mali_internal_sync.c @@ -92,7 +92,7 @@ static void mali_internal_fence_check_cb_func(struct dma_fence *fence, struct dm if (ret) wake_up_all(&sync_fence->wq); #else - ret = sync_fence->fence->ops->signaled(sync_fence->fence); + ret = dma_fence_is_signaled(sync_fence->fence); if (0 > ret) MALI_PRINT_ERROR(("Mali internal sync:Failed to wait fence 0x%x for sync_fence 0x%x.\n", fence, sync_fence)); @@ -557,10 +557,7 @@ int mali_internal_sync_fence_wait_async(struct mali_internal_sync_fence *sync_fe return !err; #else - if ((sync_fence->fence) && (sync_fence->fence->ops) && (sync_fence->fence->ops->signaled)) - err = sync_fence->fence->ops->signaled(sync_fence->fence); - else - err = -1; + err = dma_fence_is_signaled(sync_fence->fence); if (0 > err) return err; @@ -583,7 +580,7 @@ int mali_internal_sync_fence_wait_async(struct mali_internal_sync_fence *sync_fe waiter->work.private = sync_fence; spin_lock_irqsave(&sync_fence->wq.lock, flags); - err = sync_fence->fence->ops->signaled(sync_fence->fence); + err = dma_fence_is_signaled(sync_fence->fence); if (0 == err){ #if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 13, 0) From 263ff45dbffdb398230e2f69226e9aa6b4e8969b Mon Sep 17 00:00:00 2001 From: Sandy Huang Date: Thu, 28 Nov 2024 11:08:57 +0800 Subject: [PATCH 6/6] drm/rockchip: vop2: Fix compile error on arm32 platform ld.lld: error: undefined symbol: __udivdi3 >>> referenced by rockchip_drm_vop2.c >>> drivers/gpu/drm/rockchip/rockchip_drm_vop2.o:(vop2_plane_atomic_check) in archive vmlinux.a >>> did you mean: __udivsi3 >>> defined in: vmlinux.a(arch/arm/lib/lib1funcs.o) arm-none-linux-gnueabihf-ld: drivers/gpu/drm/rockchip/rockchip_drm_vop2.o: in function `vop2_calc_dsc_clk': rockchip_drm_vop2.c:(.text+0x239c): undefined reference to `__aeabi_uldivmod' Signed-off-by: Sandy Huang Change-Id: Iac0b61444cd4d33c62bd8994d0ce7ca1bab7bfa4 --- drivers/gpu/drm/rockchip/rockchip_drm_vop2.c | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/drivers/gpu/drm/rockchip/rockchip_drm_vop2.c b/drivers/gpu/drm/rockchip/rockchip_drm_vop2.c index 6a8e91a7c256..9c828df0d84a 100644 --- a/drivers/gpu/drm/rockchip/rockchip_drm_vop2.c +++ b/drivers/gpu/drm/rockchip/rockchip_drm_vop2.c @@ -5775,10 +5775,12 @@ static int vop2_plane_atomic_check(struct drm_plane *plane, struct drm_atomic_st int hsub = fb->format->hsub; int vsub = fb->format->vsub; - if (fb->format->char_per_block[0] == 0) + if (fb->format->char_per_block[0] == 0) { offset = ALIGN_DOWN(src->x1 >> 16, tile_size) * fb->format->cpp[1] / hsub * tile_size; - else - offset = drm_format_info_min_pitch(fb->format, 1, ALIGN_DOWN(src->x1 >> 16, tile_size)) * tile_size / hsub; + } else { + offset = drm_format_info_min_pitch(fb->format, 1, ALIGN_DOWN(src->x1 >> 16, tile_size)) * tile_size; + offset /= hsub; + } if (vpstate->tiled_en) offset /= vsub; @@ -8604,7 +8606,8 @@ static int vop2_calc_dsc_clk(struct drm_crtc *crtc) * so when txp_clk is equal to v_pixclk, we set dsc_cds = crtc_clock / 4, * otherwise dsc_cds = crtc_clock / 8; */ - vcstate->dsc_cds_clk_rate = v_pixclk / (vcstate->dsc_txp_clk_rate == v_pixclk ? 4 : 8); + vcstate->dsc_cds_clk_rate = v_pixclk; + do_div(vcstate->dsc_cds_clk_rate, (vcstate->dsc_txp_clk_rate == v_pixclk ? 4 : 8)); return 0; }