mirror of
https://github.com/openharmony/drivers_peripheral.git
synced 2026-08-24 07:45:51 -04:00
904e028021
Signed-off-by: guowen666 <guowen31@huawei.com>
204 lines
9.1 KiB
C
204 lines
9.1 KiB
C
/*
|
|
* Copyright (c) 2021-2022 Huawei Device 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.
|
|
*/
|
|
|
|
/**
|
|
* @addtogroup Input
|
|
* @{
|
|
*
|
|
* @brief Provides driver interfaces for the input service.
|
|
*
|
|
* These driver interfaces can be used to open and close input device files, get input events, query device information,
|
|
* register callback functions, and control the feature status.
|
|
*
|
|
*
|
|
* @since 1.0
|
|
* @version 1.0
|
|
*/
|
|
|
|
/**
|
|
* @file input_controller.h
|
|
*
|
|
* @brief Declares the driver interfaces for controlling the business process of input devices.
|
|
*
|
|
* @since 1.0
|
|
* @version 1.0
|
|
*/
|
|
|
|
#ifndef INPUT_CONTROLLER_H
|
|
#define INPUT_CONTROLLER_H
|
|
|
|
#include "input_type.h"
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
|
|
/**
|
|
* @brief Provides interfaces for controlling the business process of input devices.
|
|
*
|
|
* The interfaces can be called to set the power status, enable or disable a feature, get driver chip information,
|
|
* and control the production test.
|
|
*/
|
|
typedef struct {
|
|
/**
|
|
* @brief Sets the power status.
|
|
*
|
|
* This function is called only when the power status of the OS is changed. \n
|
|
* The input service or the power management module can call this function to set the power status
|
|
* for the input device when the OS is in the Resume or Suspend status, so that the driver integrated circuit (IC)
|
|
* of the device can normally enter the specified status.
|
|
*
|
|
* @param devIndex Indicates the index of an input device. A maximum of 32 input devices are supported.
|
|
* The value ranges from 0 to 31, and value <b>0</b> represents the first input device.
|
|
* @param status Indicates the power status to set. The input service will notify the input device of entering the
|
|
* Resume or Suspend state specified by {@link PowerStatus}.
|
|
* @return Returns <b>INPUT SUCCESS</b> if the operation is successful; returns an error code defined in
|
|
* {@link RetStatus} otherwise.
|
|
* @since 1.0
|
|
* @version 1.0
|
|
*/
|
|
int32_t (*SetPowerStatus)(uint32_t devIndex, uint32_t status);
|
|
|
|
/**
|
|
* @brief Gets the power status.
|
|
*
|
|
* The input service or the power management module can get the power status for the input device when the OS
|
|
* is in the Resume or Suspend status, so that the driver IC of the device can normally enter the specified status.
|
|
* You can call this function to obtain the power status.
|
|
*
|
|
* @param devIndex Indicates the index of an input device. A maximum of 32 input devices are supported.
|
|
* The value ranges from 0 to 31, and value <b>0</b> represents the first input device.
|
|
* @param status Indicates the pointer to the power status of the device. For details, see {@link PowerStatus}.
|
|
* @return Returns <b>INPUT SUCCESS</b> if the operation is successful; returns an error code defined in
|
|
* {@link RetStatus} otherwise.
|
|
* @since 1.0
|
|
* @version 1.0
|
|
*/
|
|
int32_t (*GetPowerStatus)(uint32_t devIndex, uint32_t *status);
|
|
|
|
/**
|
|
* @brief Gets the type of the input device based on the specified device index.
|
|
*
|
|
* @param devIndex Indicates the index of an input device. A maximum of 32 input devices are supported.
|
|
* The value ranges from 0 to 31, and value <b>0</b> represents the first input device.
|
|
* @param deviceType Indicates the pointer to the device type. For details, see {@link InputDevType}.
|
|
* @return Returns <b>INPUT SUCCESS</b> if the operation is successful; returns an error code defined
|
|
* in {@link RetStatus} otherwise.
|
|
* @since 1.0
|
|
* @version 1.0
|
|
*/
|
|
int32_t (*GetDeviceType)(uint32_t devIndex, uint32_t *deviceType);
|
|
|
|
/**
|
|
* @brief Gets the chip information of the specified device.
|
|
*
|
|
* A product is usually equipped with modules and driver ICs provided by multiple vendors. An input service
|
|
* can call this function to get the specific information if needed.
|
|
*
|
|
* @param devIndex Indicates the index of an input device. A maximum of 32 input devices are supported.
|
|
* The value ranges from 0 to 31, and value <b>0</b> represents the first input device.
|
|
* @param chipInfo Indicates the pointer to the chip information.
|
|
* @param length Indicates the length of the chip information. The minimum value of length is 10.
|
|
* @return Returns <b>INPUT SUCCESS</b> if the operation is successful; returns an error code defined
|
|
* in {@link RetStatus} otherwise.
|
|
* @since 1.0
|
|
* @version 1.0
|
|
*/
|
|
int32_t (*GetChipInfo)(uint32_t devIndex, char *chipInfo, uint32_t length);
|
|
|
|
/**
|
|
* @brief Gets the module vendor name of the specified device.
|
|
*
|
|
* @param devIndex Indicates the index of an input device. A maximum of 32 input devices are supported.
|
|
* The value ranges from 0 to 31, and value <b>0</b> represents the first input device.
|
|
* @param vendorName Indicates the pointer to the module vendor name.
|
|
* @param length Indicates the length of the module vendor name. The minimum value of length is 10.
|
|
* @return Returns <b>INPUT SUCCESS</b> if the operation is successful; returns an error code defined
|
|
* in {@link RetStatus} otherwise.
|
|
* @since 1.0
|
|
* @version 1.0
|
|
*/
|
|
int32_t (*GetVendorName)(uint32_t devIndex, char *vendorName, uint32_t length);
|
|
|
|
/**
|
|
* @brief Gets the driver chip name of the specified device.
|
|
*
|
|
* @param devIndex Indicates the index of an input device. A maximum of 32 input devices are supported.
|
|
* The value ranges from 0 to 31, and value <b>0</b> represents the first input device.
|
|
* @param chipName Indicates the pointer to the driver chip name.
|
|
* @param length Indicates the length of the driver chip name. The minimum value of length is 10.
|
|
* @return Returns <b>INPUT SUCCESS</b> if the operation is successful; returns an error code defined
|
|
* in {@link RetStatus} otherwise.
|
|
* @since 1.0
|
|
* @version 1.0
|
|
*/
|
|
int32_t (*GetChipName)(uint32_t devIndex, char *chipName, uint32_t length);
|
|
|
|
/**
|
|
* @brief Sets the gesture mode.
|
|
*
|
|
* The input service can use this function to enable or disable the gesture mode by setting <b>EnableBit</b>
|
|
* of the gesture mode.
|
|
*
|
|
* @param devIndex Indicates the index of an input device. A maximum of 32 input devices are supported.
|
|
* The value ranges from 0 to 31, and value <b>0</b> represents the first input device.
|
|
* @param gestureMode Indicates the gesture mode to set.
|
|
* @return Returns <b>INPUT SUCCESS</b> if the operation is successful; returns an error code defined
|
|
* in {@link RetStatus} otherwise.
|
|
* @since 1.0
|
|
* @version 1.0
|
|
*/
|
|
int32_t (*SetGestureMode)(uint32_t devIndex, uint32_t gestureMode);
|
|
|
|
/**
|
|
* @brief Conducts a capacitance self-test.
|
|
*
|
|
* The capacitance self-test items are defined by the component vendor, such as the tests on the raw data,
|
|
* short circuit, open circuit, interference, and row/column difference.
|
|
*
|
|
* @param devIndex Indicates the index of an input device. A maximum of 32 input devices are supported.
|
|
* The value ranges from 0 to 31, and value <b>0</b> represents the first input device.
|
|
* @param testType Indicates the capacitance test type. For details, see {@link CapacitanceTest}.
|
|
* @param result Indicates the pointer to the capacitance test result. The value is <b>SUCC</b> for a successful
|
|
* operation and is an error code for a failed operation.
|
|
* @param length Indicates the length of the test result. The minimum value of length is 20.
|
|
* @return Returns <b>INPUT SUCCESS</b> if the operation is successful; returns an error code defined
|
|
* in {@link RetStatus} otherwise.
|
|
* @since 1.0
|
|
* @version 1.0
|
|
*/
|
|
int32_t (*RunCapacitanceTest)(uint32_t devIndex, uint32_t testType, char *result, uint32_t length);
|
|
|
|
/**
|
|
* @brief Executes the extra command.
|
|
*
|
|
* @param devIndex Indicates the index of an input device. A maximum of 32 input devices are supported.
|
|
* The value ranges from 0 to 31, and value <b>0</b> represents the first input device.
|
|
* @param cmd Indicates the pointer to the extra command data packet, including the command codes and parameters.
|
|
* For details, see {@link InputExtraCmd}.
|
|
* @return Returns <b>INPUT SUCCESS</b> if the operation is successful; returns an error code defined
|
|
* in {@link RetStatus} otherwise.
|
|
* @since 1.0
|
|
* @version 1.0
|
|
*/
|
|
int32_t (*RunExtraCommand)(uint32_t devIndex, InputExtraCmd *cmd);
|
|
} InputController;
|
|
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|
|
#endif
|
|
/** @} */
|