/* SPDX-License-Identifier: GPL-2.0+ */ /* * Copyright 2025 Gateworks Corporation */ #ifndef _FSA_H_ #define _FSA_H_ #define FSA_MAX 5 enum fsa_gpio_cfg { FSA_GPIO_NC, FSA_GPIO_UNCONFIGURED, FSA_GPIO_INPUT, FSA_GPIO_OUTPUT_LOW, FSA_GPIO_OUTPUT_HIGH, }; struct fsa_gpio_desc { u8 offset; u8 config; u8 source; char name[13]; }; struct fsa_board_info { char model[16]; /* 0x00: model string */ u8 mac[6]; /* 0x10: MAC base */ u8 macno; /* 0x16: number of mac addrs */ u8 resv1; /* 0x17: reserved */ u32 serial; /* 0x18: Serial Number */ u8 mfgdate[4]; /* 0x1c: MFG date */ u8 sockgpios; /* 0x20: number of socket gpio descriptors */ u8 ioexpgpios; /* 0x21: number of io expander gpio descriptors */ u8 resv2[220]; /* 0x22: reserved */ u8 chksum[2]; /* 0xfe: */ }; struct fsa_user_info { char desc[32]; /* 0x000: user description */ char overlay[16]; /* 0x020: dt-overlay suffice */ struct fsa_gpio_desc gpios[20]; /* 0x030: gpio descriptors */ u8 reserved[398]; /* 0x170: reserved */ u8 chksum[2]; /* 0x2fe: */ }; int fsa_init(void); int fsa_show(void); int fsa_ft_fixup(void *fdt); #endif // _FSA_H_