diff --git a/arch/arm64/boot/dts/rockchip/rk3576-vehicle-evb.dtsi b/arch/arm64/boot/dts/rockchip/rk3576-vehicle-evb.dtsi index 1f396ccb7d00..8b1d556eb4a0 100644 --- a/arch/arm64/boot/dts/rockchip/rk3576-vehicle-evb.dtsi +++ b/arch/arm64/boot/dts/rockchip/rk3576-vehicle-evb.dtsi @@ -8,61 +8,6 @@ #include "rk3576-rk806.dtsi" / { - es8388_sound: es8388-sound { - status = "disabled"; - compatible = "rockchip,multicodecs-card"; - rockchip,card-name = "rockchip-es8388"; - hp-det-gpio = <&gpio0 RK_PD3 GPIO_ACTIVE_LOW>; - io-channels = <&saradc 3>; - io-channel-names = "adc-detect"; - keyup-threshold-microvolt = <1800000>; - poll-interval = <100>; - spk-con-gpio = <&gpio2 RK_PB1 GPIO_ACTIVE_HIGH>; - hp-con-gpio = <&gpio3 RK_PD6 GPIO_ACTIVE_HIGH>; - rockchip,format = "i2s"; - rockchip,mclk-fs = <256>; - rockchip,cpu = <&sai1>; - rockchip,codec = <&es8388>; - rockchip,audio-routing = - "Headphone", "LOUT1", - "Headphone", "ROUT1", - "Speaker", "LOUT2", - "Speaker", "ROUT2", - "Headphone", "Headphone Power", - "Headphone", "Headphone Power", - "Speaker", "Speaker Power", - "Speaker", "Speaker Power", - "LINPUT1", "Main Mic", - "LINPUT2", "Main Mic", - "RINPUT1", "Headset Mic", - "RINPUT2", "Headset Mic"; - pinctrl-names = "default"; - pinctrl-0 = <&hp_det>; - play-pause-key { - label = "playpause"; - linux,code = ; - press-threshold-microvolt = <2000>; - }; - }; - - pdmics: dummy-codec { - status = "disabled"; - compatible = "rockchip,dummy-codec"; - #sound-dai-cells = <0>; - }; - - pdm_mic_array: pdm-mic-array { - status = "disabled"; - compatible = "simple-audio-card"; - simple-audio-card,name = "rockchip,pdm-mic-array"; - simple-audio-card,cpu { - sound-dai = <&pdm1>; - }; - simple-audio-card,codec { - sound-dai = <&pdmics>; - }; - }; - vcc5v0_buck: vcc5v0-buck { compatible = "regulator-fixed"; regulator-name = "vcc5v0_buck"; @@ -142,8 +87,6 @@ vin-supply = <&vcc_3v3_s0>; }; - - vcc5v0_host_usb30: vcc5v0-host-usb30 { compatible = "regulator-fixed"; regulator-name = "vcc5v0_host_usb30"; @@ -176,7 +119,13 @@ vin-supply = <&vcc5v0_buck>; }; - car_rk3308_sound: car-rk3308-sound { + dummy_codec: dummy-codec { + status = "okay"; + compatible = "rockchip,dummy-codec"; + #sound-dai-cells = <0>; + }; + + vehicle_adsp_sound: vehicle-adsp-sound { status = "okay"; compatible = "simple-audio-card"; simple-audio-card,name = "rockchip,car-rk3308-sound"; @@ -190,7 +139,7 @@ dai-tdm-slot-width = <32>; }; codec_master: simple-audio-card,codec { - sound-dai = <&spi_codec>; + sound-dai = <&dummy_codec>; }; }; }; @@ -223,7 +172,6 @@ status = "okay"; }; - &gmac0 { /* Use rgmii-rxid mode to disable rx delay inside Soc */ phy-mode = "rgmii-rxid"; @@ -325,7 +273,6 @@ pinctrl-names = "default"; pinctrl-0 = <&i2c7m1_xfer>; - icm42607_acc: icm_acc@68 { status = "okay"; compatible = "icm42607_acc"; @@ -393,12 +340,6 @@ }; }; - headphone { - hp_det: hp-det { - rockchip,pins = <0 RK_PD3 RK_FUNC_GPIO &pcfg_pull_up>; - }; - }; - s35390a { s35390a_int: s35390a-int { rockchip,pins = <0 RK_PA0 RK_FUNC_GPIO &pcfg_pull_up>; @@ -435,12 +376,6 @@ rockchip,pins = <1 RK_PC6 RK_FUNC_GPIO &pcfg_pull_up>; }; }; - - rk3308 { - rk3308_reset: rk3308-reset { - rockchip,pins = <2 RK_PC1 RK_FUNC_GPIO &pcfg_pull_none>; - }; - }; }; &route_hdmi { @@ -452,15 +387,15 @@ status = "okay"; pinctrl-names = "default"; pinctrl-0 = <&sai1m0_lrck - &sai1m0_sclk - &sai1m0_sdi0 - &sai1m0_sdi1 - &sai1m0_sdi2 - &sai1m0_sdi3 - &sai1m0_sdo0 - &sai1m0_sdo1 - &sai1m0_sdo2 - &sai1m0_sdo3>; + &sai1m0_sclk + &sai1m0_sdi0 + &sai1m0_sdi1 + &sai1m0_sdi2 + &sai1m0_sdi3 + &sai1m0_sdo0 + &sai1m0_sdo1 + &sai1m0_sdo2 + &sai1m0_sdo3>; }; &sdmmc { @@ -469,18 +404,14 @@ &spi1 { status = "okay"; - pinctrl-names = "default"; + max-freq = <50000000>; /* spi internal clk, don't modify */ + pinctrl-names = "default", "high_speed"; pinctrl-0 = <&spi1m1_csn0 &spi1m1_pins>; - - spi_codec: spi-codec@1 { - compatible ="rockchip,spi-codec"; - reg = <1>; + spi_dev@0 { + compatible = "rockchip,spidev"; + reg = <0>; + spi-max-frequency = <50000000>; spi-lsb-first; - spi-max-frequency = <5000000>; - #sound-dai-cells = <0>; - pinctrl-names = "default"; - pinctrl-0 = <&rk3308_reset>; - status = "okay"; }; }; diff --git a/arch/arm64/boot/dts/rockchip/rk3576.dtsi b/arch/arm64/boot/dts/rockchip/rk3576.dtsi index 4ed99a665cf0..cf5ba9547c2f 100644 --- a/arch/arm64/boot/dts/rockchip/rk3576.dtsi +++ b/arch/arm64/boot/dts/rockchip/rk3576.dtsi @@ -1781,7 +1781,8 @@ <&cru CLK_UART_FRAC_1>, <&cru CLK_UART_FRAC_2>, <&cru CLK_AUDIO_FRAC_0>, <&cru CLK_AUDIO_FRAC_1>, <&cru CLK_CPLL_DIV2>, <&cru CLK_CPLL_DIV4>, - <&cru CLK_CPLL_DIV10>, <&cru FCLK_DDR_CM0_CORE>; + <&cru CLK_CPLL_DIV10>, <&cru FCLK_DDR_CM0_CORE>, + <&cru ACLK_PHP_ROOT>; assigned-clock-parents = <&cru PLL_AUPLL>; assigned-clock-rates = <0>, @@ -1790,7 +1791,8 @@ <96000000>, <128000000>, <45158400>, <49152000>, <500000000>, <250000000>, - <100000000>, <500000000>; + <100000000>, <500000000>, + <250000000>; }; i2c0: i2c@27300000 { diff --git a/arch/arm64/configs/rockchip_linux_defconfig b/arch/arm64/configs/rockchip_linux_defconfig index 67f36e8b9884..b5c3d2e42d86 100644 --- a/arch/arm64/configs/rockchip_linux_defconfig +++ b/arch/arm64/configs/rockchip_linux_defconfig @@ -355,6 +355,7 @@ CONFIG_ROCKCHIP_INNO_HDMI=y CONFIG_ROCKCHIP_LVDS=y CONFIG_ROCKCHIP_RGB=y CONFIG_ROCKCHIP_DW_HDCP2=y +CONFIG_ROCKCHIP_DP_MST_AUX_CLIENT=y CONFIG_DRM_PANEL_SIMPLE=y CONFIG_DRM_DISPLAY_CONNECTOR=y CONFIG_DRM_SII902X=y diff --git a/drivers/dma/pl330.c b/drivers/dma/pl330.c index 178f90623fbe..25db2656ebdd 100644 --- a/drivers/dma/pl330.c +++ b/drivers/dma/pl330.c @@ -2943,6 +2943,8 @@ static struct dma_async_tx_descriptor *pl330_prep_interleaved_dma( #ifdef CONFIG_NO_GKI nump = xt->nump; +#else + nump = xt->sgl[1].size; #endif numf = xt->numf; size = xt->sgl[0].size; diff --git a/drivers/gpu/drm/rockchip/Kconfig b/drivers/gpu/drm/rockchip/Kconfig index 53165a33f296..7917ac8f7100 100644 --- a/drivers/gpu/drm/rockchip/Kconfig +++ b/drivers/gpu/drm/rockchip/Kconfig @@ -173,6 +173,12 @@ config ROCKCHIP_DW_HDCP2 Choose this option to enable support for the Synopsys Designware HDCP2 Controller. +config ROCKCHIP_DP_MST_AUX_CLIENT + tristate "dp mst aux client" + select DRM_DISPLAY_DP_HELPER + help + This selects support dp mst device that not support aux client. + source "drivers/gpu/drm/rockchip/rk618/Kconfig" source "drivers/gpu/drm/rockchip/ebc-dev/Kconfig" diff --git a/drivers/gpu/drm/rockchip/Makefile b/drivers/gpu/drm/rockchip/Makefile index 62e3f17833ca..048e166c7bec 100644 --- a/drivers/gpu/drm/rockchip/Makefile +++ b/drivers/gpu/drm/rockchip/Makefile @@ -33,3 +33,6 @@ obj-$(CONFIG_ROCKCHIP_DW_HDCP2) += dw_hdcp2.o obj-$(CONFIG_DRM_ROCKCHIP) += rockchipdrm.o obj-$(CONFIG_DRM_ROCKCHIP_RK618) += rk618/ obj-$(CONFIG_ROCKCHIP_EBC_DEV) += ebc-dev/ + +rockchip_aux_client-y := rockchip_dp_mst_aux_client.o rockchip_dp_mst_aux_client_helper.o +obj-$(CONFIG_ROCKCHIP_DP_MST_AUX_CLIENT) += rockchip_aux_client.o diff --git a/drivers/gpu/drm/rockchip/rockchip_dp_mst_aux_client.c b/drivers/gpu/drm/rockchip/rockchip_dp_mst_aux_client.c new file mode 100644 index 000000000000..a763cfa8c1d8 --- /dev/null +++ b/drivers/gpu/drm/rockchip/rockchip_dp_mst_aux_client.c @@ -0,0 +1,326 @@ +// SPDX-License-Identifier: GPL-2.0 +/* + * Rockchip DP MST simulation axu client + * + * Copyright (c) 2024 Rockchip Electronics Co. Ltd. + * + * Author: Zhang Yubing + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include