XWOS API
4.0
XWOS C/C++ API参考手册
|
玄武设备栈:I2C IO扩展芯片:TCA9539:驱动 更多...
#include <xwos/standard.h>
#include <xwos/lib/xwlog.h>
#include <xwcd/ds/soc/gpio.h>
#include <xwcd/ds/soc/eirq.h>
#include <xwcd/ds/i2c/peripheral.h>
#include <xwcd/peripheral/i2c/iochip/tca9539/device.h>
#include <xwcd/peripheral/i2c/iochip/tca9539/driver.h>
宏定义 | |
#define | LOGTAG "TCA9539" |
函数 | |
static xwer_t | xwds_tca9539_write (struct xwds_tca9539 *tca9539, xwu8_t reg, xwu8_t data, xwtm_t to) |
static xwer_t | xwds_tca9539_read (struct xwds_tca9539 *tca9539, xwu8_t reg, xwu8_t *buf, xwtm_t to) |
xwer_t | xwds_tca9539_drv_start (struct xwds_device *dev) |
TCA9539基本驱动:启动设备 | |
xwer_t | xwds_tca9539_drv_stop (struct xwds_device *dev) |
TCA9539基本驱动:停止设备 | |
xwer_t | xwds_tca9539_drv_suspend (struct xwds_device *dev) |
TCA9539基本驱动:暂停设备 | |
xwer_t | xwds_tca9539_drv_resume (struct xwds_device *dev) |
TCA9539基本驱动:继续设备 | |
xwer_t | xwds_tca9539_drv_gpio_req (struct xwds_iochip *iochip, xwid_t port, xwsq_t pinmask, xwtm_t to) |
TCA9539 GPIO驱动:申请IO扩展芯片的GPIO | |
xwer_t | xwds_tca9539_drv_gpio_rls (struct xwds_iochip *iochip, xwid_t port, xwsq_t pinmask, xwtm_t to) |
TCA9539 GPIO驱动:释放IO扩展芯片的GPIO | |
xwer_t | xwds_tca9539_drv_gpio_cfg (struct xwds_iochip *iochip, xwid_t port, xwsq_t pinmsk, void *cfg, xwtm_t to) |
TCA9539 GPIO驱动:配置IO扩展芯片的GPIO | |
xwer_t | xwds_tca9539_drv_gpio_set (struct xwds_iochip *iochip, xwid_t port, xwsq_t pinmsk, xwtm_t to) |
TCA9539 GPIO驱动:将IO扩展芯片的GPIO设置为高电平 | |
xwer_t | xwds_tca9539_drv_gpio_reset (struct xwds_iochip *iochip, xwid_t port, xwsq_t pinmsk, xwtm_t to) |
TCA9539 GPIO驱动:将IO扩展芯片的GPIO设置为低电平 | |
xwer_t | xwds_tca9539_drv_gpio_toggle (struct xwds_iochip *iochip, xwid_t port, xwsq_t pinmsk, xwtm_t to) |
TCA9539 GPIO驱动:翻转IO扩展芯片的GPIO电平 | |
xwer_t | xwds_tca9539_drv_gpio_output (struct xwds_iochip *iochip, xwid_t port, xwsq_t pinmsk, xwsq_t out, xwtm_t to) |
TCA9539 GPIO驱动:并行输出多个IO扩展芯片的GPIO | |
xwer_t | xwds_tca9539_drv_gpio_input (struct xwds_iochip *iochip, xwid_t port, xwsq_t pinmsk, xwsq_t *in, xwtm_t to) |
TCA9539 GPIO驱动:并行读取多个IO扩展芯片的GPIO | |
void | xwds_tca9539_reset (struct xwds_tca9539 *tca9539, bool active) |
TCA9539 API:复位TCA9539 | |
xwer_t | xwds_tca9539_run (struct xwds_tca9539 *tca9539, xwds_eirq_f eisr, xwtm_t to) |
TCA9539 API:启动TCA9539 | |
void | xwds_tca9539_quit (struct xwds_tca9539 *tca9539) |
TCA9539 API:停止运行TCA9539 | |
void | xwds_tca9539_dump (struct xwds_tca9539 *tca9539, xwtm_t to) |
TCA9539 API:输出TCA9539的寄存器信息 | |
变量 | |
const struct xwds_iochip_driver | xwds_tca9539_drv |
TCA9539的驱动 | |
玄武设备栈:I2C IO扩展芯片:TCA9539:驱动
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.0Unless 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.
在文件 driver.c 中定义.
xwer_t xwds_tca9539_drv_gpio_cfg | ( | struct xwds_iochip * | iochip, |
xwid_t | port, | ||
xwsq_t | pinmsk, | ||
void * | cfg, | ||
xwtm_t | to | ||
) |
TCA9539 GPIO驱动:配置IO扩展芯片的GPIO
[in] | iochip | IOCHIP对象指针 |
[in] | port | GPIO端口 |
[in] | pinmask | 引脚的掩码 |
[in] | cfg | GPIO配置,取值依据不同IOCHIP |
[in] | to | 期望唤醒的时间点 |
XWOK | 没有错误 |
-EFAULT | 无效指针 |
-ERANGE | GPIO PORT错误 |
-ENOSYS | 不支持的API |
to
表示等待超时的时间点:
to
通常是未来的时间,即 当前系统时间 + delta
, 可以使用 xwtm_ft(delta)
表示;to
是过去的时间点,将直接返回 -ETIMEDOUT
。 <No error
xwer_t xwds_tca9539_drv_gpio_input | ( | struct xwds_iochip * | iochip, |
xwid_t | port, | ||
xwsq_t | pinmsk, | ||
xwsq_t * | in, | ||
xwtm_t | to | ||
) |
TCA9539 GPIO驱动:并行读取多个IO扩展芯片的GPIO
[in] | iochip | IOCHIP对象指针 |
[in] | port | GPIO端口 |
[in] | pinmask | 引脚的掩码 |
[out] | inbuf | 输入缓冲区 |
[in] | to | 期望唤醒的时间点 |
XWOK | 没有错误 |
-EFAULT | 无效指针 |
-ERANGE | GPIO PORT错误 |
-EPERM | GPIO PIN未被申请 |
-ENOSYS | 不支持的API |
to
表示等待超时的时间点:
to
通常是未来的时间,即 当前系统时间 + delta
, 可以使用 xwtm_ft(delta)
表示;to
是过去的时间点,将直接返回 -ETIMEDOUT
。 <No error
xwer_t xwds_tca9539_drv_gpio_output | ( | struct xwds_iochip * | iochip, |
xwid_t | port, | ||
xwsq_t | pinmsk, | ||
xwsq_t | out, | ||
xwtm_t | to | ||
) |
TCA9539 GPIO驱动:并行输出多个IO扩展芯片的GPIO
[in] | iochip | IOCHIP对象指针 |
[in] | port | GPIO端口 |
[in] | pinmask | 引脚的掩码 |
[in] | out | 输出值 |
[in] | to | 期望唤醒的时间点 |
XWOK | 没有错误 |
-EFAULT | 无效指针 |
-ERANGE | GPIO PORT错误 |
-EPERM | GPIO PIN未被申请 |
-ENOSYS | 不支持的API |
to
表示等待超时的时间点:
to
通常是未来的时间,即 当前系统时间 + delta
, 可以使用 xwtm_ft(delta)
表示;to
是过去的时间点,将直接返回 -ETIMEDOUT
。 <No error
xwer_t xwds_tca9539_drv_gpio_req | ( | struct xwds_iochip * | iochip, |
xwid_t | port, | ||
xwsq_t | pinmask, | ||
xwtm_t | to | ||
) |
TCA9539 GPIO驱动:申请IO扩展芯片的GPIO
[in] | iochip | IOCHIP对象指针 |
[in] | port | GPIO端口 |
[in] | pinmask | 引脚的掩码 |
[in] | to | 期望唤醒的时间点 |
XWOK | 没有错误 |
-EFAULT | 无效指针 |
-ERANGE | GPIO PORT错误 |
-EBUSY | GPIO PIN已被使用 |
to
表示等待超时的时间点:
to
通常是未来的时间,即 当前系统时间 + delta
, 可以使用 xwtm_ft(delta)
表示;to
是过去的时间点,将直接返回 -ETIMEDOUT
。 < 去除未使用变量的警告
< 去除未使用变量的警告
< 去除未使用变量的警告
< 去除未使用变量的警告
<No error
xwer_t xwds_tca9539_drv_gpio_reset | ( | struct xwds_iochip * | iochip, |
xwid_t | port, | ||
xwsq_t | pinmsk, | ||
xwtm_t | to | ||
) |
TCA9539 GPIO驱动:将IO扩展芯片的GPIO设置为低电平
[in] | iochip | IOCHIP对象指针 |
[in] | port | GPIO端口 |
[in] | pinmask | 引脚的掩码 |
[in] | to | 期望唤醒的时间点 |
XWOK | 没有错误 |
-EFAULT | 无效指针 |
-ERANGE | GPIO PORT错误 |
-EPERM | GPIO PIN未被申请 |
-ENOSYS | 不支持的API |
to
表示等待超时的时间点:
to
通常是未来的时间,即 当前系统时间 + delta
, 可以使用 xwtm_ft(delta)
表示;to
是过去的时间点,将直接返回 -ETIMEDOUT
。 <No error
xwer_t xwds_tca9539_drv_gpio_rls | ( | struct xwds_iochip * | iochip, |
xwid_t | port, | ||
xwsq_t | pinmask, | ||
xwtm_t | to | ||
) |
TCA9539 GPIO驱动:释放IO扩展芯片的GPIO
[in] | iochip | IOCHIP对象指针 |
[in] | port | GPIO端口 |
[in] | pinmask | 引脚的掩码 |
[in] | to | 期望唤醒的时间点 |
XWOK | 没有错误 |
-EFAULT | 无效指针 |
-ERANGE | GPIO PORT错误 |
-EPERM | GPIO PIN未被申请 |
to
表示等待超时的时间点:
to
通常是未来的时间,即 当前系统时间 + delta
, 可以使用 xwtm_ft(delta)
表示;to
是过去的时间点,将直接返回 -ETIMEDOUT
。 < 去除未使用变量的警告
< 去除未使用变量的警告
< 去除未使用变量的警告
< 去除未使用变量的警告
<No error
xwer_t xwds_tca9539_drv_gpio_set | ( | struct xwds_iochip * | iochip, |
xwid_t | port, | ||
xwsq_t | pinmsk, | ||
xwtm_t | to | ||
) |
TCA9539 GPIO驱动:将IO扩展芯片的GPIO设置为高电平
[in] | iochip | IOCHIP对象指针 |
[in] | port | GPIO端口 |
[in] | pinmask | 引脚的掩码 |
[in] | to | 期望唤醒的时间点 |
XWOK | 没有错误 |
-EFAULT | 无效指针 |
-ERANGE | GPIO PORT错误 |
-EPERM | GPIO PIN未被申请 |
-ENOSYS | 不支持的API |
to
表示等待超时的时间点:
to
通常是未来的时间,即 当前系统时间 + delta
, 可以使用 xwtm_ft(delta)
表示;to
是过去的时间点,将直接返回 -ETIMEDOUT
。 <No error
xwer_t xwds_tca9539_drv_gpio_toggle | ( | struct xwds_iochip * | iochip, |
xwid_t | port, | ||
xwsq_t | pinmsk, | ||
xwtm_t | to | ||
) |
TCA9539 GPIO驱动:翻转IO扩展芯片的GPIO电平
[in] | iochip | IOCHIP对象指针 |
[in] | port | GPIO端口 |
[in] | pinmask | 引脚的掩码 |
[in] | to | 期望唤醒的时间点 |
XWOK | 没有错误 |
-EFAULT | 无效指针 |
-ERANGE | GPIO PORT错误 |
-EPERM | GPIO PIN未被申请 |
-ENOSYS | 不支持的API |
to
表示等待超时的时间点:
to
通常是未来的时间,即 当前系统时间 + delta
, 可以使用 xwtm_ft(delta)
表示;to
是过去的时间点,将直接返回 -ETIMEDOUT
。 <No error
xwer_t xwds_tca9539_drv_resume | ( | struct xwds_device * | dev | ) |
TCA9539基本驱动:继续设备
xwer_t xwds_tca9539_drv_stop | ( | struct xwds_device * | dev | ) |
TCA9539基本驱动:停止设备
<No error
xwer_t xwds_tca9539_drv_suspend | ( | struct xwds_device * | dev | ) |
TCA9539基本驱动:暂停设备
void xwds_tca9539_dump | ( | struct xwds_tca9539 * | tca9539, |
xwtm_t | to | ||
) |
TCA9539 API:输出TCA9539的寄存器信息
[in] | tca9539 | I2C TCA9539对象的指针 |
[in] | to | 期望唤醒的时间点 |
to
表示等待超时的时间点:
to
通常是未来的时间,即 当前系统时间 + delta
, 可以使用 xwtm_ft(delta)
表示;to
是过去的时间点,将直接返回 -ETIMEDOUT
。 void xwds_tca9539_quit | ( | struct xwds_tca9539 * | tca9539 | ) |
TCA9539 API:停止运行TCA9539
[in] | tca9539 | I2C TCA9539对象的指针 |
[in] | to | 期望唤醒的时间点 |
|
static |
<No error
void xwds_tca9539_reset | ( | struct xwds_tca9539 * | tca9539, |
bool | active | ||
) |
TCA9539 API:复位TCA9539
[in] | tca9539 | TCA9539对象的指针 |
[in] | active | 是否使能复位 |
xwer_t xwds_tca9539_run | ( | struct xwds_tca9539 * | tca9539, |
xwds_eirq_f | eisr, | ||
xwtm_t | to | ||
) |
TCA9539 API:启动TCA9539
[in] | tca9539 | I2C TCA9539对象的指针 |
[in] | eisr | 中断处理函数 |
[in] | to | 期望唤醒的时间点 @retrun 错误码 |
to
表示等待超时的时间点:
to
通常是未来的时间,即 当前系统时间 + delta
, 可以使用 xwtm_ft(delta)
表示;to
是过去的时间点,将直接返回 -ETIMEDOUT
。 <No error
|
static |
const struct xwds_iochip_driver xwds_tca9539_drv |
TCA9539的驱动