You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
46 lines
989 B
46 lines
989 B
/* |
|
* 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
|
|
|