zephyr/drivers/gpio/gpio_pcal9535a.h
David B. Kinder ac74d8b652 license: Replace Apache boilerplate with SPDX tag
Replace the existing Apache 2.0 boilerplate header with an SPDX tag
throughout the zephyr code tree. This patch was generated via a
script run over the master branch.

Also updated doc/porting/application.rst that had a dependency on
line numbers in a literal include.

Manually updated subsys/logging/sys_log.c that had a malformed
header in the original file.  Also cleanup several cases that already
had a SPDX tag and we either got a duplicate or missed updating.

Jira: ZEP-1457

Change-Id: I6131a1d4ee0e58f5b938300c2d2fc77d2e69572c
Signed-off-by: David B. Kinder <david.b.kinder@intel.com>
Signed-off-by: Kumar Gala <kumar.gala@linaro.org>
2017-01-19 03:50:58 +00:00

68 lines
1.2 KiB
C

/*
* Copyright (c) 2015 Intel Corporation.
*
* SPDX-License-Identifier: Apache-2.0
*/
/**
* @file Header file for the PCAL9535A driver.
*/
#ifndef _GPIO_PCAL9535A_H_
#define _GPIO_PCAL9535A_H_
#include <kernel.h>
#include <gpio.h>
#include <i2c.h>
#ifdef __cplusplus
extern "C" {
#endif
/** Configuration data */
struct gpio_pcal9535a_config {
/** The master I2C device's name */
const char * const i2c_master_dev_name;
/** The slave address of the chip */
uint16_t i2c_slave_addr;
uint8_t stride[2];
};
/** Store the port 0/1 data for each register pair. */
union gpio_pcal9535a_port_data {
uint16_t all;
uint8_t port[2];
uint8_t byte[2];
};
/** Runtime driver data */
struct gpio_pcal9535a_drv_data {
/** Master I2C device */
struct device *i2c_master;
/**
* Specify polarity inversion of pin. This is used for ouput as
* the polarity inversion registers on chip affects inputs only.
*/
uint32_t out_pol_inv;
struct {
union gpio_pcal9535a_port_data output;
union gpio_pcal9535a_port_data pol_inv;
union gpio_pcal9535a_port_data dir;
union gpio_pcal9535a_port_data pud_en;
union gpio_pcal9535a_port_data pud_sel;
} reg_cache;
uint8_t stride[2];
};
#ifdef __cplusplus
}
#endif
#endif /* _GPIO_PCAL9535A_H_ */