blob: 433c20e2f46ef9e6b5cc5f5db4d10237e8d7f96b [file] [log] [blame]
/* SPDX-License-Identifier: GPL-2.0 */
#ifndef LINUX_SPI_MAX7301_H
#define LINUX_SPI_MAX7301_H
#include <linux/gpio.h>
* Some registers must be read back to modify.
* To save time we cache them here in memory
struct max7301 {
struct mutex lock;
u8 port_config[8]; /* field 0 is unused */
u32 out_level; /* cached output levels */
u32 input_pullup_active;
struct gpio_chip chip;
struct device *dev;
int (*write)(struct device *dev, unsigned int reg, unsigned int val);
int (*read)(struct device *dev, unsigned int reg);
struct max7301_platform_data {
/* number assigned to the first GPIO */
unsigned base;
* bitmask controlling the pullup configuration,
* _note_ the 4 lowest bits are unused, because the first 4
* ports of the controller are not used, too.
u32 input_pullup_active;
extern int __max730x_remove(struct device *dev);
extern int __max730x_probe(struct max7301 *ts);