23 #ifndef _DEV_I2C_GPIO_NXP_PCA9539_H    24 #define _DEV_I2C_GPIO_NXP_PCA9539_H    42 int i2c_dev_register_gpio_nxp_pca9535(
    48 #define GPIO_NXP_PCA9535_GET_INPUT (I2C_DEV_IO_CONTROL + 0)    50 #define GPIO_NXP_PCA9535_GET_OUTPUT (I2C_DEV_IO_CONTROL + 1)    52 #define GPIO_NXP_PCA9535_SET_OUTPUT (I2C_DEV_IO_CONTROL + 2)    54 #define GPIO_NXP_PCA9535_CLEAR_AND_SET_OUTPUT (I2C_DEV_IO_CONTROL + 3)    56 #define GPIO_NXP_PCA9535_GET_POL_INV (I2C_DEV_IO_CONTROL + 4)    58 #define GPIO_NXP_PCA9535_SET_POL_INV (I2C_DEV_IO_CONTROL + 5)    60 #define GPIO_NXP_PCA9535_GET_CONFIG (I2C_DEV_IO_CONTROL + 6)    62 #define GPIO_NXP_PCA9535_SET_CONFIG (I2C_DEV_IO_CONTROL + 7)    64 static inline int gpio_nxp_pca9535_get_input(
int fd, uint16_t *val)
    66   return ioctl(fd, GPIO_NXP_PCA9535_GET_INPUT, val);
    69 static inline int gpio_nxp_pca9535_get_output(
int fd, uint16_t *val)
    71   return ioctl(fd, GPIO_NXP_PCA9535_GET_OUTPUT, val);
    74 static inline int gpio_nxp_pca9535_set_output(
int fd, uint16_t val)
    76   return ioctl(fd, GPIO_NXP_PCA9535_SET_OUTPUT, (
void *)(uintptr_t) val);
    79 static inline int gpio_nxp_pca9535_clear_and_set_output(
    85   uint32_t clear_and_set = ((uint32_t) set << 16) | (uint32_t) clear;
    89     GPIO_NXP_PCA9535_CLEAR_AND_SET_OUTPUT,
    90     (
void *)(uintptr_t) clear_and_set
    94 static inline int gpio_nxp_pca9535_get_polarity_inversion(
    99   return ioctl(fd, GPIO_NXP_PCA9535_GET_POL_INV, val);
   102 static inline int gpio_nxp_pca9535_set_polarity_inversion(
int fd, uint16_t val)
   104   return ioctl(fd, GPIO_NXP_PCA9535_SET_POL_INV, (
void *)(uintptr_t) val);
   107 static inline int gpio_nxp_pca9535_get_config(
int fd, uint16_t *val)
   109   return ioctl(fd, GPIO_NXP_PCA9535_GET_CONFIG, val);
   112 static inline int gpio_nxp_pca9535_set_config(
int fd, uint16_t val)
   114   return ioctl(fd, GPIO_NXP_PCA9535_SET_CONFIG, (
void *)(uintptr_t) val);
 Inter-Integrated Circuit (I2C) Driver API.