1diff --git a/adapter/khdf/linux/model/audio/Kconfig b/adapter/khdf/linux/model/audio/Kconfig 2index 224afcc5..c42d11fc 100644 3--- a/adapter/khdf/linux/model/audio/Kconfig 4+++ b/adapter/khdf/linux/model/audio/Kconfig 5@@ -50,6 +50,13 @@ config DRIVERS_HDF_AUDIO_CAP_REPORT 6 help 7 Answer Y to choice capture event report. 8 9+config DRIVERS_HDF_AUDIO_T507 10+ bool "Enable HDF Audio Codec driver for T507" 11+ default n 12+ depends on DRIVERS_HDF_AUDIO 13+ help 14+ Answer Y to choice HDF Audio Codec driver. 15+ 16 config DRIVERS_HDF_AUDIO_TEST 17 bool "Enable HDF Audio driver Test" 18 default n 19diff --git a/adapter/khdf/linux/model/audio/Makefile b/adapter/khdf/linux/model/audio/Makefile 20index 875b1681..c1ed5524 100644 21--- a/adapter/khdf/linux/model/audio/Makefile 22+++ b/adapter/khdf/linux/model/audio/Makefile 23@@ -20,6 +20,8 @@ KHDF_AUDIO_IMX8MM_DIR = $(KHDF_AUDIO_BASE_ROOT_DIR)/device/board/osware/$(DEVICE 24 KHDF_AUDIO_IMX8MM_INC_DIR = drivers/hdf/framework/../../../device/board/osware/$(DEVICE_NAME)/drivers/audio 25 KHDF_AUDIO_A311D_DIR = $(KHDF_AUDIO_BASE_ROOT_DIR)/device/board/unionman/$(DEVICE_NAME)/kernel/hdf/audio 26 KHDF_AUDIO_A311D_INC_DIR = drivers/hdf/framework/../../../device/board/unionman/$(DEVICE_NAME)/kernel/hdf/audio 27+KHDF_AUDIO_T507_DIR = $(KHDF_AUDIO_BASE_ROOT_DIR)/device/board/$(PRODUCT_COMPANY)/$(DEVICE_NAME)/kernel/hdf/driver/audio 28+KHDF_AUDIO_T507_INC_DIR = drivers/hdf/framework/../../../device/board/$(PRODUCT_COMPANY)/$(DEVICE_NAME)/kernel/hdf/driver/audio 29 30 audio_hdmi_codec-objs := \ 31 $(KHDF_AUDIO_ROOT_DIR)/hdmi/src/audio_hdmi_codec_adapter.o \ 32@@ -70,6 +72,18 @@ obj-$(CONFIG_DRIVERS_HDF_AUDIO_A311D) += \ 33 $(KHDF_AUDIO_A311D_DIR)/linux_drv/src/axg_snd_card.o \ 34 $(KHDF_AUDIO_A311D_DIR)/linux_drv/src/nau8540.o 35 36+obj-$(CONFIG_DRIVERS_HDF_AUDIO_T507) += \ 37+ $(KHDF_AUDIO_T507_DIR)/codec/t507/src/t507_codec_adapter.o \ 38+ $(KHDF_AUDIO_T507_DIR)/codec/t507/src/t507_codec_impl_linux.o \ 39+ $(KHDF_AUDIO_T507_DIR)/codec/t507/src/t507_codec_ops.o \ 40+ $(KHDF_AUDIO_T507_DIR)/dai/src/t507_dai_ahub_adapter.o \ 41+ $(KHDF_AUDIO_T507_DIR)/dai/src/t507_dai_ahub_impl_linux.o \ 42+ $(KHDF_AUDIO_T507_DIR)/dai/src/t507_dai_ahub_ops.o \ 43+ $(KHDF_AUDIO_T507_DIR)/dsp/src/dsp_adapter.o \ 44+ $(KHDF_AUDIO_T507_DIR)/dsp/src/dsp_ops.o \ 45+ $(KHDF_AUDIO_T507_DIR)/soc/src/t507_dma_adapter.o \ 46+ $(KHDF_AUDIO_T507_DIR)/soc/src/t507_dma_ops.o 47+ 48 obj-$(CONFIG_DRIVERS_HDF_AUDIO_IMX8MM) += \ 49 $(KHDF_AUDIO_IMX8MM_DIR)/soc/src/sai_driver.o \ 50 $(KHDF_AUDIO_IMX8MM_DIR)/soc/src/dma_driver.o \ 51@@ -110,3 +124,9 @@ ccflags-$(CONFIG_DRIVERS_HDF_AUDIO_IMX8MM) += \ 52 -I$(srctree)/$(KHDF_AUDIO_IMX8MM_INC_DIR)/soc/include \ 53 -I$(srctree)/$(KHDF_AUDIO_IMX8MM_INC_DIR)/dsp/include \ 54 -I$(srctree)/$(KHDF_AUDIO_IMX8MM_INC_DIR)/include 55+ 56+ccflags-$(CONFIG_DRIVERS_HDF_AUDIO_T507) += \ 57+ -I$(srctree)/$(KHDF_AUDIO_T507_INC_DIR)/codec/t507/include \ 58+ -I$(srctree)/$(KHDF_AUDIO_T507_INC_DIR)/dai/include \ 59+ -I$(srctree)/$(KHDF_AUDIO_T507_INC_DIR)/dsp/include \ 60+ -I$(srctree)/$(KHDF_AUDIO_T507_INC_DIR)/soc/include 61diff --git a/framework/core/manager/src/devsvc_manager.c b/framework/core/manager/src/devsvc_manager.c 62index ef339e39..2a1b6700 100644 63--- a/framework/core/manager/src/devsvc_manager.c 64+++ b/framework/core/manager/src/devsvc_manager.c 65@@ -299,7 +299,8 @@ int DevSvcManagerListServiceByInterfaceDesc( 66 interfaceDesc, serviceNum); 67 return HDF_FAILURE; 68 } 69- for (uint32_t i = 0; i < serviceNum; i++) { 70+ uint32_t i; 71+ for (i = 0; i < serviceNum; i++) { 72 HdfSbufWriteString(reply, serviceNames[i]); 73 } 74 return status; 75diff --git a/framework/model/input/driver/touchscreen/touch_gt911.c b/framework/model/input/driver/touchscreen/touch_gt911.c 76index f2ab20be..a8305d5b 100644 77--- a/framework/model/input/driver/touchscreen/touch_gt911.c 78+++ b/framework/model/input/driver/touchscreen/touch_gt911.c 79@@ -117,6 +117,11 @@ static void ParsePointData(ChipDevice *device, FrameData *frame, uint8_t *buf, u 80 ((buf[GT_POINT_SIZE * i + GT_X_HIGH] & ONE_BYTE_MASK) << ONE_BYTE_OFFSET); 81 frame->fingers[i].y = (buf[GT_POINT_SIZE * i + GT_Y_LOW] & ONE_BYTE_MASK) | 82 ((buf[GT_POINT_SIZE * i + GT_Y_HIGH] & ONE_BYTE_MASK) << ONE_BYTE_OFFSET); 83+#elif defined(CONFIG_ARCH_SUN50IW9) 84+ frame->fingers[i].x = (buf[GT_POINT_SIZE * i + GT_X_LOW] & ONE_BYTE_MASK) | 85+ ((buf[GT_POINT_SIZE * i + GT_X_HIGH] & ONE_BYTE_MASK) << ONE_BYTE_OFFSET); 86+ frame->fingers[i].y = (buf[GT_POINT_SIZE * i + GT_Y_LOW] & ONE_BYTE_MASK) | 87+ ((buf[GT_POINT_SIZE * i + GT_Y_HIGH] & ONE_BYTE_MASK) << ONE_BYTE_OFFSET); 88 #else 89 frame->fingers[i].y = (buf[GT_POINT_SIZE * i + GT_X_LOW] & ONE_BYTE_MASK) | 90 ((buf[GT_POINT_SIZE * i + GT_X_HIGH] & ONE_BYTE_MASK) << ONE_BYTE_OFFSET); 91diff --git a/framework/model/input/driver/touchscreen/touch_gt911.h b/framework/model/input/driver/touchscreen/touch_gt911.h 92index 79246b73..ca824980 100644 93--- a/framework/model/input/driver/touchscreen/touch_gt911.h 94+++ b/framework/model/input/driver/touchscreen/touch_gt911.h 95@@ -79,6 +79,28 @@ uint8_t firmWareParm[FIRMWARE_LEN] = { 96 0x22, 0x03, 0x00, 0x00, 0x33, 0x00, 0x0F, 0x00, 0x00, 0x28, 97 0x50, 0x3C, 0x50, 0x00, 0x00, 0x05, 0x5F, 0xEB, 0x01 98 }; 99+#elif defined(CONFIG_ARCH_SUN50IW9) 100+uint8_t firmWareParm[FIRMWARE_LEN] = { 101+0x80,0x47,0x45,0x20,0x03,0x00,0x05,0x05,0x35,0x00,0x01,0xC8, 102+ 0x1E,0x0F,0x50,0x32,0x03,0x05,0x00,0x00,0x00,0x00, 103+ 0x00,0x00,0x04,0x18,0x1A,0x1E,0x14,0x8C,0x2E,0x0E, 104+ 0x1E,0x20,0xEB,0x04,0x00,0x00,0x00,0xBA,0x02,0x2D, 105+ 0x00,0x00,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x00, 106+ 0x00,0x0F,0x2D,0x94,0xD5,0x02,0x07,0x00,0x00,0x04, 107+ 0xE6,0x10,0x00,0xBB,0x14,0x00,0x92,0x1A,0x00,0x78, 108+ 0x20,0x00,0x61,0x28,0x00,0x61,0x00,0x00,0x00,0x00, 109+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 110+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 111+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 112+ 0x00,0x00,0x1C,0x1A,0x18,0x16,0x14,0x12,0x10,0x0E, 113+ 0x0C,0x0A,0x08,0x06,0x04,0x02,0x00,0x00,0x00,0x00, 114+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 115+ 0x00,0x00,0x2A,0x29,0x28,0x26,0x24,0x22,0x21,0x20, 116+ 0x1F,0x1E,0x1D,0x1C,0x18,0x16,0x00,0x02,0x04,0x06, 117+ 0x08,0x0A,0x0C,0x0F,0x10,0x12,0x13,0x14,0x00,0x00, 118+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 119+ 0x00,0x00,0x00,0x00,0xCB,0x01 120+}; 121 #else 122 uint8_t firmWareParm[FIRMWARE_LEN] = { 123 0x80, 0x47, 0x45, 0xC0, 0x03, 0xE0, 0x01, 0x05, 0x3D, 0x00, 0x01, 0x08, 0x28, 0x0F, 124