Home
last modified time | relevance | path

Searched full:sparx5 (Results 1 – 25 of 54) sorted by relevance

123

/linux/drivers/net/ethernet/microchip/sparx5/
H A Dsparx5_ptp.c2 /* Microchip Sparx5 Switch driver
6 * The Sparx5 Chip Register Model can be browsed at this location:
25 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()
[all …]
H A Dsparx5_main.c2 /* Microchip Sparx5 Switch driver
6 * The Sparx5 Chip Register Model can be browsed at this location:
215 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
[all …]
H A Dsparx5_mirror.c2 /* Microchip Sparx5 Switch driver
24 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()
[all …]
H A Dsparx5_port.c2 /* Microchip Sparx5 Switch driver
78 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()
[all …]
H A Dsparx5_ethtool.c2 /* Microchip Sparx5 Switch driver
201 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()
[all …]
H A Dsparx5_calendar.c2 /* Microchip Sparx5 Switch driver
37 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()
[all …]
H A Dsparx5_vcap_debugfs.c2 /* Microchip Sparx5 Switch driver VCAP debugFS implementation
76 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
[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 DMakefile3 # Makefile for the Microchip Sparx5 network device drivers.
6 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/vcap/
H A Dvcap_ag_api.h28 VCAP_KFS_ARP, /* sparx5 is2 X6, sparx5 es2 X6, lan966x is2 X2 */
31 VCAP_KFS_ETAG, /* sparx5 is0 X2 */
32 VCAP_KFS_IP4_OTHER, /* sparx5 is2 X6, sparx5 es2 X6, lan966x is2 X2 */
33 VCAP_KFS_IP4_TCP_UDP, /* sparx5 is2 X6, sparx5 es2 X6, lan966x is2 X2 */
34 VCAP_KFS_IP4_VID, /* sparx5 es2 X3 */
36 VCAP_KFS_IP6_STD, /* sparx5 is2 X6, sparx5 es2 X6, lan966x is2 X2 */
38 VCAP_KFS_IP6_VID, /* sparx5 es2 X6 */
39 VCAP_KFS_IP_7TUPLE, /* sparx5 is2 X12, sparx5 es2 X12 */
40 VCAP_KFS_ISDX, /* sparx5 es0 X1 */
41 VCAP_KFS_LL_FULL, /* sparx5 is0 X6 */
[all …]
/linux/Documentation/devicetree/bindings/arm/
H A Dmicrochip,sparx5.yaml4 $id: http://devicetree.org/schemas/arm/microchip,sparx5.yaml#
7 title: Microchip Sparx5 Boards
13 The Microchip Sparx5 SoC is a ARMv8-based used in a family of
27 - description: The Sparx5 pcb125 board is a modular board,
31 - const: microchip,sparx5-pcb125
32 - const: microchip,sparx5
34 - description: The Sparx5 pcb134 is a pizzabox form factor
38 - const: microchip,sparx5-pcb134
39 - const: microchip,sparx5
41 - description: The Sparx5 pcb135 is a pizzabox form factor
[all …]
/linux/drivers/net/ethernet/microchip/sparx5/lan969x/
H A Dlan969x.h10 #include "../sparx5/sparx5_main.h"
11 #include "../sparx5/sparx5_regs.h"
12 #include "../sparx5/sparx5_vcap_impl.h"
68 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.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_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.dts11 model = "Sparx5 PCB135 Reference Board (NAND)";
12 compatible = "microchip,sparx5-pcb135", "microchip,sparx5";
H A Dsparx5_pcb134.dts11 model = "Sparx5 PCB134 Reference Board (NAND)";
12 compatible = "microchip,sparx5-pcb134", "microchip,sparx5";
H A Dsparx5_pcb134_emmc.dts10 model = "Sparx5 PCB134 Reference Board (eMMC enabled)";
11 compatible = "microchip,sparx5-pcb134", "microchip,sparx5";
H A Dsparx5_pcb135_emmc.dts10 model = "Sparx5 PCB135 Reference Board (eMMC enabled)";
11 compatible = "microchip,sparx5-pcb135", "microchip,sparx5";
/linux/Documentation/devicetree/bindings/hwmon/
H A Dmicrochip,sparx5-temp.yaml4 $id: http://devicetree.org/schemas/hwmon/microchip,sparx5-temp.yaml#
7 title: Microchip Sparx5 Temperature Monitor
13 Microchip Sparx5 embedded temperature monitor
18 - microchip,sparx5-temp
40 compatible = "microchip,sparx5-temp";
/linux/Documentation/devicetree/bindings/clock/
H A Dmicrochip,sparx5-dpll.yaml4 $id: http://devicetree.org/schemas/clock/microchip,sparx5-dpll.yaml#
7 title: Microchip Sparx5 DPLL Clock
13 The Sparx5 DPLL clock controller generates and supplies clock to
18 const: microchip,sparx5-dpll
46 compatible = "microchip,sparx5-dpll";
/linux/Documentation/devicetree/bindings/mmc/
H A Dmicrochip,dw-sparx5-sdhci.yaml4 $id: http://devicetree.org/schemas/mmc/microchip,dw-sparx5-sdhci.yaml#
7 title: Microchip Sparx5 Mobile Storage Host Controller
18 const: microchip,dw-sparx5-sdhci
54 #include <dt-bindings/clock/microchip,sparx5.h>
56 compatible = "microchip,dw-sparx5-sdhci";
/linux/Documentation/devicetree/bindings/pinctrl/
H A Dmicrochip,sparx5-sgpio.yaml4 $id: http://devicetree.org/schemas/pinctrl/microchip,sparx5-sgpio.yaml#
25 - microchip,sparx5-sgpio
83 const: microchip,sparx5-sgpio-bank
144 compatible = "microchip,sparx5-sgpio";
153 compatible = "microchip,sparx5-sgpio-bank";
162 compatible = "microchip,sparx5-sgpio-bank";
/linux/Documentation/devicetree/bindings/soc/microchip/
H A Dmicrochip,sparx5-cpu-syscon.yaml4 $id: http://devicetree.org/schemas/soc/microchip/microchip,sparx5-cpu-syscon.yaml#
7 title: Microchip Sparx5 CPU Syscon
15 - const: microchip,sparx5-cpu-syscon
39 compatible = "microchip,sparx5-cpu-syscon", "syscon",
/linux/Documentation/devicetree/bindings/reset/
H A Dmicrochip,rst.yaml7 title: Microchip Sparx5 Switch Reset Controller
14 The Microchip Sparx5 Switch provides reset control and implements the following
24 - microchip,sparx5-switch-reset
54 compatible = "microchip,sparx5-switch-reset";

123