mirror of
git://git.kernel.org/pub/scm/linux/kernel/git/xiang/erofs.git
synced 2026-11-01 14:53:11 +01:00
The UP boards implement some features (pin controller, LEDs) through an on-board FPGA. This MFD driver implements the line protocol to communicate with the FPGA through regmap, and registers pin controller and led cells. This commit adds support for UP and UP Squared boards. Based on the work done by Gary Wang <[email protected]>. Signed-off-by: Thomas Richard <[email protected]> Link: https://lore.kernel.org/r/20241211-aaeon-up-board-pinctrl-support-v1-1-24719be27631@bootlin.com Signed-off-by: Lee Jones <[email protected]>
56 lines
1.3 KiB
C
56 lines
1.3 KiB
C
/* SPDX-License-Identifier: GPL-2.0-only */
|
|
/*
|
|
* UP Board CPLD/FPGA driver
|
|
*
|
|
* Copyright (c) AAEON. All rights reserved.
|
|
* Copyright (C) 2024 Bootlin
|
|
*
|
|
* Author: Gary Wang <[email protected]>
|
|
* Author: Thomas Richard <[email protected]>
|
|
*
|
|
*/
|
|
|
|
#ifndef __LINUX_MFD_UPBOARD_FPGA_H
|
|
#define __LINUX_MFD_UPBOARD_FPGA_H
|
|
|
|
#define UPBOARD_REGISTER_SIZE 16
|
|
|
|
enum upboard_fpgareg {
|
|
UPBOARD_REG_PLATFORM_ID = 0x10,
|
|
UPBOARD_REG_FIRMWARE_ID = 0x11,
|
|
UPBOARD_REG_FUNC_EN0 = 0x20,
|
|
UPBOARD_REG_FUNC_EN1 = 0x21,
|
|
UPBOARD_REG_GPIO_EN0 = 0x30,
|
|
UPBOARD_REG_GPIO_EN1 = 0x31,
|
|
UPBOARD_REG_GPIO_EN2 = 0x32,
|
|
UPBOARD_REG_GPIO_DIR0 = 0x40,
|
|
UPBOARD_REG_GPIO_DIR1 = 0x41,
|
|
UPBOARD_REG_GPIO_DIR2 = 0x42,
|
|
UPBOARD_REG_MAX,
|
|
};
|
|
|
|
enum upboard_fpga_type {
|
|
UPBOARD_UP_FPGA,
|
|
UPBOARD_UP2_FPGA,
|
|
};
|
|
|
|
struct upboard_fpga_data {
|
|
enum upboard_fpga_type type;
|
|
const struct regmap_config *regmap_config;
|
|
};
|
|
|
|
struct upboard_fpga {
|
|
struct device *dev;
|
|
struct regmap *regmap;
|
|
struct gpio_desc *enable_gpio;
|
|
struct gpio_desc *reset_gpio;
|
|
struct gpio_desc *clear_gpio;
|
|
struct gpio_desc *strobe_gpio;
|
|
struct gpio_desc *datain_gpio;
|
|
struct gpio_desc *dataout_gpio;
|
|
unsigned int firmware_version;
|
|
const struct upboard_fpga_data *fpga_data;
|
|
};
|
|
|
|
#endif /* __LINUX_MFD_UPBOARD_FPGA_H */
|