162306a36Sopenharmony_ci/* SPDX-License-Identifier: GPL-2.0 */ 262306a36Sopenharmony_ci/* Copyright (c) 2019, Vladimir Oltean <olteanv@gmail.com> 362306a36Sopenharmony_ci */ 462306a36Sopenharmony_ci#ifndef _SJA1105_DYNAMIC_CONFIG_H 562306a36Sopenharmony_ci#define _SJA1105_DYNAMIC_CONFIG_H 662306a36Sopenharmony_ci 762306a36Sopenharmony_ci#include "sja1105.h" 862306a36Sopenharmony_ci#include <linux/packing.h> 962306a36Sopenharmony_ci 1062306a36Sopenharmony_ci/* Special index that can be used for sja1105_dynamic_config_read */ 1162306a36Sopenharmony_ci#define SJA1105_SEARCH -1 1262306a36Sopenharmony_ci 1362306a36Sopenharmony_cistruct sja1105_dyn_cmd; 1462306a36Sopenharmony_ci 1562306a36Sopenharmony_cistruct sja1105_dynamic_table_ops { 1662306a36Sopenharmony_ci /* This returns size_t just to keep same prototype as the 1762306a36Sopenharmony_ci * static config ops, of which we are reusing some functions. 1862306a36Sopenharmony_ci */ 1962306a36Sopenharmony_ci size_t (*entry_packing)(void *buf, void *entry_ptr, enum packing_op op); 2062306a36Sopenharmony_ci void (*cmd_packing)(void *buf, struct sja1105_dyn_cmd *cmd, 2162306a36Sopenharmony_ci enum packing_op op); 2262306a36Sopenharmony_ci size_t max_entry_count; 2362306a36Sopenharmony_ci size_t packed_size; 2462306a36Sopenharmony_ci u64 addr; 2562306a36Sopenharmony_ci u8 access; 2662306a36Sopenharmony_ci}; 2762306a36Sopenharmony_ci 2862306a36Sopenharmony_cistruct sja1105_mgmt_entry { 2962306a36Sopenharmony_ci u64 tsreg; 3062306a36Sopenharmony_ci u64 takets; 3162306a36Sopenharmony_ci u64 macaddr; 3262306a36Sopenharmony_ci u64 destports; 3362306a36Sopenharmony_ci u64 enfport; 3462306a36Sopenharmony_ci u64 index; 3562306a36Sopenharmony_ci}; 3662306a36Sopenharmony_ci 3762306a36Sopenharmony_ciextern const struct sja1105_dynamic_table_ops sja1105et_dyn_ops[BLK_IDX_MAX_DYN]; 3862306a36Sopenharmony_ciextern const struct sja1105_dynamic_table_ops sja1105pqrs_dyn_ops[BLK_IDX_MAX_DYN]; 3962306a36Sopenharmony_ciextern const struct sja1105_dynamic_table_ops sja1110_dyn_ops[BLK_IDX_MAX_DYN]; 4062306a36Sopenharmony_ci 4162306a36Sopenharmony_ci#endif 42