diff options
author | INSUN PYO <insun.pyo@samsung.com> | 2021-01-15 20:34:17 +0900 |
---|---|---|
committer | Hyotaek Shim <hyotaek.shim@samsung.com> | 2021-01-26 01:03:22 +0000 |
commit | 05feea85bbadff04246b0cbd0576d5946f13565c (patch) | |
tree | 1440c8b2c8d6403dc9f7fb13ab77017e870d5d3b | |
parent | c34e63b7db6ee265a10953a1bf9cdd54bbe2c7db (diff) | |
download | device-rpi-05feea85bbadff04246b0cbd0576d5946f13565c.tar.gz device-rpi-05feea85bbadff04246b0cbd0576d5946f13565c.tar.bz2 device-rpi-05feea85bbadff04246b0cbd0576d5946f13565c.zip |
usb_gadget: apply next HAL architecture (hal api + backend)
Change-Id: Ibb580c5b4a59db583dd2986616eb7c79b5070dfa
-rw-r--r-- | CMakeLists.txt | 1 | ||||
-rw-r--r-- | hw/usb_cfs_client/CMakeLists.txt | 19 | ||||
-rw-r--r-- | hw/usb_cfs_client/usb_cfs_client.c | 29 | ||||
-rw-r--r-- | hw/usb_gadget/CMakeLists.txt | 13 | ||||
-rw-r--r-- | hw/usb_gadget/usb_gadget.c | 74 | ||||
-rw-r--r-- | packaging/device-manager-plugin-rpi3.spec | 3 |
6 files changed, 72 insertions, 67 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt index 898d17f..0bfe0bd 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -14,6 +14,5 @@ ADD_SUBDIRECTORY(hw/display) ADD_SUBDIRECTORY(hw/led) ADD_SUBDIRECTORY(hw/touchscreen) ADD_SUBDIRECTORY(hw/thermal) -ADD_SUBDIRECTORY(hw/usb_cfs_client) ADD_SUBDIRECTORY(hw/usb_gadget) ADD_SUBDIRECTORY(hw/haptic) diff --git a/hw/usb_cfs_client/CMakeLists.txt b/hw/usb_cfs_client/CMakeLists.txt deleted file mode 100644 index e3447fb..0000000 --- a/hw/usb_cfs_client/CMakeLists.txt +++ /dev/null @@ -1,19 +0,0 @@ -CMAKE_MINIMUM_REQUIRED(VERSION 2.6) -PROJECT(usb_cfs_client C) - -SET(PREFIX ${CMAKE_INSTALL_PREFIX}) - -INCLUDE(FindPkgConfig) -pkg_check_modules(usb_cfs_client_pkgs REQUIRED hwcommon) - -FOREACH(flag ${usb_cfs_client_pkgs_CFLAGS}) - SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} ${flag}") -ENDFOREACH(flag) - -SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} -fvisibility=hidden") -SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${EXTRA_CFLAGS}") - -ADD_LIBRARY(${PROJECT_NAME} MODULE usb_cfs_client.c) -TARGET_LINK_LIBRARIES(${PROJECT_NAME} ${usb_cfs_client_pkgs_LDFLAGS}) -SET_TARGET_PROPERTIES(${PROJECT_NAME} PROPERTIES PREFIX "") -INSTALL(TARGETS ${PROJECT_NAME} DESTINATION ${LIB_INSTALL_DIR}/hw COMPONENT RuntimeLibraries) diff --git a/hw/usb_cfs_client/usb_cfs_client.c b/hw/usb_cfs_client/usb_cfs_client.c deleted file mode 100644 index 36da551..0000000 --- a/hw/usb_cfs_client/usb_cfs_client.c +++ /dev/null @@ -1,29 +0,0 @@ -/* - * device-node - * - * Copyright (c) 2016 Samsung Electronics Co., Ltd. - * - * Licensed under the Apache License, Version 2.0 (the License); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#include <hw/usb_client.h> - -HARDWARE_MODULE_STRUCTURE = { - .magic = HARDWARE_INFO_TAG, - .hal_version = HARDWARE_INFO_VERSION, - .device_version = USB_CLIENT_HARDWARE_DEVICE_VERSION, - .id = USB_CFS_CLIENT_HARDWARE_DEVICE_ID, - .name = "cfs-gadget", - .open = hw_cfs_gadget_open, - .close = hw_cfs_gadget_close, -}; diff --git a/hw/usb_gadget/CMakeLists.txt b/hw/usb_gadget/CMakeLists.txt index 039baa4..efebc32 100644 --- a/hw/usb_gadget/CMakeLists.txt +++ b/hw/usb_gadget/CMakeLists.txt @@ -1,12 +1,14 @@ CMAKE_MINIMUM_REQUIRED(VERSION 2.6) -PROJECT(usb_gadget C) +PROJECT(hal-backend-device-usb-gadget C) SET(PREFIX ${CMAKE_INSTALL_PREFIX}) +INCLUDE_DIRECTORIES(../common) + INCLUDE(FindPkgConfig) -pkg_check_modules(usb_gadget_pkgs REQUIRED hwcommon) +pkg_check_modules(hal-backend-device-usb-gadget_pkgs REQUIRED dlog hal-backend-device-common) -FOREACH(flag ${usb_gadget_pkgs_CFLAGS}) +FOREACH(flag ${hal-backend-device-usb-gadget_pkgs_CFLAGS}) SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} ${flag}") ENDFOREACH(flag) @@ -14,6 +16,5 @@ SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} -fvisibility=hidden") SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${EXTRA_CFLAGS}") ADD_LIBRARY(${PROJECT_NAME} MODULE usb_gadget.c) -TARGET_LINK_LIBRARIES(${PROJECT_NAME} ${usb_gadget_pkgs_LDFLAGS}) -SET_TARGET_PROPERTIES(${PROJECT_NAME} PROPERTIES PREFIX "") -INSTALL(TARGETS ${PROJECT_NAME} DESTINATION ${LIB_INSTALL_DIR}/hw COMPONENT RuntimeLibraries) +TARGET_LINK_LIBRARIES(${PROJECT_NAME} ${hal-backend-device-usb-gadget_pkgs_LDFLAGS}) +INSTALL(TARGETS ${PROJECT_NAME} DESTINATION /hal/lib COMPONENT RuntimeLibraries) diff --git a/hw/usb_gadget/usb_gadget.c b/hw/usb_gadget/usb_gadget.c index 2bf9d96..0253233 100644 --- a/hw/usb_gadget/usb_gadget.c +++ b/hw/usb_gadget/usb_gadget.c @@ -16,14 +16,68 @@ * limitations under the License. */ -#include <hw/usb_gadget.h> - -HARDWARE_MODULE_STRUCTURE = { - .magic = HARDWARE_INFO_TAG, - .hal_version = HARDWARE_INFO_VERSION, - .device_version = USB_GADGET_DEVICE_VERSION, - .id = USB_GADGET_DEVICE_ID, - .name = "simple_translator", - .open = simple_translator_open, - .close = simple_translator_close, +#include <errno.h> +#include <stdlib.h> + +#include <hal/hal-common-interface.h> +#include <hal/device/hal-common-interface.h> +#include <hal/device/hal-usb_gadget-interface.h> + +#include "common.h" + +static int usb_gadget_init(void **data) +{ + hal_backend_usb_gadget_funcs *usb_gadget_funcs; + + if (!data) + return -EINVAL; + + usb_gadget_funcs = calloc(1, sizeof(hal_backend_usb_gadget_funcs)); + if (!usb_gadget_funcs) + return -ENOMEM; + + // usb_gadget_translator + if (simple_translator_open(usb_gadget_funcs)) { + _E("No USB gadget translator"); + goto error_translator_open; + } + + // usb_client + if (hw_cfs_gadget_open(usb_gadget_funcs)) { + _I("No USB client"); + goto error_gadget_open; + } + + *data = (void *)usb_gadget_funcs; + + return 0; + +error_gadget_open: + simple_translator_close(usb_gadget_funcs); + +error_translator_open: + free(usb_gadget_funcs); + + return -ENODEV; +} + +static int usb_gadget_exit(void *data) +{ + hal_backend_usb_gadget_funcs *usb_gadget_funcs = (hal_backend_usb_gadget_funcs *)data; + + if (usb_gadget_funcs) { + hw_cfs_gadget_close(usb_gadget_funcs); + simple_translator_close(usb_gadget_funcs); + free(usb_gadget_funcs); + } + + return 0; +} + +hal_backend EXPORT hal_backend_device_usb_gadget_data = { + .name = "usb_gadget", + .vendor = "RPI", + .abi_version = HAL_ABI_VERSION_TIZEN_6_5, + .init = usb_gadget_init, + .exit = usb_gadget_exit, }; diff --git a/packaging/device-manager-plugin-rpi3.spec b/packaging/device-manager-plugin-rpi3.spec index e1b75e2..6a04af0 100644 --- a/packaging/device-manager-plugin-rpi3.spec +++ b/packaging/device-manager-plugin-rpi3.spec @@ -10,13 +10,13 @@ Requires(post): /sbin/ldconfig Requires(postun): /sbin/ldconfig BuildRequires: cmake BuildRequires: pkgconfig(dlog) -BuildRequires: pkgconfig(hwcommon) BuildRequires: pkgconfig(glib-2.0) BuildRequires: pkgconfig(libudev) BuildRequires: pkgconfig(capi-system-peripheral-io) BuildRequires: pkgconfig(hal-api-common) BuildRequires: pkgconfig(hal-api-device) BuildRequires: pkgconfig(libsyscommon) +BuildRequires: pkgconfig(hal-backend-device-common) %description Device manager plugin Raspberry Pi 3 @@ -41,6 +41,5 @@ make %{?jobs:-j%jobs} %files /hal/lib/*.so* -%{_libdir}/hw/*.so %manifest %{name}.manifest %license LICENSE |