linux/drivers/soc/hisilicon/kunpeng_hccs.h

/* SPDX-License-Identifier: GPL-2.0+ */
/* Copyright (c) 2023 Hisilicon Limited. */

#ifndef __KUNPENG_HCCS_H__
#define __KUNPENG_HCCS_H__

/*
 * |---------------  Chip0  ---------------|----------------  ChipN  -------------|
 * |--------Die0-------|--------DieN-------|--------Die0-------|-------DieN-------|
 * | P0 | P1 | P2 | P3 | P0 | P1 | P2 | P3 | P0 | P1 | P2 | P3 |P0 | P1 | P2 | P3 |
 */

/*
 * This value cannot be 255, otherwise the loop of the multi-BD communication
 * case cannot end.
 */
#define HCCS_DIE_MAX_PORT_ID

struct hccs_port_info {};

struct hccs_die_info {};

struct hccs_chip_info {};

struct hccs_mbox_client_info {};

struct hccs_desc;

struct hccs_verspecific_data {};

struct hccs_dev {};

#define HCCS_SERDES_MODULE_CODE
enum hccs_subcmd_type {};

struct hccs_die_num_req_param {};

struct hccs_die_info_req_param {};

struct hccs_die_info_rsp_data {};

struct hccs_port_attr {};

/*
 * The common command request for getting the information of all HCCS port on
 * specified DIE.
 */
struct hccs_die_comm_req_param {};

/* The common command request for getting the information of a specific port */
struct hccs_port_comm_req_param {};

#define HCCS_PORT_RESET
#define HCCS_PORT_SETUP
#define HCCS_PORT_CONFIG
#define HCCS_PORT_READY
struct hccs_link_status {};

struct hccs_req_head {};

struct hccs_rsp_head {};

struct hccs_fw_inner_head {};

#define HCCS_PCC_SHARE_MEM_BYTES
#define HCCS_FW_INNER_HEAD_BYTES
#define HCCS_RSP_HEAD_BYTES

#define HCCS_MAX_RSP_DATA_BYTES
#define HCCS_MAX_RSP_DATA_SIZE_MAX

/*
 * Note: Actual available size of data field also depands on the PCC header
 * bytes of the specific type. Driver needs to copy the response data in the
 * communication space based on the real length.
 */
struct hccs_rsp_desc {};

#define HCCS_REQ_HEAD_BYTES
#define HCCS_MAX_REQ_DATA_BYTES
#define HCCS_MAX_REQ_DATA_SIZE_MAX

/*
 * Note: Actual available size of data field also depands on the PCC header
 * bytes of the specific type. Driver needs to copy the request data to the
 * communication space based on the real length.
 */
struct hccs_req_desc {};

struct hccs_desc {};

#endif /* __KUNPENG_HCCS_H__ */