brintos

brintos / linux-shallow public Read only

0
0
Text · 1.0 KiB · 7558c15 Raw
63 lines · c
1/* SPDX-License-Identifier: GPL-2.02 *3 * mcp251xfd - Microchip MCP251xFD Family CAN controller driver4 *5 * Copyright (c) 2021, 2022 Pengutronix,6 *               Marc Kleine-Budde <kernel@pengutronix.de>7 */8 9#ifndef _MCP251XFD_RAM_H10#define _MCP251XFD_RAM_H11 12#include <linux/ethtool.h>13 14#define CAN_RAM_NUM_MAX (-1)15 16enum can_ram_mode {17	CAN_RAM_MODE_CAN,18	CAN_RAM_MODE_CANFD,19	__CAN_RAM_MODE_MAX20};21 22struct can_ram_obj_config {23	u8 size[__CAN_RAM_MODE_MAX];24 25	u8 def[__CAN_RAM_MODE_MAX];26	u8 min;27	u8 max;28 29	u8 fifo_num;30	u8 fifo_depth_min;31	u8 fifo_depth_coalesce_min;32};33 34struct can_ram_config {35	const struct can_ram_obj_config rx;36	const struct can_ram_obj_config tx;37 38	u16 size;39	u8 fifo_depth;40};41 42struct can_ram_layout {43	u8 default_rx;44	u8 default_tx;45 46	u8 max_rx;47	u8 max_tx;48 49	u8 cur_rx;50	u8 cur_tx;51 52	u8 rx_coalesce;53	u8 tx_coalesce;54};55 56void can_ram_get_layout(struct can_ram_layout *layout,57			const struct can_ram_config *config,58			const struct ethtool_ringparam *ring,59			const struct ethtool_coalesce *ec,60			const bool fd_mode);61 62#endif63