diff --git a/Kconfig b/Kconfig index 037b190fb2a2bee3bc2025fc9c8955bed9306823..6bb8daf347a4359327a11ae0cf7826a0edf72abe 100644 --- a/Kconfig +++ b/Kconfig @@ -13,6 +13,12 @@ config HDF_SUPPORT_LEVEL help Answer 1 on OHOS L1, 2 on OHOS L2, etc +config VIM3L_OSAL_THREAD + bool "Enable vim3l osal thread" + default n + help + Answer Y to enable vim3l osal thread. + source "drivers/hdf/khdf/platform/Kconfig" source "drivers/hdf/khdf/test/Kconfig" source "drivers/hdf/khdf/model/display/Kconfig" diff --git a/model/audio/Kconfig b/model/audio/Kconfig index a760df7f5d214b951def6ef647d352c053a8feb2..e0312122304b22fa6a176e09a36591da349feab1 100755 --- a/model/audio/Kconfig +++ b/model/audio/Kconfig @@ -11,3 +11,17 @@ config DRIVERS_HDF_AUDIO_TEST depends on DRIVERS_HDF_AUDIO help Answer Y to choice HDF Audio Test input driver. + +config ARCH_ARM64 + bool "Enable HDF arm64 lib" + default n + depends on DRIVERS_HDF_AUDIO + help + Answer Y to choice HDF arm64 lib. + +config IMX8MM_AUDIO + bool "Enable HDF imx8mm driver" + default n + depends on DRIVERS_HDF_AUDIO + help + Answer Y to choice HDF imx8mm driver. \ No newline at end of file diff --git a/model/audio/Makefile b/model/audio/Makefile index f6eeeb8a39e8170a8a70e03d656200ab752e8db9..1f2de4a736f78f7a5eeea10543f1e2dcefef7ee8 100755 --- a/model/audio/Makefile +++ b/model/audio/Makefile @@ -28,17 +28,7 @@ obj-y += \ $(KHDF_AUDIO_ROOT_DIR)/common/src/audio_platform_base.o \ $(KHDF_AUDIO_ROOT_DIR)/sapm/src/audio_sapm.o \ $(KHDF_AUDIO_ROOT_DIR)/dispatch/src/audio_stream_dispatch.o \ - $(KHDF_AUDIO_ROOT_DIR)/dispatch/src/audio_control_dispatch.o \ - $(KHDF_AUDIO_CODEC_DIR)/tfa9879/accessory/src/tfa9879_accessory_adapter.o \ - $(KHDF_AUDIO_CODEC_DIR)/tfa9879/accessory/src/tfa9879_accessory_impl.o \ - $(KHDF_AUDIO_CODEC_DIR)/hi3516dv300/codec/src/hi3516_codec_adapter.o \ - $(KHDF_AUDIO_CODEC_DIR)/hi3516dv300/codec/src/hi3516_codec_impl.o \ - $(KHDF_AUDIO_CODEC_DIR)/hi3516dv300/codec/src/hi3516_codec_ops.o \ - $(KHDF_AUDIO_CODEC_DIR)/hi3516dv300/dsp/src/dsp_adapter.o \ - $(KHDF_AUDIO_CODEC_DIR)/hi3516dv300/soc/src/hi3516_dai_adapter.o \ - $(KHDF_AUDIO_CODEC_DIR)/hi3516dv300/soc/src/hi3516_aiao_impl.o \ - $(KHDF_AUDIO_CODEC_DIR)/hi3516dv300/soc/src/hi3516_platform_ops.o \ - $(KHDF_AUDIO_CODEC_DIR)/hi3516dv300/soc/src/hi3516_platform_adapter.o + $(KHDF_AUDIO_ROOT_DIR)/dispatch/src/audio_control_dispatch.o obj-$(CONFIG_ARCH_HI3516DV300) += \ $(KHDF_AUDIO_ROOT_DIR)/core/src/audio_core.o \ @@ -60,6 +50,57 @@ obj-$(CONFIG_ARCH_HI3516DV300) += \ $(KHDF_AUDIO_CODEC_DIR)/hi3516dv300/soc/src/hi3516_aiao_impl.o \ $(KHDF_AUDIO_CODEC_DIR)/hi3516dv300/soc/src/hi3516_platform_ops.o \ $(KHDF_AUDIO_CODEC_DIR)/hi3516dv300/soc/src/hi3516_platform_adapter.o + +obj-$(CONFIG_AUDIO_VIM3L) += \ + $(KHDF_AUDIO_CODEC_DIR)/amlogic/soc/src/amlogic_dai_driver.o \ + $(KHDF_AUDIO_CODEC_DIR)/amlogic/soc/src/amlogic_platform_driver.o \ + $(KHDF_AUDIO_CODEC_DIR)/amlogic/soc/src/linux_adapter/audio_controller.o \ + $(KHDF_AUDIO_CODEC_DIR)/amlogic/soc/src/linux_adapter/audio_io.o \ + $(KHDF_AUDIO_CODEC_DIR)/amlogic/soc/src/linux_adapter/audio_clks.o \ + $(KHDF_AUDIO_CODEC_DIR)/amlogic/soc/src/linux_adapter/axg,clocks.o \ + $(KHDF_AUDIO_CODEC_DIR)/amlogic/soc/src/linux_adapter/g12a,clocks.o \ + $(KHDF_AUDIO_CODEC_DIR)/amlogic/soc/src/linux_adapter/tl1,clocks.o \ + $(KHDF_AUDIO_CODEC_DIR)/amlogic/soc/src/linux_adapter/sm1,clocks.o \ + $(KHDF_AUDIO_CODEC_DIR)/amlogic/soc/src/linux_adapter/tm2,clocks.o \ + $(KHDF_AUDIO_CODEC_DIR)/amlogic/soc/src/linux_adapter/card_utils.o \ + $(KHDF_AUDIO_CODEC_DIR)/amlogic/soc/src/linux_adapter/tdm_hw.o \ + $(KHDF_AUDIO_CODEC_DIR)/amlogic/soc/src/linux_adapter/spdif.o \ + $(KHDF_AUDIO_CODEC_DIR)/amlogic/soc/src/linux_adapter/spdif_hw.o \ + $(KHDF_AUDIO_CODEC_DIR)/amlogic/soc/src/linux_adapter/iomap.o \ + $(KHDF_AUDIO_CODEC_DIR)/amlogic/soc/src/linux_adapter/pdm.o \ + $(KHDF_AUDIO_CODEC_DIR)/amlogic/soc/src/linux_adapter/pdm_hw.o \ + $(KHDF_AUDIO_CODEC_DIR)/amlogic/soc/src/linux_adapter/ddr_mngr.o \ + $(KHDF_AUDIO_CODEC_DIR)/amlogic/soc/src/linux_adapter/loopback.o \ + $(KHDF_AUDIO_CODEC_DIR)/amlogic/soc/src/linux_adapter/loopback_hw.o \ + $(KHDF_AUDIO_CODEC_DIR)/amlogic/soc/src/linux_adapter/audio_utils.o \ + $(KHDF_AUDIO_CODEC_DIR)/amlogic/soc/src/linux_adapter/locker.o \ + $(KHDF_AUDIO_CODEC_DIR)/amlogic/soc/src/linux_adapter/locker_hw.o \ + $(KHDF_AUDIO_CODEC_DIR)/amlogic/soc/src/linux_adapter/resample.o \ + $(KHDF_AUDIO_CODEC_DIR)/amlogic/soc/src/linux_adapter/resample_hw.o \ + $(KHDF_AUDIO_CODEC_DIR)/amlogic/soc/src/linux_adapter/effects.o \ + $(KHDF_AUDIO_CODEC_DIR)/amlogic/soc/src/linux_adapter/effects_hw.o \ + $(KHDF_AUDIO_CODEC_DIR)/amlogic/soc/src/linux_adapter/effects_v2.o \ + $(KHDF_AUDIO_CODEC_DIR)/amlogic/soc/src/linux_adapter/effects_hw_v2.o \ + $(KHDF_AUDIO_CODEC_DIR)/amlogic/soc/src/linux_adapter/pwrdet.o \ + $(KHDF_AUDIO_CODEC_DIR)/amlogic/soc/src/linux_adapter/pwrdet_hw.o \ + $(KHDF_AUDIO_CODEC_DIR)/amlogic/soc/src/linux_adapter/sharebuffer.o \ + $(KHDF_AUDIO_CODEC_DIR)/amlogic/soc/src/linux_adapter/extn.o \ + $(KHDF_AUDIO_CODEC_DIR)/amlogic/soc/src/linux_adapter/frhdmirx_hw.o \ + $(KHDF_AUDIO_CODEC_DIR)/amlogic/soc/src/linux_adapter/vad.o \ + $(KHDF_AUDIO_CODEC_DIR)/amlogic/soc/src/linux_adapter/vad_hw.o \ + $(KHDF_AUDIO_CODEC_DIR)/amlogic/soc/src/linux_adapter/vad_dev.o \ + $(KHDF_AUDIO_CODEC_DIR)/amlogic/soc/src/linux_adapter/earc.o \ + $(KHDF_AUDIO_CODEC_DIR)/amlogic/soc/src/linux_adapter/earc_hw.o \ + $(KHDF_AUDIO_CODEC_DIR)/dummy_codec/dummy_codec_adapter.o + +obj-$(CONFIG_IMX8MM_AUDIO) += \ + $(KHDF_AUDIO_CODEC_DIR)/imx8mm/soc/src/sai_driver.o \ + $(KHDF_AUDIO_CODEC_DIR)/imx8mm/soc/src/dma_driver.o \ + $(KHDF_AUDIO_CODEC_DIR)/imx8mm/soc/src/imx8mm_platform_ops.o \ + $(KHDF_AUDIO_CODEC_DIR)/imx8mm/soc/src/imx8mm_dai_adapter.o \ + $(KHDF_AUDIO_CODEC_DIR)/imx8mm/soc/src/imx8mm_platform_adapter.o \ + $(KHDF_AUDIO_CODEC_DIR)/wm8904/codec/src/wm8904.o \ + $(KHDF_AUDIO_CODEC_DIR)/wm8904/codec/src/wm8904_impl.o ccflags-y += -lm -lc -lgcc -std=gnu99 -Werror \ -Iinclude/$(KHDF_AUDIO_BASE_ROOT_DIR)/drivers/framework/include/platform \ @@ -88,4 +129,11 @@ ccflags-y += -lm -lc -lgcc -std=gnu99 -Werror \ -Iinclude/$(KHDF_AUDIO_CODEC_DIR)/hi3516dv300/soc/include \ -Iinclude/$(KHDF_AUDIO_CODEC_DIR)/hi3516dv300/include \ -Iinclude/$(KHDF_AUDIO_PERIPHERAL_ROOT_DIR)/audio/interfaces/include \ - -Iinclude/$(KHDF_AUDIO_CODEC_DIR)/include + -Iinclude/$(KHDF_AUDIO_CODEC_DIR)/include \ + -Iinclude/$(KHDF_AUDIO_CODEC_DIR)/imx8mm/soc/include \ + -Iinclude/$(KHDF_AUDIO_CODEC_DIR)/imx8mm/include \ + -Iinclude/$(KHDF_AUDIO_CODEC_DIR)/wm8904/codec/include \ + -Iinclude/$(KHDF_AUDIO_CODEC_DIR)/amlogic/include \ + -Iinclude/$(KHDF_AUDIO_CODEC_DIR)/amlogic/soc/include \ + -Iinclude/$(KHDF_AUDIO_CODEC_DIR)/amlogic/soc/src/linux_adapter \ + -Iinclude/$(KHDF_AUDIO_PERIPHERAL_ROOT_DIR)/audio/chipsets/amlogic/include diff --git a/model/input/Kconfig b/model/input/Kconfig index 7257f0b098c5f437c35661e0776cec9a996f3caa..c4a0a2f0597b57eecfd9864d017cb9f058c595cf 100755 --- a/model/input/Kconfig +++ b/model/input/Kconfig @@ -18,3 +18,15 @@ config DRIVERS_HDF_TP_2P35_FT6236 depends on DRIVERS_HDF_INPUT help Answer Y to enable HDF TP 2P35 FT6236 driver. + +config ARCH_NXP_TOUCH + bool "config nxp ft5x06 touch" + default n + help + Answer Y to enable config ft5x06 touch. + +config ARCH_VIM3L_TOUCH + bool "config vim3l ft5336 touch" + default n + help + Answer Y to enable config ft5336 touch. \ No newline at end of file diff --git a/model/input/Makefile b/model/input/Makefile index 024bc5e2d1b856f72a17ec8583d95f4cf1871422..583353245b7bf262d6b84437abd86822e8f3f7e5 100644 --- a/model/input/Makefile +++ b/model/input/Makefile @@ -25,6 +25,13 @@ obj-$(CONFIG_DRIVERS_HDF_INPUT) += \ obj-$(CONFIG_DRIVERS_HDF_TP_5P5_GT911) += \ $(INPUT_ROOT_DIR)/touchscreen/touch_gt911.o + +obj-$(CONFIG_ARCH_NXP_TOUCH) += \ + $(INPUT_ROOT_DIR)/touchscreen/touch_ft5x06.o + +obj-$(CONFIG_ARCH_VIM3L_TOUCH) += \ + $(INPUT_ROOT_DIR)/touchscreen/touch_ft5336.o + obj-$(CONFIG_DRIVERS_HDF_TP_2P35_FT6236) += \ $(INPUT_ROOT_DIR)/touchscreen/touch_ft6336.o diff --git a/model/network/wifi/Kconfig b/model/network/wifi/Kconfig index c68d514aeb0a63e4efd9c025d4b3019e203c4cc9..812491998a5525af08e586e1409ab489d25ef79a 100755 --- a/model/network/wifi/Kconfig +++ b/model/network/wifi/Kconfig @@ -10,4 +10,32 @@ config DRIVERS_HI3881 default n depends on DRIVERS_HDF_WIFI help - Answer Y to enable hi3881 wifi chip driver. \ No newline at end of file + Answer Y to enable hi3881 wifi chip driver. + +config DRIVERS_HDF_IMX8MM_ETHERNET + bool "Enable ethernet" + default n + depends on DRIVERS_AP6212 + help + Answer Y to enable NXP ethernet chip driver. + +config DRIVERS_AP6212 + bool "Enable AP6212" + default n + depends on DRIVERS_HDF_WIFI + help + Answer Y to enable AP6212 wifi chip driver. + +config DRIVERS_AP6357 + bool "Enable AP6357" + default n + depends on DRIVERS_HDF_WIFI + help + Answer Y to enable AP6357 wifi chip driver. + +config DRIVERS_HDF_VIM3L_ETHERNET + bool "Enable HDF vim3l ethernet driver" + default n + depends on DRIVERS_HDF_PLATFORM + help + Answer Y to enable HDF vim3l ethernet driver. diff --git a/model/network/wifi/Makefile b/model/network/wifi/Makefile index c0d8f82a7ca76f0229ab098649f78494867d7522..76d13e90ec4c8d55bcc4d2327701c7e484e4f257 100755 --- a/model/network/wifi/Makefile +++ b/model/network/wifi/Makefile @@ -62,5 +62,11 @@ ccflags-$(CONFIG_DRIVERS_HDF_WIFI) += \ $(HDF_WIFI_ADAPTER_INC) \ $(SECURE_LIB_INC) +HDF_WIFI_FLAGS +=-D_PRE_OS_VERSION_LINUX=1 +HDF_WIFI_FLAGS +=-D_PRE_OS_VERSION_LITEOS=2 +HDF_WIFI_FLAGS +=-D_PRE_OS_VERSION=_PRE_OS_VERSION_LINUX + +ccflags-$(CONFIG_DRIVERS_HDF_WIFI) += $(HDF_WIFI_FLAGS) + obj-$(CONFIG_DRIVERS_HDF_WIFI) += vendor/ diff --git a/model/network/wifi/hdfwifi.mk b/model/network/wifi/hdfwifi.mk index 63703c3544c08877984f3c786776c29b3e73476c..5edc0d42f122d3aa8ffa5dc634f2f84021b72e15 100644 --- a/model/network/wifi/hdfwifi.mk +++ b/model/network/wifi/hdfwifi.mk @@ -14,7 +14,16 @@ HDF_WIFI_FRAMEWORKS_ROOT = $(HDF_DIR_PREFIX)/framework/model/network/wifi HDF_WIFI_KHDF_FRAMEWORKS_ROOT = $(HDF_DIR_PREFIX)/adapter/khdf/linux/model/network/wifi +ifdef CONFIG_DRIVERS_AP6212 +HDF_WIFI_VENDOR_ROOT = $(HDF_VENDOR_PREFIX)/device/nxp/drivers/wifi +else +ifdef CONFIG_DRIVERS_AP6357 +HDF_WIFI_VENDOR_ROOT = $(HDF_VENDOR_PREFIX)device/amlogic/drivers/wifi +else HDF_WIFI_VENDOR_ROOT = $(HDF_VENDOR_PREFIX)/device/hisilicon/drivers/wifi/driver +endif +endif + HDF_FRAMEWORKS_INC := \ -Idrivers/hdf/framework/ability/sbuf/include \ -Idrivers/hdf/framework/core/common/include/host \ diff --git a/model/network/wifi/vendor/Makefile b/model/network/wifi/vendor/Makefile index ea4a0d17fe3a3b6cf79a20540d4ccd76b383aa1c..b5e546d65da381e1246d7c1f71b7af9590bd0472 100755 --- a/model/network/wifi/vendor/Makefile +++ b/model/network/wifi/vendor/Makefile @@ -34,4 +34,6 @@ HDF_WIFI_FLAGS +=-D_PRE_OS_VERSION=_PRE_OS_VERSION_LINUX ccflags-$(CONFIG_DRIVERS_HDF_WIFI) += $(HDF_WIFI_FLAGS) -obj-$(CONFIG_DRIVERS_HI3881) += hi3881/ \ No newline at end of file +obj-$(CONFIG_DRIVERS_HI3881) += hi3881/ +obj-$(CONFIG_DRIVERS_AP6212) += ap6212/ +obj-$(CONFIG_DRIVERS_AP6357) += ap6357/ \ No newline at end of file diff --git a/model/network/wifi/vendor/ap6212/Makefile b/model/network/wifi/vendor/ap6212/Makefile new file mode 100644 index 0000000000000000000000000000000000000000..ffa4710bd03a9357c8fffee8a73404dba1f9c97c --- /dev/null +++ b/model/network/wifi/vendor/ap6212/Makefile @@ -0,0 +1,13 @@ +MODULE_NAME := ap6212 + +HDF_VENDOR_PREFIX := ../../../../../../../../../ + +include drivers/hdf/khdf/model/network/wifi/hdfwifi.mk + +INC_TOP_PATH := $(PROJECT_ROOT) +VENDOR_WIFI_PATH := device/nxp/drivers/wifi +WIFI_DRIVER_DIR := ap6212 + +obj-$(CONFIG_DRIVERS_HDF_IMX8MM_ETHERNET) += $(HDF_VENDOR_PREFIX)/device/nxp/drivers/ethernet/adapter/ +ccflags-$(CONFIG_DRIVERS_HDF_IMX8MM_ETHERNET) += -Idrivers/net/ethernet/freescale/ +obj-$(CONFIG_DRIVERS_HDF_WIFI) += $(HDF_VENDOR_PREFIX)/device/nxp/drivers/wifi/ap6212/ \ No newline at end of file diff --git a/model/network/wifi/vendor/ap6357/Makefile b/model/network/wifi/vendor/ap6357/Makefile new file mode 100644 index 0000000000000000000000000000000000000000..92bb0d501b0f18e21a7afc6c14b15670640f6680 --- /dev/null +++ b/model/network/wifi/vendor/ap6357/Makefile @@ -0,0 +1,27 @@ +# +# Copyright (c) 2020-2021 Huawei Device Co., Ltd. +# +# This software is licensed under the terms of the GNU General Public +# License version 2, as published by the Free Software Foundation, and +# may be copied, distributed, and modified under those terms. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# + +MODULE_NAME := ap6212 + +HDF_VENDOR_PREFIX := ../../../../../../../../../ + +include drivers/hdf/khdf/model/network/wifi/hdfwifi.mk + +INC_TOP_PATH := $(PROJECT_ROOT) +VENDOR_WIFI_PATH := device/amlogic/drivers/wifi +WIFI_DRIVER_DIR := ap6212 + +obj-$(CONFIG_DRIVERS_HDF_VIM3L_ETHERNET) += $(HDF_VENDOR_PREFIX)/device/amlogic/drivers/ethernet/adapter/ +ccflags-$(CONFIG_DRIVERS_HDF_VIM3L_ETHERNET) += -Idrivers/net/ethernet/stmicro/stmmac/ +obj-$(CONFIG_DRIVERS_HDF_WIFI) += $(HDF_VENDOR_PREFIX)/device/amlogic/drivers/wifi/ap6212/ \ No newline at end of file diff --git a/model/usb/device/Kconfig b/model/usb/device/Kconfig index 54d4cc7962744db897c85acd2382a7872169167f..9012e6348507db4fbcc6aab9ef1e14693a2e0d79 100644 --- a/model/usb/device/Kconfig +++ b/model/usb/device/Kconfig @@ -1,6 +1,20 @@ config DRIVERS_HDF_USB_F_GENERIC bool "Enable F_GENERIC driver" - default y + default n + depends on DRIVERS_HDF + help + Answer Y to choice HDF USB F_GENERIC driver. + +config DRIVERS_HDF_USB_F_IMX8MM + bool "Enable F_GENERIC driver" + default n + depends on DRIVERS_HDF + help + Answer Y to choice HDF USB F_GENERIC driver. + +config DRIVERS_HDF_USB_F_VIM3L + bool "Enable F_GENERIC driver" + default n depends on DRIVERS_HDF help Answer Y to choice HDF USB F_GENERIC driver. diff --git a/model/usb/device/f_generic.c b/model/usb/device/f_generic.c index 6878c95797b997e83e6a7d3ebd36f86efc22652b..41bb2c28b1f1474ad384ac245e912c4cc52a3bb4 100644 --- a/model/usb/device/f_generic.c +++ b/model/usb/device/f_generic.c @@ -28,6 +28,9 @@ #include "u_f.h" #include "u_os_desc.h" #include "configfs.h" +#if defined(CONFIG_DRIVERS_HDF_USB_F_IMX8MM) || defined(CONFIG_DRIVERS_HDF_USB_F_VIM3L) +#include "linux/swait.h" +#endif #define FUNCTIONFS_MAGIC 0xa647361 /* Chosen by a honest dice roll ;) */ diff --git a/osal/src/osal_thread.c b/osal/src/osal_thread.c index b2fb28df50b10789da14535e07ccf6a375069a1d..216a278f8d55f3ec4e5dee14846a0f4705df101b 100644 --- a/osal/src/osal_thread.c +++ b/osal/src/osal_thread.c @@ -24,7 +24,11 @@ #include #include #include +#ifdef CONFIG_VIM3L_OSAL_THREAD +#include +#else #include +#endif #include "hdf_log.h" #include "osal_mem.h" #include "securec.h" diff --git a/platform/Kconfig b/platform/Kconfig index 658fbf587e0325255e2758dfbafe478bdc6381be..6b5b367677e385289275567f24add750bca2e43d 100644 --- a/platform/Kconfig +++ b/platform/Kconfig @@ -85,3 +85,94 @@ config DRIVERS_HDF_PLATFORM_RTC depends on DRIVERS_HDF_PLATFORM help Answer Y to enable HDF platform rtc driver. + +config DRIVERS_HDF_PLATFORM_IMX8MM_MIPI_DSI + bool "Enable HDF platform imx8mm mipi dsi driver" + default n + depends on DRIVERS_HDF_PLATFORM_MIPI_DSI + help + Answer Y to enable HDF platform imx8mm mipi dsi driver. + +config IMX8MM_WDT + bool "Enable HDF platform imx8mm watchdog driver" + default n + depends on DRIVERS_HDF_PLATFORM + help + Answer Y to enable HDF platform watchdog driver. + +config IMX8MM_SDIO + bool "Enable HDF platform imx8mm sdio driver" + default n + depends on DRIVERS_HDF_PLATFORM + help + Answer Y to enable HDF platform imx8mm sdio driver. + +config IMX8MM_RTC + bool "Enable HDF platform imx8mm rtc driver" + default n + depends on DRIVERS_HDF_PLATFORM + help + Answer Y to enable HDF platform imx8mm rtc driver. + +config IMX8MM_EMMC + bool "Enable HDF platform imx8mm emmc driver" + default n + depends on DRIVERS_HDF_PLATFORM_MIPI_DSI + help + Answer Y to enable HDF platform imx8mm emmc driver. + +config SPI_VIM3L + bool "Enable HDF platform vim3l spi driver" + default n + depends on DRIVERS_HDF_PLATFORM + help + Answer Y to enable HDF platform vim3l spi driver. + +config PWM_VIM3L + bool "Enable HDF platform vim3l pwm driver" + default n + depends on DRIVERS_HDF_PLATFORM + help + Answer Y to enable HDF platform vim3l pwm driver. + +config EMMC_VIM3L + bool "Enable HDF platform vim3l emmc driver" + default n + depends on DRIVERS_HDF_PLATFORM + help + Answer Y to enable HDF platform vim3l emmc driver. + +config UART_VIM3L + bool "Enable HDF platform vim3l uart driver" + default n + depends on DRIVERS_HDF_PLATFORM + help + Answer Y to enable HDF platform vim3l uart driver. + +config MIPI_VIM3L + bool "Enable HDF platform vim3l mipi driver" + default n + depends on DRIVERS_HDF_PLATFORM + help + Answer Y to enable HDF platform vim3l mipi driver. + +config SDIO_VIM3L + bool "Enable HDF platform vim3l sdio driver" + default n + depends on DRIVERS_HDF_PLATFORM + help + Answer Y to enable HDF platform vim3l sdio driver. + +config AUDIO_VIM3L + bool "Enable HDF platform vim3l audio driver" + default n + depends on DRIVERS_HDF_PLATFORM + help + Answer Y to enable HDF platform vim3l audio driver. + +config WDT_VIM3L + bool "Enable HDF platform vim3l watchdog driver" + default n + depends on DRIVERS_HDF_PLATFORM + help + Answer Y to enable HDF platform vim3l watchdog driver. \ No newline at end of file diff --git a/platform/emmc/emmc_adapter.c b/platform/emmc/emmc_adapter.c index 449cab0213e5c94dfdd5b087e50b496fca337a4c..ce87e828b839fc1e789177221608544ea5c4bcff 100644 --- a/platform/emmc/emmc_adapter.c +++ b/platform/emmc/emmc_adapter.c @@ -1,7 +1,7 @@ /* * emmc_adapter.c * - * hi35xx linux emmc driver implement. + * linux emmc driver implement. * * Copyright (c) 2020-2021 Huawei Device Co., Ltd. * @@ -27,45 +27,51 @@ #define HDF_LOG_TAG emmc_adapter_c +#if defined(CONFIG_IMX8MM_EMMC) +struct mmc_host *sdhci_esdhc_get_mmc_host(int slot); +#elif defined(CONFIG_EMMC_VIM3L) +struct mmc_host *meson_get_mmc_host(int slot); +#else struct mmc_host *himci_get_mmc_host(int slot); +#endif -int32_t Hi35xxLinuxEmmcGetCid(struct EmmcDevice *dev, uint8_t *cid, uint32_t size) +int32_t LinuxEmmcGetCid(struct EmmcDevice *dev, uint8_t *cid, uint32_t size) { struct mmc_host *mmcHost = NULL; struct MmcCntlr *cntlr = NULL; if (dev == NULL || dev->mmc.cntlr == NULL) { - HDF_LOGE("Hi35xxLinuxEmmcGetCid: dev or cntlr is null."); + HDF_LOGE("LinuxEmmcGetCid: dev or cntlr is null."); return HDF_ERR_INVALID_OBJECT; } if (cid == NULL || size < EMMC_CID_LEN) { - HDF_LOGE("Hi35xxLinuxEmmcGetCid: cid is null or size is invalid."); + HDF_LOGE("LinuxEmmcGetCid: cid is null or size is invalid."); return HDF_ERR_INVALID_PARAM; } cntlr = dev->mmc.cntlr; mmcHost = (struct mmc_host *)cntlr->priv; if (mmcHost == NULL) { - HDF_LOGE("Hi35xxLinuxEmmcGetCid: mmcHost is NULL!"); + HDF_LOGE("LinuxEmmcGetCid: mmcHost is NULL!"); return HDF_ERR_NOT_SUPPORT; } if (mmcHost->card == NULL) { - HDF_LOGE("Hi35xxLinuxEmmcGetCid: card is null."); + HDF_LOGE("LinuxEmmcGetCid: card is null."); return HDF_ERR_NOT_SUPPORT; } if (memcpy_s(cid, sizeof(uint8_t) * size, (uint8_t *)(mmcHost->card->raw_cid), sizeof(mmcHost->card->raw_cid)) != EOK) { - HDF_LOGE("Hi35xxLinuxEmmcGetCid: memcpy_s fail!"); + HDF_LOGE("LinuxEmmcGetCid: memcpy_s fail!"); return HDF_FAILURE; } return HDF_SUCCESS; } static struct EmmcDeviceOps g_emmcMethod = { - .getCid = Hi35xxLinuxEmmcGetCid, + .getCid = LinuxEmmcGetCid, }; -static void Hi35xxLinuxEmmcDeleteCntlr(struct MmcCntlr *cntlr) +static void LinuxEmmcDeleteCntlr(struct MmcCntlr *cntlr) { if (cntlr == NULL) { return; @@ -79,110 +85,116 @@ static void Hi35xxLinuxEmmcDeleteCntlr(struct MmcCntlr *cntlr) OsalMemFree(cntlr); } -static int32_t Hi35xxLinuxEmmcCntlrParse(struct MmcCntlr *cntlr, struct HdfDeviceObject *obj) +static int32_t LinuxEmmcCntlrParse(struct MmcCntlr *cntlr, struct HdfDeviceObject *obj) { const struct DeviceResourceNode *node = NULL; struct DeviceResourceIface *drsOps = NULL; int32_t ret; if (obj == NULL || cntlr == NULL) { - HDF_LOGE("Hi35xxLinuxEmmcCntlrParse: input para is NULL."); + HDF_LOGE("LinuxEmmcCntlrParse: input para is NULL."); return HDF_FAILURE; } node = obj->property; if (node == NULL) { - HDF_LOGE("Hi35xxLinuxEmmcCntlrParse: drs node is NULL."); + HDF_LOGE("LinuxEmmcCntlrParse: drs node is NULL."); return HDF_FAILURE; } drsOps = DeviceResourceGetIfaceInstance(HDF_CONFIG_SOURCE); if (drsOps == NULL || drsOps->GetUint16 == NULL || drsOps->GetUint32 == NULL) { - HDF_LOGE("Hi35xxLinuxEmmcCntlrParse: invalid drs ops fail!"); + HDF_LOGE("LinuxEmmcCntlrParse: invalid drs ops fail!"); return HDF_FAILURE; } ret = drsOps->GetUint16(node, "hostId", &(cntlr->index), 0); if (ret != HDF_SUCCESS) { - HDF_LOGE("Hi35xxLinuxEmmcCntlrParse: read hostIndex fail!"); + HDF_LOGE("LinuxEmmcCntlrParse: read hostIndex fail!"); return ret; } ret = drsOps->GetUint32(node, "devType", &(cntlr->devType), 0); if (ret != HDF_SUCCESS) { - HDF_LOGE("Hi35xxLinuxEmmcCntlrParse: read devType fail!"); + HDF_LOGE("LinuxEmmcCntlrParse: read devType fail!"); return ret; } return HDF_SUCCESS; } -static int32_t Hi35xxLinuxEmmcBind(struct HdfDeviceObject *obj) +static int32_t LinuxEmmcBind(struct HdfDeviceObject *obj) { struct MmcCntlr *cntlr = NULL; int32_t ret; - HDF_LOGE("Hi35xxLinuxEmmcBind: entry!"); + HDF_LOGE("LinuxEmmcBind: entry!"); if (obj == NULL) { - HDF_LOGE("Hi35xxLinuxEmmcBind: Fail, obj is NULL."); + HDF_LOGE("LinuxEmmcBind: Fail, obj is NULL."); return HDF_ERR_INVALID_OBJECT; } cntlr = (struct MmcCntlr *)OsalMemCalloc(sizeof(struct MmcCntlr)); if (cntlr == NULL) { - HDF_LOGE("Hi35xxLinuxEmmcBind: no mem for MmcCntlr."); + HDF_LOGE("LinuxEmmcBind: no mem for MmcCntlr."); return HDF_ERR_MALLOC_FAIL; } cntlr->ops = NULL; cntlr->hdfDevObj = obj; obj->service = &cntlr->service; - ret = Hi35xxLinuxEmmcCntlrParse(cntlr, obj); + ret = LinuxEmmcCntlrParse(cntlr, obj); if (ret != HDF_SUCCESS) { - HDF_LOGE("Hi35xxLinuxEmmcBind: cntlr parse fail."); + HDF_LOGE("LinuxEmmcBind: cntlr parse fail."); goto _ERR; } - cntlr->priv = (void *)himci_get_mmc_host((int32_t)cntlr->index); +#if defined(CONFIG_IMX8MM_EMMC) + cntlr->priv = (void *)sdhci_esdhc_get_mmc_host((int32_t)cntlr->index); +#elif defined(CONFIG_EMMC_VIM3L) + cntlr->priv = (void *)meson_get_mmc_host((int32_t)cntlr->index); +#else + cntlr->priv = (void *)himci_get_mmc_host((int32_t)cntlr->index); +#endif // CONFIG_IMX8MM_EMMC ret = MmcCntlrAdd(cntlr); if (ret != HDF_SUCCESS) { - HDF_LOGE("Hi35xxLinuxEmmcBind: cntlr add fail."); + HDF_LOGE("LinuxEmmcBind: cntlr add fail."); goto _ERR; } ret = MmcCntlrAllocDev(cntlr, (enum MmcDevType)cntlr->devType); if (ret != HDF_SUCCESS) { - HDF_LOGE("Hi35xxLinuxEmmcBind: alloc dev fail."); + HDF_LOGE("LinuxEmmcBind: alloc dev fail."); goto _ERR; } MmcDeviceAddOps(cntlr->curDev, &g_emmcMethod); - HDF_LOGD("Hi35xxLinuxEmmcBind: Success!"); + HDF_LOGD("LinuxEmmcBind: Success!"); return HDF_SUCCESS; _ERR: - Hi35xxLinuxEmmcDeleteCntlr(cntlr); - HDF_LOGE("Hi35xxLinuxEmmcBind: Fail!"); + LinuxEmmcDeleteCntlr(cntlr); + HDF_LOGE("LinuxEmmcBind: Fail!"); return HDF_FAILURE; } -static int32_t Hi35xxLinuxEmmcInit(struct HdfDeviceObject *obj) +static int32_t LinuxEmmcInit(struct HdfDeviceObject *obj) { (void)obj; - HDF_LOGD("Hi35xxLinuxEmmcInit: Success!"); + HDF_LOGD("LinuxEmmcInit: Success!"); return HDF_SUCCESS; } -static void Hi35xxLinuxEmmcRelease(struct HdfDeviceObject *obj) +static void LinuxEmmcRelease(struct HdfDeviceObject *obj) { if (obj == NULL) { return; } - Hi35xxLinuxEmmcDeleteCntlr((struct MmcCntlr *)obj->service); + LinuxEmmcDeleteCntlr((struct MmcCntlr *)obj->service); } struct HdfDriverEntry g_emmcDriverEntry = { .moduleVersion = 1, - .Bind = Hi35xxLinuxEmmcBind, - .Init = Hi35xxLinuxEmmcInit, - .Release = Hi35xxLinuxEmmcRelease, + .Bind = LinuxEmmcBind, + .Init = LinuxEmmcInit, + .Release = LinuxEmmcRelease, .moduleName = "HDF_PLATFORM_EMMC", }; HDF_INIT(g_emmcDriverEntry); diff --git a/platform/mipi_dsi/Makefile b/platform/mipi_dsi/Makefile index 82728cce50b4d91a65cb0f597f55936964bc73ff..0e0e609e783294778774b1d0ee43c4ad23cce9d7 100644 --- a/platform/mipi_dsi/Makefile +++ b/platform/mipi_dsi/Makefile @@ -17,8 +17,13 @@ include drivers/hdf/khdf/platform/platform.mk obj-y += $(HDF_PLATFORM_FRAMEWORKS_ROOT)/src/mipi_dsi_core.o \ $(HDF_PLATFORM_FRAMEWORKS_ROOT)/src/mipi_dsi_if.o \ mipi_dsi_adapter.o - -obj-y += mipi_tx_dev.o \ - mipi_tx_hi35xx.o +ifeq ($(CONFIG_DRIVERS_HDF_PLATFORM_IMX8MM_MIPI_DSI), y) +obj-y += mipi_drm_imx8mm.o +else ifeq ($(CONFIG_MIPI_VIM3L), y) +obj-y += mipi_tx_vim3l.o +else +obj-y += mipi_tx_dev.o +obj-y += mipi_tx_hi35xx.o +endif EXTRA_CFLAGS += -Wno-error=date-time diff --git a/platform/mipi_dsi/mipi_drm_imx8mm.c b/platform/mipi_dsi/mipi_drm_imx8mm.c new file mode 100644 index 0000000000000000000000000000000000000000..231039aa798cc9c9e980990b4e6d1bfa87731a68 --- /dev/null +++ b/platform/mipi_dsi/mipi_drm_imx8mm.c @@ -0,0 +1,209 @@ +/* + * mipi_drm_adapter.c + * + * Mipi drm adapter driver. + * + * Copyright (c) 2021 Huawei Device Co., Ltd. + * + * This software is licensed under the terms of the GNU General Public + * License version 2, as published by the Free Software Foundation, and + * may be copied, distributed, and modified under those terms. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + */ + +#include +#include "hdf_base.h" +#include +#include