^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1) /* SPDX-License-Identifier: (GPL-2.0+ OR BSD-3-Clause) */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2) /*
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3) * Copyright 2013-2016 Freescale Semiconductor Inc.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4) * Copyright 2016 NXP
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5) *
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6) */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7) #ifndef _FSL_DPIO_CMD_H
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 8) #define _FSL_DPIO_CMD_H
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 9)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 10) /* DPIO Version */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 11) #define DPIO_VER_MAJOR 4
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 12) #define DPIO_VER_MINOR 2
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 13)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 14) /* Command Versioning */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 15)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 16) #define DPIO_CMD_ID_OFFSET 4
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 17) #define DPIO_CMD_BASE_VERSION 1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 18)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 19) #define DPIO_CMD(id) (((id) << DPIO_CMD_ID_OFFSET) | DPIO_CMD_BASE_VERSION)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 20)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 21) /* Command IDs */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 22) #define DPIO_CMDID_CLOSE DPIO_CMD(0x800)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 23) #define DPIO_CMDID_OPEN DPIO_CMD(0x803)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 24) #define DPIO_CMDID_GET_API_VERSION DPIO_CMD(0xa03)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 25) #define DPIO_CMDID_ENABLE DPIO_CMD(0x002)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 26) #define DPIO_CMDID_DISABLE DPIO_CMD(0x003)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 27) #define DPIO_CMDID_GET_ATTR DPIO_CMD(0x004)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 28) #define DPIO_CMDID_RESET DPIO_CMD(0x005)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 29) #define DPIO_CMDID_SET_STASHING_DEST DPIO_CMD(0x120)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 30)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 31) struct dpio_cmd_open {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 32) __le32 dpio_id;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 33) };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 34)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 35) #define DPIO_CHANNEL_MODE_MASK 0x3
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 36)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 37) struct dpio_rsp_get_attr {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 38) /* cmd word 0 */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 39) __le32 id;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 40) __le16 qbman_portal_id;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 41) u8 num_priorities;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 42) u8 channel_mode;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 43) /* cmd word 1 */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 44) __le64 qbman_portal_ce_addr;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 45) /* cmd word 2 */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 46) __le64 qbman_portal_ci_addr;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 47) /* cmd word 3 */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 48) __le32 qbman_version;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 49) };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 50)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 51) struct dpio_stashing_dest {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 52) u8 sdest;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 53) };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 54)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 55) #endif /* _FSL_DPIO_CMD_H */