net: ti: icss-iep: Move icss_iep structure
Move icss_iep structure definition and to icss_iep.h file so that the structure members can be used / accessed by all icssg driver files. Reviewed-by: Simon Horman <horms@kernel.org> Reviewed-by: Jacob Keller <jacob.e.keller@intel.com> Reviewed-by: Roger Quadros <rogerq@kernel.org> Signed-off-by: MD Danish Anwar <danishanwar@ti.com> Link: https://patch.msgid.link/20240911081603.2521729-2-danishanwar@ti.com Signed-off-by: Jakub Kicinski <kuba@kernel.org>
This commit is contained in:
parent
34c44eb31d
commit
8f88c072c2
@ -53,78 +53,6 @@
|
||||
#define IEP_CAP_CFG_CAPNR_1ST_EVENT_EN(n) BIT(LATCH_INDEX(n))
|
||||
#define IEP_CAP_CFG_CAP_ASYNC_EN(n) BIT(LATCH_INDEX(n) + 10)
|
||||
|
||||
enum {
|
||||
ICSS_IEP_GLOBAL_CFG_REG,
|
||||
ICSS_IEP_GLOBAL_STATUS_REG,
|
||||
ICSS_IEP_COMPEN_REG,
|
||||
ICSS_IEP_SLOW_COMPEN_REG,
|
||||
ICSS_IEP_COUNT_REG0,
|
||||
ICSS_IEP_COUNT_REG1,
|
||||
ICSS_IEP_CAPTURE_CFG_REG,
|
||||
ICSS_IEP_CAPTURE_STAT_REG,
|
||||
|
||||
ICSS_IEP_CAP6_RISE_REG0,
|
||||
ICSS_IEP_CAP6_RISE_REG1,
|
||||
|
||||
ICSS_IEP_CAP7_RISE_REG0,
|
||||
ICSS_IEP_CAP7_RISE_REG1,
|
||||
|
||||
ICSS_IEP_CMP_CFG_REG,
|
||||
ICSS_IEP_CMP_STAT_REG,
|
||||
ICSS_IEP_CMP0_REG0,
|
||||
ICSS_IEP_CMP0_REG1,
|
||||
ICSS_IEP_CMP1_REG0,
|
||||
ICSS_IEP_CMP1_REG1,
|
||||
|
||||
ICSS_IEP_CMP8_REG0,
|
||||
ICSS_IEP_CMP8_REG1,
|
||||
ICSS_IEP_SYNC_CTRL_REG,
|
||||
ICSS_IEP_SYNC0_STAT_REG,
|
||||
ICSS_IEP_SYNC1_STAT_REG,
|
||||
ICSS_IEP_SYNC_PWIDTH_REG,
|
||||
ICSS_IEP_SYNC0_PERIOD_REG,
|
||||
ICSS_IEP_SYNC1_DELAY_REG,
|
||||
ICSS_IEP_SYNC_START_REG,
|
||||
ICSS_IEP_MAX_REGS,
|
||||
};
|
||||
|
||||
/**
|
||||
* struct icss_iep_plat_data - Plat data to handle SoC variants
|
||||
* @config: Regmap configuration data
|
||||
* @reg_offs: register offsets to capture offset differences across SoCs
|
||||
* @flags: Flags to represent IEP properties
|
||||
*/
|
||||
struct icss_iep_plat_data {
|
||||
const struct regmap_config *config;
|
||||
u32 reg_offs[ICSS_IEP_MAX_REGS];
|
||||
u32 flags;
|
||||
};
|
||||
|
||||
struct icss_iep {
|
||||
struct device *dev;
|
||||
void __iomem *base;
|
||||
const struct icss_iep_plat_data *plat_data;
|
||||
struct regmap *map;
|
||||
struct device_node *client_np;
|
||||
unsigned long refclk_freq;
|
||||
int clk_tick_time; /* one refclk tick time in ns */
|
||||
struct ptp_clock_info ptp_info;
|
||||
struct ptp_clock *ptp_clock;
|
||||
struct mutex ptp_clk_mutex; /* PHC access serializer */
|
||||
u32 def_inc;
|
||||
s16 slow_cmp_inc;
|
||||
u32 slow_cmp_count;
|
||||
const struct icss_iep_clockops *ops;
|
||||
void *clockops_data;
|
||||
u32 cycle_time_ns;
|
||||
u32 perout_enabled;
|
||||
bool pps_enabled;
|
||||
int cap_cmp_irq;
|
||||
u64 period;
|
||||
u32 latch_enable;
|
||||
struct work_struct work;
|
||||
};
|
||||
|
||||
/**
|
||||
* icss_iep_get_count_hi() - Get the upper 32 bit IEP counter
|
||||
* @iep: Pointer to structure representing IEP.
|
||||
|
@ -12,7 +12,78 @@
|
||||
#include <linux/ptp_clock_kernel.h>
|
||||
#include <linux/regmap.h>
|
||||
|
||||
struct icss_iep;
|
||||
enum {
|
||||
ICSS_IEP_GLOBAL_CFG_REG,
|
||||
ICSS_IEP_GLOBAL_STATUS_REG,
|
||||
ICSS_IEP_COMPEN_REG,
|
||||
ICSS_IEP_SLOW_COMPEN_REG,
|
||||
ICSS_IEP_COUNT_REG0,
|
||||
ICSS_IEP_COUNT_REG1,
|
||||
ICSS_IEP_CAPTURE_CFG_REG,
|
||||
ICSS_IEP_CAPTURE_STAT_REG,
|
||||
|
||||
ICSS_IEP_CAP6_RISE_REG0,
|
||||
ICSS_IEP_CAP6_RISE_REG1,
|
||||
|
||||
ICSS_IEP_CAP7_RISE_REG0,
|
||||
ICSS_IEP_CAP7_RISE_REG1,
|
||||
|
||||
ICSS_IEP_CMP_CFG_REG,
|
||||
ICSS_IEP_CMP_STAT_REG,
|
||||
ICSS_IEP_CMP0_REG0,
|
||||
ICSS_IEP_CMP0_REG1,
|
||||
ICSS_IEP_CMP1_REG0,
|
||||
ICSS_IEP_CMP1_REG1,
|
||||
|
||||
ICSS_IEP_CMP8_REG0,
|
||||
ICSS_IEP_CMP8_REG1,
|
||||
ICSS_IEP_SYNC_CTRL_REG,
|
||||
ICSS_IEP_SYNC0_STAT_REG,
|
||||
ICSS_IEP_SYNC1_STAT_REG,
|
||||
ICSS_IEP_SYNC_PWIDTH_REG,
|
||||
ICSS_IEP_SYNC0_PERIOD_REG,
|
||||
ICSS_IEP_SYNC1_DELAY_REG,
|
||||
ICSS_IEP_SYNC_START_REG,
|
||||
ICSS_IEP_MAX_REGS,
|
||||
};
|
||||
|
||||
/**
|
||||
* struct icss_iep_plat_data - Plat data to handle SoC variants
|
||||
* @config: Regmap configuration data
|
||||
* @reg_offs: register offsets to capture offset differences across SoCs
|
||||
* @flags: Flags to represent IEP properties
|
||||
*/
|
||||
struct icss_iep_plat_data {
|
||||
const struct regmap_config *config;
|
||||
u32 reg_offs[ICSS_IEP_MAX_REGS];
|
||||
u32 flags;
|
||||
};
|
||||
|
||||
struct icss_iep {
|
||||
struct device *dev;
|
||||
void __iomem *base;
|
||||
const struct icss_iep_plat_data *plat_data;
|
||||
struct regmap *map;
|
||||
struct device_node *client_np;
|
||||
unsigned long refclk_freq;
|
||||
int clk_tick_time; /* one refclk tick time in ns */
|
||||
struct ptp_clock_info ptp_info;
|
||||
struct ptp_clock *ptp_clock;
|
||||
struct mutex ptp_clk_mutex; /* PHC access serializer */
|
||||
u32 def_inc;
|
||||
s16 slow_cmp_inc;
|
||||
u32 slow_cmp_count;
|
||||
const struct icss_iep_clockops *ops;
|
||||
void *clockops_data;
|
||||
u32 cycle_time_ns;
|
||||
u32 perout_enabled;
|
||||
bool pps_enabled;
|
||||
int cap_cmp_irq;
|
||||
u64 period;
|
||||
u32 latch_enable;
|
||||
struct work_struct work;
|
||||
};
|
||||
|
||||
extern const struct icss_iep_clockops prueth_iep_clockops;
|
||||
|
||||
/* Firmware specific clock operations */
|
||||
|
Loading…
Reference in New Issue
Block a user