Home
last modified time | relevance | path

Searched refs:sparx5 (Results 1 – 25 of 28) sorted by relevance

12

/linux/drivers/net/ethernet/microchip/sparx5/
H A Dsparx5_main.c215 bool is_sparx5(struct sparx5 *sparx5) in is_sparx5() argument
217 switch (sparx5->target_ct) { in is_sparx5()
234 static void sparx5_init_features(struct sparx5 *sparx5) in sparx5_init_features() argument
236 switch (sparx5->target_ct) { in sparx5_init_features()
256 sparx5->features = (SPX5_FEATURE_PSFP | SPX5_FEATURE_PTP); in sparx5_init_features()
263 bool sparx5_has_feature(struct sparx5 *sparx5, enum sparx5_feature feature) in sparx5_has_feature() argument
265 return sparx5->features & feature; in sparx5_has_feature()
268 static int sparx5_create_targets(struct sparx5 *sparx5) in sparx5_create_targets() argument
270 const struct sparx5_main_io_resource *iomap = sparx5->data->iomap; in sparx5_create_targets()
271 int iomap_size = sparx5->data->iomap_size; in sparx5_create_targets()
[all …]
H A Dsparx5_ptp.c25 static u64 sparx5_ptp_get_1ppm(struct sparx5 *sparx5) in sparx5_ptp_get_1ppm() argument
35 switch (sparx5->coreclock) { in sparx5_ptp_get_1ppm()
56 static u64 sparx5_ptp_get_nominal_value(struct sparx5 *sparx5) in sparx5_ptp_get_nominal_value() argument
60 switch (sparx5->coreclock) { in sparx5_ptp_get_nominal_value()
85 struct sparx5 *sparx5 = port->sparx5; in sparx5_ptp_hwtstamp_set() local
93 if (test_bit(port->portno, sparx5->bridge_mask)) in sparx5_ptp_hwtstamp_set()
134 mutex_lock(&sparx5->ptp_lock); in sparx5_ptp_hwtstamp_set()
135 phc = &sparx5->phc[SPARX5_PHC_PORT]; in sparx5_ptp_hwtstamp_set()
137 mutex_unlock(&sparx5->ptp_lock); in sparx5_ptp_hwtstamp_set()
145 struct sparx5 *sparx5 = port->sparx5; in sparx5_ptp_hwtstamp_get() local
[all …]
H A Dsparx5_mirror.c24 static u64 sparx5_mirror_port_get(struct sparx5 *sparx5, u32 idx) in sparx5_mirror_port_get() argument
28 val = spx5_rd(sparx5, ANA_AC_PROBE_PORT_CFG(idx)); in sparx5_mirror_port_get()
30 if (is_sparx5(sparx5)) in sparx5_mirror_port_get()
31 val |= (u64)spx5_rd(sparx5, ANA_AC_PROBE_PORT_CFG1(idx)) << 32; in sparx5_mirror_port_get()
37 static void sparx5_mirror_port_add(struct sparx5 *sparx5, u32 idx, u32 portno) in sparx5_mirror_port_add() argument
45 return spx5_rmw(val, val, sparx5, ANA_AC_PROBE_PORT_CFG(idx)); in sparx5_mirror_port_add()
47 return spx5_rmw(val, val, sparx5, ANA_AC_PROBE_PORT_CFG1(idx)); in sparx5_mirror_port_add()
51 static void sparx5_mirror_port_del(struct sparx5 *sparx5, u32 idx, u32 portno) in sparx5_mirror_port_del() argument
59 return spx5_rmw(0, val, sparx5, ANA_AC_PROBE_PORT_CFG(idx)); in sparx5_mirror_port_del()
61 return spx5_rmw(0, val, sparx5, ANA_AC_PROBE_PORT_CFG1(idx)); in sparx5_mirror_port_del()
[all …]
H A Dsparx5_port.c78 static int sparx5_get_dev2g5_status(struct sparx5 *sparx5, in sparx5_get_dev2g5_status() argument
87 value = spx5_rd(sparx5, DEV2G5_PCS1G_STICKY(portno)); in sparx5_get_dev2g5_status()
90 spx5_wr(value, sparx5, DEV2G5_PCS1G_STICKY(portno)); in sparx5_get_dev2g5_status()
93 value = spx5_rd(sparx5, DEV2G5_PCS1G_LINK_STATUS(portno)); in sparx5_get_dev2g5_status()
105 value = spx5_rd(sparx5, DEV2G5_PCS1G_ANEG_STATUS(portno)); in sparx5_get_dev2g5_status()
113 value = spx5_rd(sparx5, DEV2G5_PCS1G_ANEG_CFG(portno)); in sparx5_get_dev2g5_status()
121 static int sparx5_get_sfi_status(struct sparx5 *sparx5, in sparx5_get_sfi_status() argument
135 dev = sparx5_to_high_dev(sparx5, portno); in sparx5_get_sfi_status()
136 tinst = sparx5_port_dev_index(sparx5, portno); in sparx5_get_sfi_status()
137 inst = spx5_inst_get(sparx5, dev, tinst); in sparx5_get_sfi_status()
[all …]
H A Dsparx5_calendar.c37 static u32 sparx5_target_bandwidth(struct sparx5 *sparx5) in sparx5_target_bandwidth() argument
39 switch (sparx5->target_ct) { in sparx5_target_bandwidth()
118 enum sparx5_cal_bw sparx5_get_port_cal_speed(struct sparx5 *sparx5, u32 portno) in sparx5_get_port_cal_speed() argument
122 if (portno >= sparx5->data->consts->n_ports) { in sparx5_get_port_cal_speed()
125 sparx5_get_internal_port(sparx5, SPX5_PORT_CPU_0) || in sparx5_get_port_cal_speed()
127 sparx5_get_internal_port(sparx5, SPX5_PORT_CPU_1)) { in sparx5_get_port_cal_speed()
131 sparx5_get_internal_port(sparx5, SPX5_PORT_VD0)) { in sparx5_get_port_cal_speed()
135 sparx5_get_internal_port(sparx5, SPX5_PORT_VD1)) { in sparx5_get_port_cal_speed()
139 sparx5_get_internal_port(sparx5, SPX5_PORT_VD2)) { in sparx5_get_port_cal_speed()
147 port = sparx5->ports[portno]; in sparx5_get_port_cal_speed()
[all …]
H A Dsparx5_ethtool.c201 static void sparx5_get_queue_sys_stats(struct sparx5 *sparx5, int portno) in sparx5_get_queue_sys_stats() argument
208 portstats = &sparx5->stats[portno * sparx5->num_stats]; in sparx5_get_queue_sys_stats()
209 mutex_lock(&sparx5->queue_stats_lock); in sparx5_get_queue_sys_stats()
210 spx5_wr(XQS_STAT_CFG_STAT_VIEW_SET(portno), sparx5, XQS_STAT_CFG); in sparx5_get_queue_sys_stats()
214 sparx5_update_counter(stats, spx5_rd(sparx5, XQS_CNT(addr))); in sparx5_get_queue_sys_stats()
218 sparx5_update_counter(stats, spx5_rd(sparx5, XQS_CNT(addr))); in sparx5_get_queue_sys_stats()
222 sparx5_update_counter(stats, spx5_rd(sparx5, XQS_CNT(addr))); in sparx5_get_queue_sys_stats()
224 spx5_rd(sparx5, XQS_CNT(32))); in sparx5_get_queue_sys_stats()
226 spx5_rd(sparx5, XQS_CNT(272))); in sparx5_get_queue_sys_stats()
227 mutex_unlock(&sparx5->queue_stats_lock); in sparx5_get_queue_sys_stats()
[all …]
H A Dsparx5_vcap_debugfs.c76 static void sparx5_vcap_is0_port_keys(struct sparx5 *sparx5, in sparx5_vcap_is0_port_keys() argument
90 value = spx5_rd(sparx5, in sparx5_vcap_is0_port_keys()
119 static void sparx5_vcap_is2_port_keys(struct sparx5 *sparx5, in sparx5_vcap_is2_port_keys() argument
133 value = spx5_rd(sparx5, ANA_ACL_VCAP_S2_CFG(port->portno)); in sparx5_vcap_is2_port_keys()
141 value = spx5_rd(sparx5, in sparx5_vcap_is2_port_keys()
232 static void sparx5_vcap_is2_port_stickies(struct sparx5 *sparx5, in sparx5_vcap_is2_port_stickies() argument
243 value = spx5_rd(sparx5, ANA_ACL_SEC_LOOKUP_STICKY(lookup)); in sparx5_vcap_is2_port_stickies()
282 spx5_wr(value, sparx5, ANA_ACL_SEC_LOOKUP_STICKY(lookup)); in sparx5_vcap_is2_port_stickies()
287 static void sparx5_vcap_es0_port_keys(struct sparx5 *sparx5, in sparx5_vcap_es0_port_keys() argument
299 value = spx5_rd(sparx5, REW_ES0_CTRL); in sparx5_vcap_es0_port_keys()
[all …]
H A Dsparx5_tc_matchall.c53 struct sparx5 *sparx5; in sparx5_tc_matchall_replace() local
73 sparx5 = port->sparx5; in sparx5_tc_matchall_replace()
103 err = vcap_enable_lookups(sparx5->vcap_ctrl, ndev, in sparx5_tc_matchall_replace()
133 list_add_tail(&mall_entry->list, &sparx5->mall_entries); in sparx5_tc_matchall_replace()
143 struct sparx5 *sparx5 = port->sparx5; in sparx5_tc_matchall_destroy() local
147 entry = sparx5_tc_matchall_entry_find(&sparx5->mall_entries, in sparx5_tc_matchall_destroy()
155 err = vcap_enable_lookups(sparx5->vcap_ctrl, ndev, in sparx5_tc_matchall_destroy()
172 struct sparx5 *sparx5 = port->sparx5; in sparx5_tc_matchall_stats() local
175 entry = sparx5_tc_matchall_entry_find(&sparx5->mall_entries, in sparx5_tc_matchall_stats()
H A DMakefile6 obj-$(CONFIG_SPARX5_SWITCH) += sparx5-switch.o
8 sparx5-switch-y := sparx5_main.o sparx5_packet.o \
16 sparx5-switch-$(CONFIG_SPARX5_DCB) += sparx5_dcb.o
17 sparx5-switch-$(CONFIG_DEBUG_FS) += sparx5_vcap_debugfs.o
19 sparx5-switch-$(CONFIG_LAN969X_SWITCH) += lan969x/lan969x_regs.o \
/linux/drivers/net/ethernet/microchip/sparx5/lan969x/
H A Dlan969x.c123 static u32 lan969x_get_dev_mode_bit(struct sparx5 *sparx5, int port) in lan969x_get_dev_mode_bit() argument
143 static u32 lan969x_port_dev_mapping(struct sparx5 *sparx5, int port) in lan969x_port_dev_mapping() argument
187 static int lan969x_port_mux_set(struct sparx5 *sparx5, struct sparx5_port *port, in lan969x_port_mux_set() argument
199 spx5_rmw(BIT(inst), BIT(inst), sparx5, PORT_CONF_QSGMII_ENA); in lan969x_port_mux_set()
210 struct sparx5 *sparx5 = args; in lan969x_ptp_irq_handler() local
221 val = spx5_rd(sparx5, PTP_TWOSTEP_CTRL); in lan969x_ptp_irq_handler()
236 port = sparx5->ports[txport]; in lan969x_ptp_irq_handler()
239 delay = spx5_rd(sparx5, PTP_TWOSTEP_STAMP_NSEC); in lan969x_ptp_irq_handler()
247 sparx5, PTP_TWOSTEP_CTRL); in lan969x_ptp_irq_handler()
249 val = spx5_rd(sparx5, PTP_TWOSTEP_CTRL); in lan969x_ptp_irq_handler()
[all …]
H A Dlan969x.h68 int lan969x_dsm_calendar_calc(struct sparx5 *sparx5, u32 taxi,
76 int lan969x_fdma_init(struct sparx5 *sparx5);
77 int lan969x_fdma_deinit(struct sparx5 *sparx5);
79 int lan969x_fdma_xmit(struct sparx5 *sparx5, u32 *ifh, struct sk_buff *skb,
H A Dlan969x_calendar.c77 int lan969x_dsm_calendar_calc(struct sparx5 *sparx5, u32 taxi, in lan969x_dsm_calendar_calc() argument
86 taxi_bw = (128 * 1000000) / sparx5_clk_period(sparx5->coreclock); in lan969x_dsm_calendar_calc()
95 bw = sparx5_get_port_cal_speed(sparx5, portno); in lan969x_dsm_calendar_calc()
97 if (portno < sparx5->data->consts->n_ports_all) in lan969x_dsm_calendar_calc()
/linux/arch/arm64/boot/dts/microchip/
H A Dsparx5.dtsi8 #include <dt-bindings/clock/microchip,sparx5.h>
11 compatible = "microchip,sparx5";
86 compatible = "microchip,sparx5-dpll";
125 compatible = "microchip,sparx5-cpu-syscon", "syscon",
141 compatible = "microchip,sparx5-switch-reset";
177 compatible = "microchip,sparx5-spi";
196 compatible = "microchip,dw-sparx5-sdhci";
210 compatible = "microchip,sparx5-pinctrl";
303 compatible = "microchip,sparx5-sgpio";
312 compatible = "microchip,sparx5-sgpio-bank";
[all …]
H A Dsparx5_pcb135.dts12 compatible = "microchip,sparx5-pcb135", "microchip,sparx5";
H A Dsparx5_pcb134.dts12 compatible = "microchip,sparx5-pcb134", "microchip,sparx5";
H A Dsparx5_pcb134_emmc.dts11 compatible = "microchip,sparx5-pcb134", "microchip,sparx5";
H A Dsparx5_pcb135_emmc.dts11 compatible = "microchip,sparx5-pcb135", "microchip,sparx5";
H A Dsparx5_pcb125.dts11 compatible = "microchip,sparx5-pcb125", "microchip,sparx5";
H A Dsparx5_pcb_common.dtsi7 #include "sparx5.dtsi"
/linux/drivers/net/ethernet/microchip/
H A DMakefile14 obj-$(CONFIG_SPARX5_SWITCH) += sparx5/
H A DKconfig62 source "drivers/net/ethernet/microchip/sparx5/Kconfig"
/linux/Documentation/devicetree/bindings/power/reset/
H A Docelot-reset.txt12 "mscc,jaguar2-chip-reset" or "microchip,sparx5-chip-reset"
/linux/Documentation/hwmon/
H A Dsparx5-temp.rst10 Prefix: 'sparx5-temp'
/linux/drivers/reset/
H A DMakefile24 obj-$(CONFIG_RESET_MCHP_SPARX5) += reset-microchip-sparx5.o
/linux/arch/arm/boot/dts/microchip/
H A Dlan966x.dtsi561 compatible = "microchip,sparx5-sgpio";
571 compatible = "microchip,sparx5-sgpio-bank";
581 compatible = "microchip,sparx5-sgpio-bank";

12