brintos

brintos / linux-shallow public Read only

0
0
Text · 2.4 KiB · 7fda44f Raw
95 lines · c
1/* SPDX-License-Identifier: (GPL-2.0+ OR BSD-3-Clause) */2/*3 * Copyright 2013-2016 Freescale Semiconductor Inc.4 * Copyright 2016 NXP5 *6 */7#ifndef __FSL_DPIO_H8#define __FSL_DPIO_H9 10struct fsl_mc_io;11 12int dpio_open(struct fsl_mc_io	*mc_io,13	      u32		cmd_flags,14	      int		dpio_id,15	      u16		*token);16 17int dpio_close(struct fsl_mc_io	*mc_io,18	       u32		cmd_flags,19	       u16		token);20 21/**22 * enum dpio_channel_mode - DPIO notification channel mode23 * @DPIO_NO_CHANNEL: No support for notification channel24 * @DPIO_LOCAL_CHANNEL: Notifications on data availability can be received by a25 *	dedicated channel in the DPIO; user should point the queue's26 *	destination in the relevant interface to this DPIO27 */28enum dpio_channel_mode {29	DPIO_NO_CHANNEL = 0,30	DPIO_LOCAL_CHANNEL = 1,31};32 33/**34 * struct dpio_cfg - Structure representing DPIO configuration35 * @channel_mode: Notification channel mode36 * @num_priorities: Number of priorities for the notification channel (1-8);37 *			relevant only if 'channel_mode = DPIO_LOCAL_CHANNEL'38 */39struct dpio_cfg {40	enum dpio_channel_mode	channel_mode;41	u8		num_priorities;42};43 44int dpio_enable(struct fsl_mc_io	*mc_io,45		u32		cmd_flags,46		u16		token);47 48int dpio_disable(struct fsl_mc_io	*mc_io,49		 u32		cmd_flags,50		 u16		token);51 52/**53 * struct dpio_attr - Structure representing DPIO attributes54 * @id: DPIO object ID55 * @qbman_portal_ce_offset: offset of the software portal cache-enabled area56 * @qbman_portal_ci_offset: offset of the software portal cache-inhibited area57 * @qbman_portal_id: Software portal ID58 * @channel_mode: Notification channel mode59 * @num_priorities: Number of priorities for the notification channel (1-8);60 *			relevant only if 'channel_mode = DPIO_LOCAL_CHANNEL'61 * @qbman_version: QBMAN version62 * @clk: QBMAN clock frequency value in Hz63 */64struct dpio_attr {65	int			id;66	u64		qbman_portal_ce_offset;67	u64		qbman_portal_ci_offset;68	u16		qbman_portal_id;69	enum dpio_channel_mode	channel_mode;70	u8			num_priorities;71	u32		qbman_version;72	u32		clk;73};74 75int dpio_get_attributes(struct fsl_mc_io	*mc_io,76			u32		cmd_flags,77			u16		token,78			struct dpio_attr	*attr);79 80int dpio_set_stashing_destination(struct fsl_mc_io *mc_io,81				  u32 cmd_flags,82				  u16 token,83				  u8 dest);84 85int dpio_get_api_version(struct fsl_mc_io *mc_io,86			 u32 cmd_flags,87			 u16 *major_ver,88			 u16 *minor_ver);89 90int dpio_reset(struct fsl_mc_io	*mc_io,91	       u32 cmd_flags,92	       u16 token);93 94#endif /* __FSL_DPIO_H */95