0001
0002
0003
0004
0005 #ifndef _FSL_DPMAC_CMD_H
0006 #define _FSL_DPMAC_CMD_H
0007
0008
0009 #define DPMAC_VER_MAJOR 4
0010 #define DPMAC_VER_MINOR 4
0011 #define DPMAC_CMD_BASE_VERSION 1
0012 #define DPMAC_CMD_2ND_VERSION 2
0013 #define DPMAC_CMD_ID_OFFSET 4
0014
0015 #define DPMAC_CMD(id) (((id) << DPMAC_CMD_ID_OFFSET) | DPMAC_CMD_BASE_VERSION)
0016 #define DPMAC_CMD_V2(id) (((id) << DPMAC_CMD_ID_OFFSET) | DPMAC_CMD_2ND_VERSION)
0017
0018
0019 #define DPMAC_CMDID_CLOSE DPMAC_CMD(0x800)
0020 #define DPMAC_CMDID_OPEN DPMAC_CMD(0x80c)
0021
0022 #define DPMAC_CMDID_GET_API_VERSION DPMAC_CMD(0xa0c)
0023
0024 #define DPMAC_CMDID_GET_ATTR DPMAC_CMD(0x004)
0025 #define DPMAC_CMDID_SET_LINK_STATE DPMAC_CMD_V2(0x0c3)
0026
0027 #define DPMAC_CMDID_GET_COUNTER DPMAC_CMD(0x0c4)
0028
0029 #define DPMAC_CMDID_SET_PROTOCOL DPMAC_CMD(0x0c7)
0030
0031
0032 #define DPMAC_MASK(field) \
0033 GENMASK(DPMAC_##field##_SHIFT + DPMAC_##field##_SIZE - 1, \
0034 DPMAC_##field##_SHIFT)
0035
0036 #define dpmac_set_field(var, field, val) \
0037 ((var) |= (((val) << DPMAC_##field##_SHIFT) & DPMAC_MASK(field)))
0038 #define dpmac_get_field(var, field) \
0039 (((var) & DPMAC_MASK(field)) >> DPMAC_##field##_SHIFT)
0040
0041 struct dpmac_cmd_open {
0042 __le32 dpmac_id;
0043 };
0044
0045 struct dpmac_rsp_get_attributes {
0046 u8 eth_if;
0047 u8 link_type;
0048 __le16 id;
0049 __le32 max_rate;
0050 };
0051
0052 #define DPMAC_STATE_SIZE 1
0053 #define DPMAC_STATE_SHIFT 0
0054 #define DPMAC_STATE_VALID_SIZE 1
0055 #define DPMAC_STATE_VALID_SHIFT 1
0056
0057 struct dpmac_cmd_set_link_state {
0058 __le64 options;
0059 __le32 rate;
0060 __le32 pad0;
0061
0062 u8 state;
0063 u8 pad1[7];
0064 __le64 supported;
0065 __le64 advertising;
0066 };
0067
0068 struct dpmac_cmd_get_counter {
0069 u8 id;
0070 };
0071
0072 struct dpmac_rsp_get_counter {
0073 __le64 pad;
0074 __le64 counter;
0075 };
0076
0077 struct dpmac_rsp_get_api_version {
0078 __le16 major;
0079 __le16 minor;
0080 };
0081
0082 struct dpmac_cmd_set_protocol {
0083 u8 eth_if;
0084 };
0085 #endif