162306a36Sopenharmony_ci/* SPDX-License-Identifier: (GPL-2.0+ OR BSD-3-Clause) */
262306a36Sopenharmony_ci/*
362306a36Sopenharmony_ci * Copyright 2013-2016 Freescale Semiconductor Inc.
462306a36Sopenharmony_ci * Copyright 2016 NXP
562306a36Sopenharmony_ci *
662306a36Sopenharmony_ci */
762306a36Sopenharmony_ci#ifndef _FSL_DPIO_CMD_H
862306a36Sopenharmony_ci#define _FSL_DPIO_CMD_H
962306a36Sopenharmony_ci
1062306a36Sopenharmony_ci/* DPIO Version */
1162306a36Sopenharmony_ci#define DPIO_VER_MAJOR			4
1262306a36Sopenharmony_ci#define DPIO_VER_MINOR			2
1362306a36Sopenharmony_ci
1462306a36Sopenharmony_ci/* Command Versioning */
1562306a36Sopenharmony_ci
1662306a36Sopenharmony_ci#define DPIO_CMD_ID_OFFSET		4
1762306a36Sopenharmony_ci#define DPIO_CMD_BASE_VERSION		1
1862306a36Sopenharmony_ci
1962306a36Sopenharmony_ci#define DPIO_CMD(id)	(((id) << DPIO_CMD_ID_OFFSET) | DPIO_CMD_BASE_VERSION)
2062306a36Sopenharmony_ci
2162306a36Sopenharmony_ci/* Command IDs */
2262306a36Sopenharmony_ci#define DPIO_CMDID_CLOSE				DPIO_CMD(0x800)
2362306a36Sopenharmony_ci#define DPIO_CMDID_OPEN					DPIO_CMD(0x803)
2462306a36Sopenharmony_ci#define DPIO_CMDID_GET_API_VERSION			DPIO_CMD(0xa03)
2562306a36Sopenharmony_ci#define DPIO_CMDID_ENABLE				DPIO_CMD(0x002)
2662306a36Sopenharmony_ci#define DPIO_CMDID_DISABLE				DPIO_CMD(0x003)
2762306a36Sopenharmony_ci#define DPIO_CMDID_GET_ATTR				DPIO_CMD(0x004)
2862306a36Sopenharmony_ci#define DPIO_CMDID_RESET				DPIO_CMD(0x005)
2962306a36Sopenharmony_ci#define DPIO_CMDID_SET_STASHING_DEST			DPIO_CMD(0x120)
3062306a36Sopenharmony_ci
3162306a36Sopenharmony_cistruct dpio_cmd_open {
3262306a36Sopenharmony_ci	__le32 dpio_id;
3362306a36Sopenharmony_ci};
3462306a36Sopenharmony_ci
3562306a36Sopenharmony_ci#define DPIO_CHANNEL_MODE_MASK		0x3
3662306a36Sopenharmony_ci
3762306a36Sopenharmony_cistruct dpio_rsp_get_attr {
3862306a36Sopenharmony_ci	/* cmd word 0 */
3962306a36Sopenharmony_ci	__le32 id;
4062306a36Sopenharmony_ci	__le16 qbman_portal_id;
4162306a36Sopenharmony_ci	u8 num_priorities;
4262306a36Sopenharmony_ci	u8 channel_mode;
4362306a36Sopenharmony_ci	/* cmd word 1 */
4462306a36Sopenharmony_ci	__le64 qbman_portal_ce_addr;
4562306a36Sopenharmony_ci	/* cmd word 2 */
4662306a36Sopenharmony_ci	__le64 qbman_portal_ci_addr;
4762306a36Sopenharmony_ci	/* cmd word 3 */
4862306a36Sopenharmony_ci	__le32 qbman_version;
4962306a36Sopenharmony_ci	__le32 pad1;
5062306a36Sopenharmony_ci	/* cmd word 4 */
5162306a36Sopenharmony_ci	__le32 clk;
5262306a36Sopenharmony_ci};
5362306a36Sopenharmony_ci
5462306a36Sopenharmony_cistruct dpio_stashing_dest {
5562306a36Sopenharmony_ci	u8 sdest;
5662306a36Sopenharmony_ci};
5762306a36Sopenharmony_ci
5862306a36Sopenharmony_ci#endif /* _FSL_DPIO_CMD_H */
59