From c36b0b975240215d43527bf3f44a65afbf06ca88 Mon Sep 17 00:00:00 2001 From: Bhalchandra Gajare Date: Thu, 8 Mar 2018 17:57:38 -0800 Subject: [PATCH] uapi: wcd-spi-ac: add interface for client driver The wcd-spi-ac (access control) driver exposes character device to userspace to indicate information regarding WCD SPI usage. Add uapi header file with the commands and data expected by the character driver. Change-Id: I41dfc3181041c7e7a1bad8695fa723d3a965036b Signed-off-by: Bhalchandra Gajare --- include/uapi/linux/Kbuild | 1 + include/uapi/linux/wcd-spi-ac-params.h | 52 ++++++++++++++++++++++++++ 2 files changed, 53 insertions(+) create mode 100644 include/uapi/linux/wcd-spi-ac-params.h diff --git a/include/uapi/linux/Kbuild b/include/uapi/linux/Kbuild index f6af2bf8cca3..9b93abebc4b7 100644 --- a/include/uapi/linux/Kbuild +++ b/include/uapi/linux/Kbuild @@ -18,3 +18,4 @@ header-y += msm_audio_ape.h header-y += msm_audio_g711.h header-y += msm_audio_g711_dec.h header-y += mfd/ +header-y += wcd-spi-ac-params.h diff --git a/include/uapi/linux/wcd-spi-ac-params.h b/include/uapi/linux/wcd-spi-ac-params.h new file mode 100644 index 000000000000..e397bf215ab8 --- /dev/null +++ b/include/uapi/linux/wcd-spi-ac-params.h @@ -0,0 +1,52 @@ +#ifndef __UAPI_WCD_SPI_AC_PARAMS_H__ +#define __UAPI_WCD_SPI_AC_PARAMS_H__ + +#include + +#define WCD_SPI_AC_CMD_CONC_BEGIN 0x01 +#define WCD_SPI_AC_CMD_CONC_END 0x02 +#define WCD_SPI_AC_CMD_BUF_DATA 0x03 + +#define WCD_SPI_AC_MAX_BUFFERS 2 +#define WCD_SPI_AC_MAX_CH_PER_BUF 8 + +#define WCD_SPI_AC_CLIENT_CDEV_NAME "wcd-spi-ac-client" +#define WCD_SPI_AC_PROCFS_DIR_NAME "wcd-spi-ac" +#define WCD_SPI_AC_PROCFS_STATE_NAME "svc-state" + +/* + * wcd_spi_ac_buf_data: + * Buffer address for one buffer. Should have data + * for all the channels. If channels are unused, the + * value must be NULL. + * + * @addr: + * Address where each channel of the buffer starts. + */ +struct wcd_spi_ac_buf_data { + __u32 addr[WCD_SPI_AC_MAX_CH_PER_BUF]; +} __packed; + +/* + * wcd_spi_ac_write_cmd: + * Data sent to the driver's write interface should + * be packed in this format. + * + * @cmd_type: + * Indicates the type of command that is sent. Should + * be one of the valid commands defined with + * WCD_SPI_AC_CMD_* + * @payload: + * No payload for: + * WCD_SPI_AC_CMD_CONC_BEGIN + * WCD_SPI_AC_CMD_CONC_END + * Upto WCD_SPI_AC_MAX_BUFFERS of type + * struct wcd_spi_ac_buf_data for: + * WCD_SPI_AC_CMD_BUF_DATA + */ +struct wcd_spi_ac_write_cmd { + __u32 cmd_type; + __u8 payload[0]; +} __packed; + +#endif /* end of __UAPI_WCD_SPI_AC_PARAMS_H__ */