diff options
Diffstat (limited to 'include/ioexpander.h')
-rw-r--r-- | include/ioexpander.h | 160 |
1 files changed, 0 insertions, 160 deletions
diff --git a/include/ioexpander.h b/include/ioexpander.h deleted file mode 100644 index 206b0a390c..0000000000 --- a/include/ioexpander.h +++ /dev/null @@ -1,160 +0,0 @@ -/* - * Copyright 2019 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. - */ - -#ifndef __CROS_EC_IOEXPANDER_H -#define __CROS_EC_IOEXPANDER_H - -/* IO expander signal definition structure */ -struct ioex_info { - /* Signal name */ - const char *name; - - /* IO expander port number */ - uint16_t ioex; - - /* IO port number in IO expander */ - uint16_t port; - - /* Bitmask on that port (1 << N) */ - uint32_t mask; - - /* Flags - the same as the GPIO flags */ - uint32_t flags; -}; - -/* Signal information from board.c. Must match order from enum ioex_signal. */ -extern const struct ioex_info ioex_list[]; -extern void (* const ioex_irq_handlers[])(enum ioex_signal signal); -extern const int ioex_ih_count; - -struct ioexpander_drv { - /* Initialize IO expander chip/driver */ - int (*init)(int ioex); - /* Get the current level of the IOEX pin */ - int (*get_level)(int ioex, int port, int mask, int *val); - /* Set the level of the IOEX pin */ - int (*set_level)(int ioex, int port, int mask, int val); - /* Get flags for the IOEX pin */ - int (*get_flags_by_mask)(int ioex, int port, int mask, int *flags); - /* Set flags for the IOEX pin */ - int (*set_flags_by_mask)(int ioex, int port, int mask, int flags); - /* Enable/disable interrupt for the IOEX pin */ - int (*enable_interrupt)(int ioex, int port, int mask, int enable); -}; - -struct ioexpander_config_t { - /* Physical I2C port connects to the IO expander chip. */ - int i2c_host_port; - /* I2C slave address */ - int i2c_slave_addr; - /* - * Pointer to the specific IO expander chip's ops defined in - * the struct ioexpander_drv. - */ - const struct ioexpander_drv *drv; -}; - -extern struct ioexpander_config_t ioex_config[]; - -/* - * Enable the interrupt for the IOEX signal - * - * @param signal IOEX signal to enable the interrupt - * @return EC_SUCCESS if successful, non-zero if error. - */ -int ioex_enable_interrupt(enum ioex_signal signal); - -/* - * Disable the interrupt for the IOEX signal - * - * @param signal IOEX signal to disable the interrupt - * @return EC_SUCCESS if successful, non-zero if error. - */ -int ioex_disable_interrupt(enum ioex_signal signal); - -/* - * Get flags for the IOEX pin by mask - * - * @param ioex IO expander chip's port number - * @param port IO port in the IO expander chip - * @param mask Bitmask of the pin on the port above - * @param flags Pointer to the keep the flags read - * @return EC_SUCCESS if successful, non-zero if error. - */ -int ioex_get_flags_by_mask(int ioex, int port, int mask, int *flags); - -/* - * Set flags for the IOEX pin by mask - * - * @param ioex IO expander chip's port number - * @param port IO port in the IO expander chip - * @param mask Bitmask of the pin on the port above - * @param flags flags to set - * @return EC_SUCCESS if successful, non-zero if error. - */ -int ioex_set_flags_by_mask(int ioex, int port, int mask, int flags); - -/* - * Get flags for the IOEX signal - * - * @param signal IOEX signal to get flags for - * @param flags Pointer to the keep the flags read - * @return EC_SUCCESS if successful, non-zero if error. - */ -int ioex_get_flags(enum ioex_signal signal, int *flags); - -/* - * Set flags for the IOEX signal - * - * @param signal IOEX signal to set flags for - * @param flags New flags for the IOEX signal - * @return EC_SUCCESS if successful, non-zero if error. - */ -int ioex_set_flags(enum ioex_signal signal, int flags); - -/* - * Get the current level of the IOEX signal - * - * @param signal IOEX signal to get the level - * @param val Pointer to the keep the level read - * @return EC_SUCCESS if successful, non-zero if error. - */ -int ioex_get_level(enum ioex_signal signal, int *val); - -/* - * Set the level of the IOEX signal - * - * @param signal IOEX signal to set the level - * @param value New level for the IOEX signal - * @return EC_SUCCESS if successful, non-zero if error. - */ -int ioex_set_level(enum ioex_signal signal, int value); - -/* - * Initialize IO expander chip/driver - * - * @param ioex IO expander chip's port number - * @return EC_SUCCESS if successful, non-zero if error. - */ -int ioex_init(int ioex); - -/* - * Get the name for the IOEX signal - * - * @param signal IOEX signal to get the name - * @returns name of the given IOEX signal - */ -const char *ioex_get_name(enum ioex_signal signal); - -/* - * Check if signal is an IO expander signal or GPIO signal. - * - * @param signal GPIO or IOEX signal - * @return 1 if signal is IOEX else return 0 - */ -int signal_is_ioex(int signal); - -#endif /* __CROS_EC_IOEXPANDER_H */ |