blob: f23e1a14a9bd8afcddb0a553ef79e1cc1e94c432 [file] [log] [blame]
/*
* Copyright (c) 2025 Analog Devices Inc.
*
* SPDX-License-Identifier: Apache-2.0
*/
#ifndef ZEPHYR_DRIVERS_GPIO_GPIO_MAX14917_H_
#define ZEPHYR_DRIVERS_GPIO_GPIO_MAX14917_H_
#define MAX14917_CHANNELS 8
#define MAX14917_MAX_PKT_SIZE 2
#define MAX14917_COMM_ERR BIT(7)
#define MAX14917_VERR BIT(6)
#define MAX14917_THERM_ERR BIT(5)
#define MAX14917_CRC_POLY 0x15
#define MAX14917_CRC_INI_VAL 0x1F
#define MAX14917_CRC_EXTRA_BYTE 0x00
#define MAX14917_CRC_MASK 0x1F
struct max14917_config {
struct spi_dt_spec spi;
/* Input gpios */
struct gpio_dt_spec vddok_gpio;
struct gpio_dt_spec ready_gpio;
struct gpio_dt_spec comerr_gpio;
struct gpio_dt_spec fault_gpio;
/* Output gpios */
struct gpio_dt_spec en_gpio;
struct gpio_dt_spec sync_gpio;
struct gpio_dt_spec crcen_gpio;
bool crc_en;
uint8_t pkt_size;
};
struct max14917_data {
uint8_t gpios_ON; /* GPIO states */
uint8_t gpios_fault;
bool comm_err;
bool verr;
bool therm_err;
};
#endif