162306a36Sopenharmony_ci/* SPDX-License-Identifier: GPL-2.0-only */
262306a36Sopenharmony_ci/*
362306a36Sopenharmony_ci * Copyright (c) 2021 pureLiFi
462306a36Sopenharmony_ci */
562306a36Sopenharmony_ci
662306a36Sopenharmony_ci#define PURELIFI_BYTE_NUM_ALIGNMENT 4
762306a36Sopenharmony_ci#define ETH_ALEN 6
862306a36Sopenharmony_ci#define AP_USER_LIMIT 8
962306a36Sopenharmony_ci
1062306a36Sopenharmony_ci#define PLF_VNDR_FPGA_STATE_REQ 0x30
1162306a36Sopenharmony_ci#define PLF_VNDR_FPGA_SET_REQ 0x33
1262306a36Sopenharmony_ci#define PLF_VNDR_FPGA_SET_CMD 0x34
1362306a36Sopenharmony_ci#define PLF_VNDR_FPGA_STATE_CMD 0x35
1462306a36Sopenharmony_ci
1562306a36Sopenharmony_ci#define PLF_VNDR_XL_FW_CMD 0x80
1662306a36Sopenharmony_ci#define PLF_VNDR_XL_DATA_CMD 0x81
1762306a36Sopenharmony_ci#define PLF_VNDR_XL_FILE_CMD 0x82
1862306a36Sopenharmony_ci#define PLF_VNDR_XL_EX_CMD 0x83
1962306a36Sopenharmony_ci
2062306a36Sopenharmony_ci#define PLF_MAC_VENDOR_REQUEST 0x36
2162306a36Sopenharmony_ci#define PLF_SERIAL_NUMBER_VENDOR_REQUEST 0x37
2262306a36Sopenharmony_ci#define PLF_FIRMWARE_VERSION_VENDOR_REQUEST 0x39
2362306a36Sopenharmony_ci#define PLF_SERIAL_LEN 14
2462306a36Sopenharmony_ci#define PLF_FW_VER_LEN 8
2562306a36Sopenharmony_ci
2662306a36Sopenharmony_cistruct rx_status {
2762306a36Sopenharmony_ci	__be16 rssi;
2862306a36Sopenharmony_ci	u8     rate_idx;
2962306a36Sopenharmony_ci	u8     pad;
3062306a36Sopenharmony_ci	__be64 crc_error_count;
3162306a36Sopenharmony_ci} __packed;
3262306a36Sopenharmony_ci
3362306a36Sopenharmony_cienum plf_usb_req_enum {
3462306a36Sopenharmony_ci	USB_REQ_TEST_WR            = 0,
3562306a36Sopenharmony_ci	USB_REQ_MAC_WR             = 1,
3662306a36Sopenharmony_ci	USB_REQ_POWER_WR           = 2,
3762306a36Sopenharmony_ci	USB_REQ_RXTX_WR            = 3,
3862306a36Sopenharmony_ci	USB_REQ_BEACON_WR          = 4,
3962306a36Sopenharmony_ci	USB_REQ_BEACON_INTERVAL_WR = 5,
4062306a36Sopenharmony_ci	USB_REQ_RTS_CTS_RATE_WR    = 6,
4162306a36Sopenharmony_ci	USB_REQ_HASH_WR            = 7,
4262306a36Sopenharmony_ci	USB_REQ_DATA_TX            = 8,
4362306a36Sopenharmony_ci	USB_REQ_RATE_WR            = 9,
4462306a36Sopenharmony_ci	USB_REQ_SET_FREQ           = 15
4562306a36Sopenharmony_ci};
4662306a36Sopenharmony_ci
4762306a36Sopenharmony_cistruct plf_usb_req {
4862306a36Sopenharmony_ci	__be32         id; /* should be plf_usb_req_enum */
4962306a36Sopenharmony_ci	__be32	       len;
5062306a36Sopenharmony_ci	u8             buf[512];
5162306a36Sopenharmony_ci};
5262306a36Sopenharmony_ci
53