mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2025-01-16 10:17:32 +00:00
6f1067cfbe
Add core MFD driver for the Board Controller found on some Congatec SMARC module. This Board Controller provides functions like watchdog, GPIO, and I2C busses. This commit adds support only for the conga-SA7 module. Signed-off-by: Thomas Richard <thomas.richard@bootlin.com> Link: https://lore.kernel.org/r/20241001-congatec-board-controller-v3-1-39ceceed5c47@bootlin.com Signed-off-by: Lee Jones <lee@kernel.org>
45 lines
1.2 KiB
C
45 lines
1.2 KiB
C
/* SPDX-License-Identifier: GPL-2.0-or-later */
|
|
/*
|
|
* Congatec Board Controller driver definitions
|
|
*
|
|
* Copyright (C) 2024 Bootlin
|
|
* Author: Thomas Richard <thomas.richard@bootlin.com>
|
|
*/
|
|
|
|
#ifndef _LINUX_MFD_CGBC_H_
|
|
|
|
/**
|
|
* struct cgbc_version - Board Controller device version structure
|
|
* @feature: Board Controller feature number
|
|
* @major: Board Controller major revision
|
|
* @minor: Board Controller minor revision
|
|
*/
|
|
struct cgbc_version {
|
|
unsigned char feature;
|
|
unsigned char major;
|
|
unsigned char minor;
|
|
};
|
|
|
|
/**
|
|
* struct cgbc_device_data - Internal representation of the Board Controller device
|
|
* @io_session: Pointer to the session IO memory
|
|
* @io_cmd: Pointer to the command IO memory
|
|
* @session: Session id returned by the Board Controller
|
|
* @dev: Pointer to kernel device structure
|
|
* @cgbc_version: Board Controller version structure
|
|
* @mutex: Board Controller mutex
|
|
*/
|
|
struct cgbc_device_data {
|
|
void __iomem *io_session;
|
|
void __iomem *io_cmd;
|
|
u8 session;
|
|
struct device *dev;
|
|
struct cgbc_version version;
|
|
struct mutex lock;
|
|
};
|
|
|
|
int cgbc_command(struct cgbc_device_data *cgbc, void *cmd, unsigned int cmd_size,
|
|
void *data, unsigned int data_size, u8 *status);
|
|
|
|
#endif /*_LINUX_MFD_CGBC_H_*/
|