From a1649d151f681dc4b3d8d65fabc5bedee80b3e0e Mon Sep 17 00:00:00 2001 From: Vijay Hiremath Date: Mon, 5 Jun 2017 16:23:38 -0700 Subject: [PATCH] driver: Add driver header for PCA9555 I/O port controller BUG=b:64394037 BRANCH=glkrvp TEST=Manually tested on GLKRVP, i2cxfer works Change-Id: If65e5039987ecbb7fa2a3a5eeeef5af6d73ab66a Signed-off-by: Vijay Hiremath Reviewed-on: https://chromium-review.googlesource.com/603987 Commit-Ready: Vijay P Hiremath Tested-by: Vijay P Hiremath Reviewed-by: Aaron Durbin Reviewed-by: Aseda Aboagye --- driver/ioexpander_pca9555.h | 41 +++++++++++++++++++++++++++++++++++++ 1 file changed, 41 insertions(+) create mode 100644 driver/ioexpander_pca9555.h diff --git a/driver/ioexpander_pca9555.h b/driver/ioexpander_pca9555.h new file mode 100644 index 0000000000..3a932ceef0 --- /dev/null +++ b/driver/ioexpander_pca9555.h @@ -0,0 +1,41 @@ +/* Copyright 2017 The Chromium OS Authors. All rights reserved. + * Use of this source code is governed by a BSD-style license that can be + * found in the LICENSE file. + * + * NXP PCA9555 I/O Port expander driver header + */ + +#ifndef __CROS_EC_IOEXPANDER_PCA9555_H +#define __CROS_EC_IOEXPANDER_PCA9555_H + +#include "i2c.h" + +#define PCA9555_CMD_INPUT_PORT_0 0 +#define PCA9555_CMD_INPUT_PORT_1 1 +#define PCA9555_CMD_OUTPUT_PORT_0 2 +#define PCA9555_CMD_OUTPUT_PORT_1 3 +#define PCA9555_CMD_POLARITY_INVERSION_PORT_0 4 +#define PCA9555_CMD_POLARITY_INVERSION_PORT_1 5 +#define PCA9555_CMD_CONFIGURATION_PORT_0 6 +#define PCA9555_CMD_CONFIGURATION_PORT_1 7 + +#define PCA9555_IO_0 (1 << 0) +#define PCA9555_IO_1 (1 << 1) +#define PCA9555_IO_2 (1 << 2) +#define PCA9555_IO_3 (1 << 3) +#define PCA9555_IO_4 (1 << 4) +#define PCA9555_IO_5 (1 << 5) +#define PCA9555_IO_6 (1 << 6) +#define PCA9555_IO_7 (1 << 7) + +static inline int pca9555_read(int port, int addr, int reg, int *data_ptr) +{ + return i2c_read8(port, addr, reg, data_ptr); +} + +static inline int pca9555_write(int port, int addr, int reg, int data) +{ + return i2c_write8(port, addr, reg, data); +} + +#endif /* __CROS_EC_IOEXPANDER_PCA9555_H */