18c2ecf20Sopenharmony_ci/* SPDX-License-Identifier: (GPL-2.0+ OR BSD-3-Clause) */ 28c2ecf20Sopenharmony_ci/* Copyright 2013-2016 Freescale Semiconductor Inc. 38c2ecf20Sopenharmony_ci * Copyright 2016 NXP 48c2ecf20Sopenharmony_ci * Copyright 2020 NXP 58c2ecf20Sopenharmony_ci */ 68c2ecf20Sopenharmony_ci#ifndef _FSL_DPNI_CMD_H 78c2ecf20Sopenharmony_ci#define _FSL_DPNI_CMD_H 88c2ecf20Sopenharmony_ci 98c2ecf20Sopenharmony_ci#include "dpni.h" 108c2ecf20Sopenharmony_ci 118c2ecf20Sopenharmony_ci/* DPNI Version */ 128c2ecf20Sopenharmony_ci#define DPNI_VER_MAJOR 7 138c2ecf20Sopenharmony_ci#define DPNI_VER_MINOR 0 148c2ecf20Sopenharmony_ci#define DPNI_CMD_BASE_VERSION 1 158c2ecf20Sopenharmony_ci#define DPNI_CMD_2ND_VERSION 2 168c2ecf20Sopenharmony_ci#define DPNI_CMD_ID_OFFSET 4 178c2ecf20Sopenharmony_ci 188c2ecf20Sopenharmony_ci#define DPNI_CMD(id) (((id) << DPNI_CMD_ID_OFFSET) | DPNI_CMD_BASE_VERSION) 198c2ecf20Sopenharmony_ci#define DPNI_CMD_V2(id) (((id) << DPNI_CMD_ID_OFFSET) | DPNI_CMD_2ND_VERSION) 208c2ecf20Sopenharmony_ci 218c2ecf20Sopenharmony_ci#define DPNI_CMDID_OPEN DPNI_CMD(0x801) 228c2ecf20Sopenharmony_ci#define DPNI_CMDID_CLOSE DPNI_CMD(0x800) 238c2ecf20Sopenharmony_ci#define DPNI_CMDID_CREATE DPNI_CMD(0x901) 248c2ecf20Sopenharmony_ci#define DPNI_CMDID_DESTROY DPNI_CMD(0x900) 258c2ecf20Sopenharmony_ci#define DPNI_CMDID_GET_API_VERSION DPNI_CMD(0xa01) 268c2ecf20Sopenharmony_ci 278c2ecf20Sopenharmony_ci#define DPNI_CMDID_ENABLE DPNI_CMD(0x002) 288c2ecf20Sopenharmony_ci#define DPNI_CMDID_DISABLE DPNI_CMD(0x003) 298c2ecf20Sopenharmony_ci#define DPNI_CMDID_GET_ATTR DPNI_CMD(0x004) 308c2ecf20Sopenharmony_ci#define DPNI_CMDID_RESET DPNI_CMD(0x005) 318c2ecf20Sopenharmony_ci#define DPNI_CMDID_IS_ENABLED DPNI_CMD(0x006) 328c2ecf20Sopenharmony_ci 338c2ecf20Sopenharmony_ci#define DPNI_CMDID_SET_IRQ DPNI_CMD(0x010) 348c2ecf20Sopenharmony_ci#define DPNI_CMDID_GET_IRQ DPNI_CMD(0x011) 358c2ecf20Sopenharmony_ci#define DPNI_CMDID_SET_IRQ_ENABLE DPNI_CMD(0x012) 368c2ecf20Sopenharmony_ci#define DPNI_CMDID_GET_IRQ_ENABLE DPNI_CMD(0x013) 378c2ecf20Sopenharmony_ci#define DPNI_CMDID_SET_IRQ_MASK DPNI_CMD(0x014) 388c2ecf20Sopenharmony_ci#define DPNI_CMDID_GET_IRQ_MASK DPNI_CMD(0x015) 398c2ecf20Sopenharmony_ci#define DPNI_CMDID_GET_IRQ_STATUS DPNI_CMD(0x016) 408c2ecf20Sopenharmony_ci#define DPNI_CMDID_CLEAR_IRQ_STATUS DPNI_CMD(0x017) 418c2ecf20Sopenharmony_ci 428c2ecf20Sopenharmony_ci#define DPNI_CMDID_SET_POOLS DPNI_CMD(0x200) 438c2ecf20Sopenharmony_ci#define DPNI_CMDID_SET_ERRORS_BEHAVIOR DPNI_CMD(0x20B) 448c2ecf20Sopenharmony_ci 458c2ecf20Sopenharmony_ci#define DPNI_CMDID_GET_QDID DPNI_CMD(0x210) 468c2ecf20Sopenharmony_ci#define DPNI_CMDID_GET_TX_DATA_OFFSET DPNI_CMD(0x212) 478c2ecf20Sopenharmony_ci#define DPNI_CMDID_GET_LINK_STATE DPNI_CMD(0x215) 488c2ecf20Sopenharmony_ci#define DPNI_CMDID_SET_MAX_FRAME_LENGTH DPNI_CMD(0x216) 498c2ecf20Sopenharmony_ci#define DPNI_CMDID_GET_MAX_FRAME_LENGTH DPNI_CMD(0x217) 508c2ecf20Sopenharmony_ci#define DPNI_CMDID_SET_LINK_CFG DPNI_CMD(0x21A) 518c2ecf20Sopenharmony_ci#define DPNI_CMDID_SET_TX_SHAPING DPNI_CMD_V2(0x21B) 528c2ecf20Sopenharmony_ci 538c2ecf20Sopenharmony_ci#define DPNI_CMDID_SET_MCAST_PROMISC DPNI_CMD(0x220) 548c2ecf20Sopenharmony_ci#define DPNI_CMDID_GET_MCAST_PROMISC DPNI_CMD(0x221) 558c2ecf20Sopenharmony_ci#define DPNI_CMDID_SET_UNICAST_PROMISC DPNI_CMD(0x222) 568c2ecf20Sopenharmony_ci#define DPNI_CMDID_GET_UNICAST_PROMISC DPNI_CMD(0x223) 578c2ecf20Sopenharmony_ci#define DPNI_CMDID_SET_PRIM_MAC DPNI_CMD(0x224) 588c2ecf20Sopenharmony_ci#define DPNI_CMDID_GET_PRIM_MAC DPNI_CMD(0x225) 598c2ecf20Sopenharmony_ci#define DPNI_CMDID_ADD_MAC_ADDR DPNI_CMD(0x226) 608c2ecf20Sopenharmony_ci#define DPNI_CMDID_REMOVE_MAC_ADDR DPNI_CMD(0x227) 618c2ecf20Sopenharmony_ci#define DPNI_CMDID_CLR_MAC_FILTERS DPNI_CMD(0x228) 628c2ecf20Sopenharmony_ci 638c2ecf20Sopenharmony_ci#define DPNI_CMDID_SET_RX_TC_DIST DPNI_CMD(0x235) 648c2ecf20Sopenharmony_ci 658c2ecf20Sopenharmony_ci#define DPNI_CMDID_SET_QOS_TBL DPNI_CMD(0x240) 668c2ecf20Sopenharmony_ci#define DPNI_CMDID_ADD_QOS_ENT DPNI_CMD(0x241) 678c2ecf20Sopenharmony_ci#define DPNI_CMDID_REMOVE_QOS_ENT DPNI_CMD(0x242) 688c2ecf20Sopenharmony_ci#define DPNI_CMDID_CLR_QOS_TBL DPNI_CMD(0x243) 698c2ecf20Sopenharmony_ci#define DPNI_CMDID_ADD_FS_ENT DPNI_CMD(0x244) 708c2ecf20Sopenharmony_ci#define DPNI_CMDID_REMOVE_FS_ENT DPNI_CMD(0x245) 718c2ecf20Sopenharmony_ci#define DPNI_CMDID_CLR_FS_ENT DPNI_CMD(0x246) 728c2ecf20Sopenharmony_ci 738c2ecf20Sopenharmony_ci#define DPNI_CMDID_GET_STATISTICS DPNI_CMD(0x25D) 748c2ecf20Sopenharmony_ci#define DPNI_CMDID_GET_QUEUE DPNI_CMD(0x25F) 758c2ecf20Sopenharmony_ci#define DPNI_CMDID_SET_QUEUE DPNI_CMD(0x260) 768c2ecf20Sopenharmony_ci#define DPNI_CMDID_GET_TAILDROP DPNI_CMD(0x261) 778c2ecf20Sopenharmony_ci#define DPNI_CMDID_SET_TAILDROP DPNI_CMD(0x262) 788c2ecf20Sopenharmony_ci 798c2ecf20Sopenharmony_ci#define DPNI_CMDID_GET_PORT_MAC_ADDR DPNI_CMD(0x263) 808c2ecf20Sopenharmony_ci 818c2ecf20Sopenharmony_ci#define DPNI_CMDID_GET_BUFFER_LAYOUT DPNI_CMD(0x264) 828c2ecf20Sopenharmony_ci#define DPNI_CMDID_SET_BUFFER_LAYOUT DPNI_CMD(0x265) 838c2ecf20Sopenharmony_ci 848c2ecf20Sopenharmony_ci#define DPNI_CMDID_SET_TX_CONFIRMATION_MODE DPNI_CMD(0x266) 858c2ecf20Sopenharmony_ci#define DPNI_CMDID_SET_CONGESTION_NOTIFICATION DPNI_CMD(0x267) 868c2ecf20Sopenharmony_ci#define DPNI_CMDID_GET_CONGESTION_NOTIFICATION DPNI_CMD(0x268) 878c2ecf20Sopenharmony_ci#define DPNI_CMDID_SET_EARLY_DROP DPNI_CMD(0x269) 888c2ecf20Sopenharmony_ci#define DPNI_CMDID_GET_EARLY_DROP DPNI_CMD(0x26A) 898c2ecf20Sopenharmony_ci#define DPNI_CMDID_GET_OFFLOAD DPNI_CMD(0x26B) 908c2ecf20Sopenharmony_ci#define DPNI_CMDID_SET_OFFLOAD DPNI_CMD(0x26C) 918c2ecf20Sopenharmony_ci 928c2ecf20Sopenharmony_ci#define DPNI_CMDID_SET_RX_FS_DIST DPNI_CMD(0x273) 938c2ecf20Sopenharmony_ci#define DPNI_CMDID_SET_RX_HASH_DIST DPNI_CMD(0x274) 948c2ecf20Sopenharmony_ci#define DPNI_CMDID_GET_LINK_CFG DPNI_CMD(0x278) 958c2ecf20Sopenharmony_ci 968c2ecf20Sopenharmony_ci#define DPNI_CMDID_SET_SINGLE_STEP_CFG DPNI_CMD(0x279) 978c2ecf20Sopenharmony_ci#define DPNI_CMDID_GET_SINGLE_STEP_CFG DPNI_CMD(0x27a) 988c2ecf20Sopenharmony_ci 998c2ecf20Sopenharmony_ci/* Macros for accessing command fields smaller than 1byte */ 1008c2ecf20Sopenharmony_ci#define DPNI_MASK(field) \ 1018c2ecf20Sopenharmony_ci GENMASK(DPNI_##field##_SHIFT + DPNI_##field##_SIZE - 1, \ 1028c2ecf20Sopenharmony_ci DPNI_##field##_SHIFT) 1038c2ecf20Sopenharmony_ci 1048c2ecf20Sopenharmony_ci#define dpni_set_field(var, field, val) \ 1058c2ecf20Sopenharmony_ci ((var) |= (((val) << DPNI_##field##_SHIFT) & DPNI_MASK(field))) 1068c2ecf20Sopenharmony_ci#define dpni_get_field(var, field) \ 1078c2ecf20Sopenharmony_ci (((var) & DPNI_MASK(field)) >> DPNI_##field##_SHIFT) 1088c2ecf20Sopenharmony_ci 1098c2ecf20Sopenharmony_cistruct dpni_cmd_open { 1108c2ecf20Sopenharmony_ci __le32 dpni_id; 1118c2ecf20Sopenharmony_ci}; 1128c2ecf20Sopenharmony_ci 1138c2ecf20Sopenharmony_ci#define DPNI_BACKUP_POOL(val, order) (((val) & 0x1) << (order)) 1148c2ecf20Sopenharmony_cistruct dpni_cmd_set_pools { 1158c2ecf20Sopenharmony_ci /* cmd word 0 */ 1168c2ecf20Sopenharmony_ci u8 num_dpbp; 1178c2ecf20Sopenharmony_ci u8 backup_pool_mask; 1188c2ecf20Sopenharmony_ci __le16 pad; 1198c2ecf20Sopenharmony_ci /* cmd word 0..4 */ 1208c2ecf20Sopenharmony_ci __le32 dpbp_id[DPNI_MAX_DPBP]; 1218c2ecf20Sopenharmony_ci /* cmd word 4..6 */ 1228c2ecf20Sopenharmony_ci __le16 buffer_size[DPNI_MAX_DPBP]; 1238c2ecf20Sopenharmony_ci}; 1248c2ecf20Sopenharmony_ci 1258c2ecf20Sopenharmony_ci/* The enable indication is always the least significant bit */ 1268c2ecf20Sopenharmony_ci#define DPNI_ENABLE_SHIFT 0 1278c2ecf20Sopenharmony_ci#define DPNI_ENABLE_SIZE 1 1288c2ecf20Sopenharmony_ci 1298c2ecf20Sopenharmony_cistruct dpni_rsp_is_enabled { 1308c2ecf20Sopenharmony_ci u8 enabled; 1318c2ecf20Sopenharmony_ci}; 1328c2ecf20Sopenharmony_ci 1338c2ecf20Sopenharmony_cistruct dpni_rsp_get_irq { 1348c2ecf20Sopenharmony_ci /* response word 0 */ 1358c2ecf20Sopenharmony_ci __le32 irq_val; 1368c2ecf20Sopenharmony_ci __le32 pad; 1378c2ecf20Sopenharmony_ci /* response word 1 */ 1388c2ecf20Sopenharmony_ci __le64 irq_addr; 1398c2ecf20Sopenharmony_ci /* response word 2 */ 1408c2ecf20Sopenharmony_ci __le32 irq_num; 1418c2ecf20Sopenharmony_ci __le32 type; 1428c2ecf20Sopenharmony_ci}; 1438c2ecf20Sopenharmony_ci 1448c2ecf20Sopenharmony_cistruct dpni_cmd_set_irq_enable { 1458c2ecf20Sopenharmony_ci u8 enable; 1468c2ecf20Sopenharmony_ci u8 pad[3]; 1478c2ecf20Sopenharmony_ci u8 irq_index; 1488c2ecf20Sopenharmony_ci}; 1498c2ecf20Sopenharmony_ci 1508c2ecf20Sopenharmony_cistruct dpni_cmd_get_irq_enable { 1518c2ecf20Sopenharmony_ci __le32 pad; 1528c2ecf20Sopenharmony_ci u8 irq_index; 1538c2ecf20Sopenharmony_ci}; 1548c2ecf20Sopenharmony_ci 1558c2ecf20Sopenharmony_cistruct dpni_rsp_get_irq_enable { 1568c2ecf20Sopenharmony_ci u8 enabled; 1578c2ecf20Sopenharmony_ci}; 1588c2ecf20Sopenharmony_ci 1598c2ecf20Sopenharmony_cistruct dpni_cmd_set_irq_mask { 1608c2ecf20Sopenharmony_ci __le32 mask; 1618c2ecf20Sopenharmony_ci u8 irq_index; 1628c2ecf20Sopenharmony_ci}; 1638c2ecf20Sopenharmony_ci 1648c2ecf20Sopenharmony_cistruct dpni_cmd_get_irq_mask { 1658c2ecf20Sopenharmony_ci __le32 pad; 1668c2ecf20Sopenharmony_ci u8 irq_index; 1678c2ecf20Sopenharmony_ci}; 1688c2ecf20Sopenharmony_ci 1698c2ecf20Sopenharmony_cistruct dpni_rsp_get_irq_mask { 1708c2ecf20Sopenharmony_ci __le32 mask; 1718c2ecf20Sopenharmony_ci}; 1728c2ecf20Sopenharmony_ci 1738c2ecf20Sopenharmony_cistruct dpni_cmd_get_irq_status { 1748c2ecf20Sopenharmony_ci __le32 status; 1758c2ecf20Sopenharmony_ci u8 irq_index; 1768c2ecf20Sopenharmony_ci}; 1778c2ecf20Sopenharmony_ci 1788c2ecf20Sopenharmony_cistruct dpni_rsp_get_irq_status { 1798c2ecf20Sopenharmony_ci __le32 status; 1808c2ecf20Sopenharmony_ci}; 1818c2ecf20Sopenharmony_ci 1828c2ecf20Sopenharmony_cistruct dpni_cmd_clear_irq_status { 1838c2ecf20Sopenharmony_ci __le32 status; 1848c2ecf20Sopenharmony_ci u8 irq_index; 1858c2ecf20Sopenharmony_ci}; 1868c2ecf20Sopenharmony_ci 1878c2ecf20Sopenharmony_cistruct dpni_rsp_get_attr { 1888c2ecf20Sopenharmony_ci /* response word 0 */ 1898c2ecf20Sopenharmony_ci __le32 options; 1908c2ecf20Sopenharmony_ci u8 num_queues; 1918c2ecf20Sopenharmony_ci u8 num_tcs; 1928c2ecf20Sopenharmony_ci u8 mac_filter_entries; 1938c2ecf20Sopenharmony_ci u8 pad0; 1948c2ecf20Sopenharmony_ci /* response word 1 */ 1958c2ecf20Sopenharmony_ci u8 vlan_filter_entries; 1968c2ecf20Sopenharmony_ci u8 pad1; 1978c2ecf20Sopenharmony_ci u8 qos_entries; 1988c2ecf20Sopenharmony_ci u8 pad2; 1998c2ecf20Sopenharmony_ci __le16 fs_entries; 2008c2ecf20Sopenharmony_ci __le16 pad3; 2018c2ecf20Sopenharmony_ci /* response word 2 */ 2028c2ecf20Sopenharmony_ci u8 qos_key_size; 2038c2ecf20Sopenharmony_ci u8 fs_key_size; 2048c2ecf20Sopenharmony_ci __le16 wriop_version; 2058c2ecf20Sopenharmony_ci}; 2068c2ecf20Sopenharmony_ci 2078c2ecf20Sopenharmony_ci#define DPNI_ERROR_ACTION_SHIFT 0 2088c2ecf20Sopenharmony_ci#define DPNI_ERROR_ACTION_SIZE 4 2098c2ecf20Sopenharmony_ci#define DPNI_FRAME_ANN_SHIFT 4 2108c2ecf20Sopenharmony_ci#define DPNI_FRAME_ANN_SIZE 1 2118c2ecf20Sopenharmony_ci 2128c2ecf20Sopenharmony_cistruct dpni_cmd_set_errors_behavior { 2138c2ecf20Sopenharmony_ci __le32 errors; 2148c2ecf20Sopenharmony_ci /* from least significant bit: error_action:4, set_frame_annotation:1 */ 2158c2ecf20Sopenharmony_ci u8 flags; 2168c2ecf20Sopenharmony_ci}; 2178c2ecf20Sopenharmony_ci 2188c2ecf20Sopenharmony_ci/* There are 3 separate commands for configuring Rx, Tx and Tx confirmation 2198c2ecf20Sopenharmony_ci * buffer layouts, but they all share the same parameters. 2208c2ecf20Sopenharmony_ci * If one of the functions changes, below structure needs to be split. 2218c2ecf20Sopenharmony_ci */ 2228c2ecf20Sopenharmony_ci 2238c2ecf20Sopenharmony_ci#define DPNI_PASS_TS_SHIFT 0 2248c2ecf20Sopenharmony_ci#define DPNI_PASS_TS_SIZE 1 2258c2ecf20Sopenharmony_ci#define DPNI_PASS_PR_SHIFT 1 2268c2ecf20Sopenharmony_ci#define DPNI_PASS_PR_SIZE 1 2278c2ecf20Sopenharmony_ci#define DPNI_PASS_FS_SHIFT 2 2288c2ecf20Sopenharmony_ci#define DPNI_PASS_FS_SIZE 1 2298c2ecf20Sopenharmony_ci 2308c2ecf20Sopenharmony_cistruct dpni_cmd_get_buffer_layout { 2318c2ecf20Sopenharmony_ci u8 qtype; 2328c2ecf20Sopenharmony_ci}; 2338c2ecf20Sopenharmony_ci 2348c2ecf20Sopenharmony_cistruct dpni_rsp_get_buffer_layout { 2358c2ecf20Sopenharmony_ci /* response word 0 */ 2368c2ecf20Sopenharmony_ci u8 pad0[6]; 2378c2ecf20Sopenharmony_ci /* from LSB: pass_timestamp:1, parser_result:1, frame_status:1 */ 2388c2ecf20Sopenharmony_ci u8 flags; 2398c2ecf20Sopenharmony_ci u8 pad1; 2408c2ecf20Sopenharmony_ci /* response word 1 */ 2418c2ecf20Sopenharmony_ci __le16 private_data_size; 2428c2ecf20Sopenharmony_ci __le16 data_align; 2438c2ecf20Sopenharmony_ci __le16 head_room; 2448c2ecf20Sopenharmony_ci __le16 tail_room; 2458c2ecf20Sopenharmony_ci}; 2468c2ecf20Sopenharmony_ci 2478c2ecf20Sopenharmony_cistruct dpni_cmd_set_buffer_layout { 2488c2ecf20Sopenharmony_ci /* cmd word 0 */ 2498c2ecf20Sopenharmony_ci u8 qtype; 2508c2ecf20Sopenharmony_ci u8 pad0[3]; 2518c2ecf20Sopenharmony_ci __le16 options; 2528c2ecf20Sopenharmony_ci /* from LSB: pass_timestamp:1, parser_result:1, frame_status:1 */ 2538c2ecf20Sopenharmony_ci u8 flags; 2548c2ecf20Sopenharmony_ci u8 pad1; 2558c2ecf20Sopenharmony_ci /* cmd word 1 */ 2568c2ecf20Sopenharmony_ci __le16 private_data_size; 2578c2ecf20Sopenharmony_ci __le16 data_align; 2588c2ecf20Sopenharmony_ci __le16 head_room; 2598c2ecf20Sopenharmony_ci __le16 tail_room; 2608c2ecf20Sopenharmony_ci}; 2618c2ecf20Sopenharmony_ci 2628c2ecf20Sopenharmony_cistruct dpni_cmd_set_offload { 2638c2ecf20Sopenharmony_ci u8 pad[3]; 2648c2ecf20Sopenharmony_ci u8 dpni_offload; 2658c2ecf20Sopenharmony_ci __le32 config; 2668c2ecf20Sopenharmony_ci}; 2678c2ecf20Sopenharmony_ci 2688c2ecf20Sopenharmony_cistruct dpni_cmd_get_offload { 2698c2ecf20Sopenharmony_ci u8 pad[3]; 2708c2ecf20Sopenharmony_ci u8 dpni_offload; 2718c2ecf20Sopenharmony_ci}; 2728c2ecf20Sopenharmony_ci 2738c2ecf20Sopenharmony_cistruct dpni_rsp_get_offload { 2748c2ecf20Sopenharmony_ci __le32 pad; 2758c2ecf20Sopenharmony_ci __le32 config; 2768c2ecf20Sopenharmony_ci}; 2778c2ecf20Sopenharmony_ci 2788c2ecf20Sopenharmony_cistruct dpni_cmd_get_qdid { 2798c2ecf20Sopenharmony_ci u8 qtype; 2808c2ecf20Sopenharmony_ci}; 2818c2ecf20Sopenharmony_ci 2828c2ecf20Sopenharmony_cistruct dpni_rsp_get_qdid { 2838c2ecf20Sopenharmony_ci __le16 qdid; 2848c2ecf20Sopenharmony_ci}; 2858c2ecf20Sopenharmony_ci 2868c2ecf20Sopenharmony_cistruct dpni_rsp_get_tx_data_offset { 2878c2ecf20Sopenharmony_ci __le16 data_offset; 2888c2ecf20Sopenharmony_ci}; 2898c2ecf20Sopenharmony_ci 2908c2ecf20Sopenharmony_cistruct dpni_cmd_get_statistics { 2918c2ecf20Sopenharmony_ci u8 page_number; 2928c2ecf20Sopenharmony_ci}; 2938c2ecf20Sopenharmony_ci 2948c2ecf20Sopenharmony_cistruct dpni_rsp_get_statistics { 2958c2ecf20Sopenharmony_ci __le64 counter[DPNI_STATISTICS_CNT]; 2968c2ecf20Sopenharmony_ci}; 2978c2ecf20Sopenharmony_ci 2988c2ecf20Sopenharmony_cistruct dpni_cmd_link_cfg { 2998c2ecf20Sopenharmony_ci /* cmd word 0 */ 3008c2ecf20Sopenharmony_ci __le64 pad0; 3018c2ecf20Sopenharmony_ci /* cmd word 1 */ 3028c2ecf20Sopenharmony_ci __le32 rate; 3038c2ecf20Sopenharmony_ci __le32 pad1; 3048c2ecf20Sopenharmony_ci /* cmd word 2 */ 3058c2ecf20Sopenharmony_ci __le64 options; 3068c2ecf20Sopenharmony_ci}; 3078c2ecf20Sopenharmony_ci 3088c2ecf20Sopenharmony_ci#define DPNI_LINK_STATE_SHIFT 0 3098c2ecf20Sopenharmony_ci#define DPNI_LINK_STATE_SIZE 1 3108c2ecf20Sopenharmony_ci 3118c2ecf20Sopenharmony_cistruct dpni_rsp_get_link_state { 3128c2ecf20Sopenharmony_ci /* response word 0 */ 3138c2ecf20Sopenharmony_ci __le32 pad0; 3148c2ecf20Sopenharmony_ci /* from LSB: up:1 */ 3158c2ecf20Sopenharmony_ci u8 flags; 3168c2ecf20Sopenharmony_ci u8 pad1[3]; 3178c2ecf20Sopenharmony_ci /* response word 1 */ 3188c2ecf20Sopenharmony_ci __le32 rate; 3198c2ecf20Sopenharmony_ci __le32 pad2; 3208c2ecf20Sopenharmony_ci /* response word 2 */ 3218c2ecf20Sopenharmony_ci __le64 options; 3228c2ecf20Sopenharmony_ci}; 3238c2ecf20Sopenharmony_ci 3248c2ecf20Sopenharmony_cistruct dpni_cmd_set_max_frame_length { 3258c2ecf20Sopenharmony_ci __le16 max_frame_length; 3268c2ecf20Sopenharmony_ci}; 3278c2ecf20Sopenharmony_ci 3288c2ecf20Sopenharmony_cistruct dpni_rsp_get_max_frame_length { 3298c2ecf20Sopenharmony_ci __le16 max_frame_length; 3308c2ecf20Sopenharmony_ci}; 3318c2ecf20Sopenharmony_ci 3328c2ecf20Sopenharmony_cistruct dpni_cmd_set_multicast_promisc { 3338c2ecf20Sopenharmony_ci u8 enable; 3348c2ecf20Sopenharmony_ci}; 3358c2ecf20Sopenharmony_ci 3368c2ecf20Sopenharmony_cistruct dpni_rsp_get_multicast_promisc { 3378c2ecf20Sopenharmony_ci u8 enabled; 3388c2ecf20Sopenharmony_ci}; 3398c2ecf20Sopenharmony_ci 3408c2ecf20Sopenharmony_cistruct dpni_cmd_set_unicast_promisc { 3418c2ecf20Sopenharmony_ci u8 enable; 3428c2ecf20Sopenharmony_ci}; 3438c2ecf20Sopenharmony_ci 3448c2ecf20Sopenharmony_cistruct dpni_rsp_get_unicast_promisc { 3458c2ecf20Sopenharmony_ci u8 enabled; 3468c2ecf20Sopenharmony_ci}; 3478c2ecf20Sopenharmony_ci 3488c2ecf20Sopenharmony_cistruct dpni_cmd_set_primary_mac_addr { 3498c2ecf20Sopenharmony_ci __le16 pad; 3508c2ecf20Sopenharmony_ci u8 mac_addr[6]; 3518c2ecf20Sopenharmony_ci}; 3528c2ecf20Sopenharmony_ci 3538c2ecf20Sopenharmony_cistruct dpni_rsp_get_primary_mac_addr { 3548c2ecf20Sopenharmony_ci __le16 pad; 3558c2ecf20Sopenharmony_ci u8 mac_addr[6]; 3568c2ecf20Sopenharmony_ci}; 3578c2ecf20Sopenharmony_ci 3588c2ecf20Sopenharmony_cistruct dpni_rsp_get_port_mac_addr { 3598c2ecf20Sopenharmony_ci __le16 pad; 3608c2ecf20Sopenharmony_ci u8 mac_addr[6]; 3618c2ecf20Sopenharmony_ci}; 3628c2ecf20Sopenharmony_ci 3638c2ecf20Sopenharmony_cistruct dpni_cmd_add_mac_addr { 3648c2ecf20Sopenharmony_ci __le16 pad; 3658c2ecf20Sopenharmony_ci u8 mac_addr[6]; 3668c2ecf20Sopenharmony_ci}; 3678c2ecf20Sopenharmony_ci 3688c2ecf20Sopenharmony_cistruct dpni_cmd_remove_mac_addr { 3698c2ecf20Sopenharmony_ci __le16 pad; 3708c2ecf20Sopenharmony_ci u8 mac_addr[6]; 3718c2ecf20Sopenharmony_ci}; 3728c2ecf20Sopenharmony_ci 3738c2ecf20Sopenharmony_ci#define DPNI_UNICAST_FILTERS_SHIFT 0 3748c2ecf20Sopenharmony_ci#define DPNI_UNICAST_FILTERS_SIZE 1 3758c2ecf20Sopenharmony_ci#define DPNI_MULTICAST_FILTERS_SHIFT 1 3768c2ecf20Sopenharmony_ci#define DPNI_MULTICAST_FILTERS_SIZE 1 3778c2ecf20Sopenharmony_ci 3788c2ecf20Sopenharmony_cistruct dpni_cmd_clear_mac_filters { 3798c2ecf20Sopenharmony_ci /* from LSB: unicast:1, multicast:1 */ 3808c2ecf20Sopenharmony_ci u8 flags; 3818c2ecf20Sopenharmony_ci}; 3828c2ecf20Sopenharmony_ci 3838c2ecf20Sopenharmony_ci#define DPNI_DIST_MODE_SHIFT 0 3848c2ecf20Sopenharmony_ci#define DPNI_DIST_MODE_SIZE 4 3858c2ecf20Sopenharmony_ci#define DPNI_MISS_ACTION_SHIFT 4 3868c2ecf20Sopenharmony_ci#define DPNI_MISS_ACTION_SIZE 4 3878c2ecf20Sopenharmony_ci 3888c2ecf20Sopenharmony_cistruct dpni_cmd_set_rx_tc_dist { 3898c2ecf20Sopenharmony_ci /* cmd word 0 */ 3908c2ecf20Sopenharmony_ci __le16 dist_size; 3918c2ecf20Sopenharmony_ci u8 tc_id; 3928c2ecf20Sopenharmony_ci /* from LSB: dist_mode:4, miss_action:4 */ 3938c2ecf20Sopenharmony_ci u8 flags; 3948c2ecf20Sopenharmony_ci __le16 pad0; 3958c2ecf20Sopenharmony_ci __le16 default_flow_id; 3968c2ecf20Sopenharmony_ci /* cmd word 1..5 */ 3978c2ecf20Sopenharmony_ci __le64 pad1[5]; 3988c2ecf20Sopenharmony_ci /* cmd word 6 */ 3998c2ecf20Sopenharmony_ci __le64 key_cfg_iova; 4008c2ecf20Sopenharmony_ci}; 4018c2ecf20Sopenharmony_ci 4028c2ecf20Sopenharmony_ci/* dpni_set_rx_tc_dist extension (structure of the DMA-able memory at 4038c2ecf20Sopenharmony_ci * key_cfg_iova) 4048c2ecf20Sopenharmony_ci */ 4058c2ecf20Sopenharmony_cistruct dpni_mask_cfg { 4068c2ecf20Sopenharmony_ci u8 mask; 4078c2ecf20Sopenharmony_ci u8 offset; 4088c2ecf20Sopenharmony_ci}; 4098c2ecf20Sopenharmony_ci 4108c2ecf20Sopenharmony_ci#define DPNI_EFH_TYPE_SHIFT 0 4118c2ecf20Sopenharmony_ci#define DPNI_EFH_TYPE_SIZE 4 4128c2ecf20Sopenharmony_ci#define DPNI_EXTRACT_TYPE_SHIFT 0 4138c2ecf20Sopenharmony_ci#define DPNI_EXTRACT_TYPE_SIZE 4 4148c2ecf20Sopenharmony_ci 4158c2ecf20Sopenharmony_cistruct dpni_dist_extract { 4168c2ecf20Sopenharmony_ci /* word 0 */ 4178c2ecf20Sopenharmony_ci u8 prot; 4188c2ecf20Sopenharmony_ci /* EFH type stored in the 4 least significant bits */ 4198c2ecf20Sopenharmony_ci u8 efh_type; 4208c2ecf20Sopenharmony_ci u8 size; 4218c2ecf20Sopenharmony_ci u8 offset; 4228c2ecf20Sopenharmony_ci __le32 field; 4238c2ecf20Sopenharmony_ci /* word 1 */ 4248c2ecf20Sopenharmony_ci u8 hdr_index; 4258c2ecf20Sopenharmony_ci u8 constant; 4268c2ecf20Sopenharmony_ci u8 num_of_repeats; 4278c2ecf20Sopenharmony_ci u8 num_of_byte_masks; 4288c2ecf20Sopenharmony_ci /* Extraction type is stored in the 4 LSBs */ 4298c2ecf20Sopenharmony_ci u8 extract_type; 4308c2ecf20Sopenharmony_ci u8 pad[3]; 4318c2ecf20Sopenharmony_ci /* word 2 */ 4328c2ecf20Sopenharmony_ci struct dpni_mask_cfg masks[4]; 4338c2ecf20Sopenharmony_ci}; 4348c2ecf20Sopenharmony_ci 4358c2ecf20Sopenharmony_cistruct dpni_ext_set_rx_tc_dist { 4368c2ecf20Sopenharmony_ci /* extension word 0 */ 4378c2ecf20Sopenharmony_ci u8 num_extracts; 4388c2ecf20Sopenharmony_ci u8 pad[7]; 4398c2ecf20Sopenharmony_ci /* words 1..25 */ 4408c2ecf20Sopenharmony_ci struct dpni_dist_extract extracts[DPKG_MAX_NUM_OF_EXTRACTS]; 4418c2ecf20Sopenharmony_ci}; 4428c2ecf20Sopenharmony_ci 4438c2ecf20Sopenharmony_cistruct dpni_cmd_get_queue { 4448c2ecf20Sopenharmony_ci u8 qtype; 4458c2ecf20Sopenharmony_ci u8 tc; 4468c2ecf20Sopenharmony_ci u8 index; 4478c2ecf20Sopenharmony_ci}; 4488c2ecf20Sopenharmony_ci 4498c2ecf20Sopenharmony_ci#define DPNI_DEST_TYPE_SHIFT 0 4508c2ecf20Sopenharmony_ci#define DPNI_DEST_TYPE_SIZE 4 4518c2ecf20Sopenharmony_ci#define DPNI_STASH_CTRL_SHIFT 6 4528c2ecf20Sopenharmony_ci#define DPNI_STASH_CTRL_SIZE 1 4538c2ecf20Sopenharmony_ci#define DPNI_HOLD_ACTIVE_SHIFT 7 4548c2ecf20Sopenharmony_ci#define DPNI_HOLD_ACTIVE_SIZE 1 4558c2ecf20Sopenharmony_ci 4568c2ecf20Sopenharmony_cistruct dpni_rsp_get_queue { 4578c2ecf20Sopenharmony_ci /* response word 0 */ 4588c2ecf20Sopenharmony_ci __le64 pad0; 4598c2ecf20Sopenharmony_ci /* response word 1 */ 4608c2ecf20Sopenharmony_ci __le32 dest_id; 4618c2ecf20Sopenharmony_ci __le16 pad1; 4628c2ecf20Sopenharmony_ci u8 dest_prio; 4638c2ecf20Sopenharmony_ci /* From LSB: dest_type:4, pad:2, flc_stash_ctrl:1, hold_active:1 */ 4648c2ecf20Sopenharmony_ci u8 flags; 4658c2ecf20Sopenharmony_ci /* response word 2 */ 4668c2ecf20Sopenharmony_ci __le64 flc; 4678c2ecf20Sopenharmony_ci /* response word 3 */ 4688c2ecf20Sopenharmony_ci __le64 user_context; 4698c2ecf20Sopenharmony_ci /* response word 4 */ 4708c2ecf20Sopenharmony_ci __le32 fqid; 4718c2ecf20Sopenharmony_ci __le16 qdbin; 4728c2ecf20Sopenharmony_ci}; 4738c2ecf20Sopenharmony_ci 4748c2ecf20Sopenharmony_cistruct dpni_cmd_set_queue { 4758c2ecf20Sopenharmony_ci /* cmd word 0 */ 4768c2ecf20Sopenharmony_ci u8 qtype; 4778c2ecf20Sopenharmony_ci u8 tc; 4788c2ecf20Sopenharmony_ci u8 index; 4798c2ecf20Sopenharmony_ci u8 options; 4808c2ecf20Sopenharmony_ci __le32 pad0; 4818c2ecf20Sopenharmony_ci /* cmd word 1 */ 4828c2ecf20Sopenharmony_ci __le32 dest_id; 4838c2ecf20Sopenharmony_ci __le16 pad1; 4848c2ecf20Sopenharmony_ci u8 dest_prio; 4858c2ecf20Sopenharmony_ci u8 flags; 4868c2ecf20Sopenharmony_ci /* cmd word 2 */ 4878c2ecf20Sopenharmony_ci __le64 flc; 4888c2ecf20Sopenharmony_ci /* cmd word 3 */ 4898c2ecf20Sopenharmony_ci __le64 user_context; 4908c2ecf20Sopenharmony_ci}; 4918c2ecf20Sopenharmony_ci 4928c2ecf20Sopenharmony_cistruct dpni_cmd_set_taildrop { 4938c2ecf20Sopenharmony_ci /* cmd word 0 */ 4948c2ecf20Sopenharmony_ci u8 congestion_point; 4958c2ecf20Sopenharmony_ci u8 qtype; 4968c2ecf20Sopenharmony_ci u8 tc; 4978c2ecf20Sopenharmony_ci u8 index; 4988c2ecf20Sopenharmony_ci __le32 pad0; 4998c2ecf20Sopenharmony_ci /* cmd word 1 */ 5008c2ecf20Sopenharmony_ci /* Only least significant bit is relevant */ 5018c2ecf20Sopenharmony_ci u8 enable; 5028c2ecf20Sopenharmony_ci u8 pad1; 5038c2ecf20Sopenharmony_ci u8 units; 5048c2ecf20Sopenharmony_ci u8 pad2; 5058c2ecf20Sopenharmony_ci __le32 threshold; 5068c2ecf20Sopenharmony_ci}; 5078c2ecf20Sopenharmony_ci 5088c2ecf20Sopenharmony_cistruct dpni_cmd_get_taildrop { 5098c2ecf20Sopenharmony_ci u8 congestion_point; 5108c2ecf20Sopenharmony_ci u8 qtype; 5118c2ecf20Sopenharmony_ci u8 tc; 5128c2ecf20Sopenharmony_ci u8 index; 5138c2ecf20Sopenharmony_ci}; 5148c2ecf20Sopenharmony_ci 5158c2ecf20Sopenharmony_cistruct dpni_rsp_get_taildrop { 5168c2ecf20Sopenharmony_ci /* cmd word 0 */ 5178c2ecf20Sopenharmony_ci __le64 pad0; 5188c2ecf20Sopenharmony_ci /* cmd word 1 */ 5198c2ecf20Sopenharmony_ci /* only least significant bit is relevant */ 5208c2ecf20Sopenharmony_ci u8 enable; 5218c2ecf20Sopenharmony_ci u8 pad1; 5228c2ecf20Sopenharmony_ci u8 units; 5238c2ecf20Sopenharmony_ci u8 pad2; 5248c2ecf20Sopenharmony_ci __le32 threshold; 5258c2ecf20Sopenharmony_ci}; 5268c2ecf20Sopenharmony_ci 5278c2ecf20Sopenharmony_cistruct dpni_rsp_get_api_version { 5288c2ecf20Sopenharmony_ci __le16 major; 5298c2ecf20Sopenharmony_ci __le16 minor; 5308c2ecf20Sopenharmony_ci}; 5318c2ecf20Sopenharmony_ci 5328c2ecf20Sopenharmony_ci#define DPNI_RX_FS_DIST_ENABLE_SHIFT 0 5338c2ecf20Sopenharmony_ci#define DPNI_RX_FS_DIST_ENABLE_SIZE 1 5348c2ecf20Sopenharmony_cistruct dpni_cmd_set_rx_fs_dist { 5358c2ecf20Sopenharmony_ci __le16 dist_size; 5368c2ecf20Sopenharmony_ci u8 enable; 5378c2ecf20Sopenharmony_ci u8 tc; 5388c2ecf20Sopenharmony_ci __le16 miss_flow_id; 5398c2ecf20Sopenharmony_ci __le16 pad; 5408c2ecf20Sopenharmony_ci __le64 key_cfg_iova; 5418c2ecf20Sopenharmony_ci}; 5428c2ecf20Sopenharmony_ci 5438c2ecf20Sopenharmony_ci#define DPNI_RX_HASH_DIST_ENABLE_SHIFT 0 5448c2ecf20Sopenharmony_ci#define DPNI_RX_HASH_DIST_ENABLE_SIZE 1 5458c2ecf20Sopenharmony_cistruct dpni_cmd_set_rx_hash_dist { 5468c2ecf20Sopenharmony_ci __le16 dist_size; 5478c2ecf20Sopenharmony_ci u8 enable; 5488c2ecf20Sopenharmony_ci u8 tc; 5498c2ecf20Sopenharmony_ci __le32 pad; 5508c2ecf20Sopenharmony_ci __le64 key_cfg_iova; 5518c2ecf20Sopenharmony_ci}; 5528c2ecf20Sopenharmony_ci 5538c2ecf20Sopenharmony_cistruct dpni_cmd_add_fs_entry { 5548c2ecf20Sopenharmony_ci /* cmd word 0 */ 5558c2ecf20Sopenharmony_ci __le16 options; 5568c2ecf20Sopenharmony_ci u8 tc_id; 5578c2ecf20Sopenharmony_ci u8 key_size; 5588c2ecf20Sopenharmony_ci __le16 index; 5598c2ecf20Sopenharmony_ci __le16 flow_id; 5608c2ecf20Sopenharmony_ci /* cmd word 1 */ 5618c2ecf20Sopenharmony_ci __le64 key_iova; 5628c2ecf20Sopenharmony_ci /* cmd word 2 */ 5638c2ecf20Sopenharmony_ci __le64 mask_iova; 5648c2ecf20Sopenharmony_ci /* cmd word 3 */ 5658c2ecf20Sopenharmony_ci __le64 flc; 5668c2ecf20Sopenharmony_ci}; 5678c2ecf20Sopenharmony_ci 5688c2ecf20Sopenharmony_cistruct dpni_cmd_remove_fs_entry { 5698c2ecf20Sopenharmony_ci /* cmd word 0 */ 5708c2ecf20Sopenharmony_ci __le16 pad0; 5718c2ecf20Sopenharmony_ci u8 tc_id; 5728c2ecf20Sopenharmony_ci u8 key_size; 5738c2ecf20Sopenharmony_ci __le32 pad1; 5748c2ecf20Sopenharmony_ci /* cmd word 1 */ 5758c2ecf20Sopenharmony_ci __le64 key_iova; 5768c2ecf20Sopenharmony_ci /* cmd word 2 */ 5778c2ecf20Sopenharmony_ci __le64 mask_iova; 5788c2ecf20Sopenharmony_ci}; 5798c2ecf20Sopenharmony_ci 5808c2ecf20Sopenharmony_ci#define DPNI_DISCARD_ON_MISS_SHIFT 0 5818c2ecf20Sopenharmony_ci#define DPNI_DISCARD_ON_MISS_SIZE 1 5828c2ecf20Sopenharmony_ci 5838c2ecf20Sopenharmony_cistruct dpni_cmd_set_qos_table { 5848c2ecf20Sopenharmony_ci __le32 pad; 5858c2ecf20Sopenharmony_ci u8 default_tc; 5868c2ecf20Sopenharmony_ci /* only the LSB */ 5878c2ecf20Sopenharmony_ci u8 discard_on_miss; 5888c2ecf20Sopenharmony_ci __le16 pad1[21]; 5898c2ecf20Sopenharmony_ci __le64 key_cfg_iova; 5908c2ecf20Sopenharmony_ci}; 5918c2ecf20Sopenharmony_ci 5928c2ecf20Sopenharmony_cistruct dpni_cmd_add_qos_entry { 5938c2ecf20Sopenharmony_ci __le16 pad; 5948c2ecf20Sopenharmony_ci u8 tc_id; 5958c2ecf20Sopenharmony_ci u8 key_size; 5968c2ecf20Sopenharmony_ci __le16 index; 5978c2ecf20Sopenharmony_ci __le16 pad1; 5988c2ecf20Sopenharmony_ci __le64 key_iova; 5998c2ecf20Sopenharmony_ci __le64 mask_iova; 6008c2ecf20Sopenharmony_ci}; 6018c2ecf20Sopenharmony_ci 6028c2ecf20Sopenharmony_cistruct dpni_cmd_remove_qos_entry { 6038c2ecf20Sopenharmony_ci u8 pad[3]; 6048c2ecf20Sopenharmony_ci u8 key_size; 6058c2ecf20Sopenharmony_ci __le32 pad1; 6068c2ecf20Sopenharmony_ci __le64 key_iova; 6078c2ecf20Sopenharmony_ci __le64 mask_iova; 6088c2ecf20Sopenharmony_ci}; 6098c2ecf20Sopenharmony_ci 6108c2ecf20Sopenharmony_ci#define DPNI_DEST_TYPE_SHIFT 0 6118c2ecf20Sopenharmony_ci#define DPNI_DEST_TYPE_SIZE 4 6128c2ecf20Sopenharmony_ci#define DPNI_CONG_UNITS_SHIFT 4 6138c2ecf20Sopenharmony_ci#define DPNI_CONG_UNITS_SIZE 2 6148c2ecf20Sopenharmony_ci 6158c2ecf20Sopenharmony_cistruct dpni_cmd_set_congestion_notification { 6168c2ecf20Sopenharmony_ci /* cmd word 0 */ 6178c2ecf20Sopenharmony_ci u8 qtype; 6188c2ecf20Sopenharmony_ci u8 tc; 6198c2ecf20Sopenharmony_ci u8 pad[6]; 6208c2ecf20Sopenharmony_ci /* cmd word 1 */ 6218c2ecf20Sopenharmony_ci __le32 dest_id; 6228c2ecf20Sopenharmony_ci __le16 notification_mode; 6238c2ecf20Sopenharmony_ci u8 dest_priority; 6248c2ecf20Sopenharmony_ci /* from LSB: dest_type: 4 units:2 */ 6258c2ecf20Sopenharmony_ci u8 type_units; 6268c2ecf20Sopenharmony_ci /* cmd word 2 */ 6278c2ecf20Sopenharmony_ci __le64 message_iova; 6288c2ecf20Sopenharmony_ci /* cmd word 3 */ 6298c2ecf20Sopenharmony_ci __le64 message_ctx; 6308c2ecf20Sopenharmony_ci /* cmd word 4 */ 6318c2ecf20Sopenharmony_ci __le32 threshold_entry; 6328c2ecf20Sopenharmony_ci __le32 threshold_exit; 6338c2ecf20Sopenharmony_ci}; 6348c2ecf20Sopenharmony_ci 6358c2ecf20Sopenharmony_ci#define DPNI_COUPLED_SHIFT 0 6368c2ecf20Sopenharmony_ci#define DPNI_COUPLED_SIZE 1 6378c2ecf20Sopenharmony_ci 6388c2ecf20Sopenharmony_cistruct dpni_cmd_set_tx_shaping { 6398c2ecf20Sopenharmony_ci __le16 tx_cr_max_burst_size; 6408c2ecf20Sopenharmony_ci __le16 tx_er_max_burst_size; 6418c2ecf20Sopenharmony_ci __le32 pad; 6428c2ecf20Sopenharmony_ci __le32 tx_cr_rate_limit; 6438c2ecf20Sopenharmony_ci __le32 tx_er_rate_limit; 6448c2ecf20Sopenharmony_ci /* from LSB: coupled:1 */ 6458c2ecf20Sopenharmony_ci u8 coupled; 6468c2ecf20Sopenharmony_ci}; 6478c2ecf20Sopenharmony_ci 6488c2ecf20Sopenharmony_ci#define DPNI_PTP_ENABLE_SHIFT 0 6498c2ecf20Sopenharmony_ci#define DPNI_PTP_ENABLE_SIZE 1 6508c2ecf20Sopenharmony_ci#define DPNI_PTP_CH_UPDATE_SHIFT 1 6518c2ecf20Sopenharmony_ci#define DPNI_PTP_CH_UPDATE_SIZE 1 6528c2ecf20Sopenharmony_ci 6538c2ecf20Sopenharmony_cistruct dpni_cmd_single_step_cfg { 6548c2ecf20Sopenharmony_ci __le16 flags; 6558c2ecf20Sopenharmony_ci __le16 offset; 6568c2ecf20Sopenharmony_ci __le32 peer_delay; 6578c2ecf20Sopenharmony_ci}; 6588c2ecf20Sopenharmony_ci 6598c2ecf20Sopenharmony_cistruct dpni_rsp_single_step_cfg { 6608c2ecf20Sopenharmony_ci __le16 flags; 6618c2ecf20Sopenharmony_ci __le16 offset; 6628c2ecf20Sopenharmony_ci __le32 peer_delay; 6638c2ecf20Sopenharmony_ci}; 6648c2ecf20Sopenharmony_ci 6658c2ecf20Sopenharmony_ci#endif /* _FSL_DPNI_CMD_H */ 666