Home
last modified time | relevance | path

Searched full:pruss (Results 1 – 25 of 49) sorted by relevance

12

/linux-6.12.1/drivers/soc/ti/
Dpruss.c26 #include "pruss.h"
29 * struct pruss_private_data - PRUSS driver private data
30 * @has_no_sharedram: flag to indicate the absence of PRUSS Shared Data RAM
31 * @has_core_mux_clock: flag to indicate the presence of PRUSS core clock
39 * pruss_get() - get the pruss for a given PRU remoteproc
42 * Finds the parent pruss device for a PRU given the @rproc handle of the
43 * PRU remote processor. This function increments the pruss device's refcount,
44 * so always use pruss_put() to decrement it back once pruss isn't needed
51 * Return: pruss handle on success, and an ERR_PTR on failure using one
54 * -ENODEV if PRU device or PRUSS device is not found
[all …]
Dpruss.h50 * pruss_cfg_read() - read a PRUSS CFG sub-module register
51 * @pruss: the pruss instance handle
55 * Reads a given register within the PRUSS CFG sub-module and
60 static int pruss_cfg_read(struct pruss *pruss, unsigned int reg, unsigned int *val) in pruss_cfg_read() argument
62 if (IS_ERR_OR_NULL(pruss)) in pruss_cfg_read()
65 return regmap_read(pruss->cfg_regmap, reg, val); in pruss_cfg_read()
69 * pruss_cfg_update() - configure a PRUSS CFG sub-module register
70 * @pruss: the pruss instance handle
75 * Programs a given register within the PRUSS CFG sub-module
79 static int pruss_cfg_update(struct pruss *pruss, unsigned int reg, in pruss_cfg_update() argument
[all …]
/linux-6.12.1/include/linux/
Dpruss_driver.h13 #include <linux/remoteproc/pruss.h>
18 * enum pruss_gp_mux_sel - PRUSS GPI/O Mux modes for the
36 * enum pruss_gpi_mode - PRUSS GPI configuration modes, used
63 * enum pruss_mem - PRUSS memory range identifiers
73 * struct pruss_mem_region - PRUSS memory region structure
74 * @va: kernel virtual address of the PRUSS memory region
75 * @pa: physical (bus) address of the PRUSS memory region
76 * @size: size of the PRUSS memory region
85 * struct pruss - PRUSS parent structure
86 * @dev: pruss device pointer
[all …]
/linux-6.12.1/Documentation/devicetree/bindings/soc/ti/
Dti,pruss.yaml4 $id: http://devicetree.org/schemas/soc/ti/ti,pruss.yaml#
16 (PRU-ICSS a.k.a. PRUSS) is present on various TI SoCs such as AM335x, AM437x,
17 Keystone 66AK2G, OMAP-L138/DA850 etc. A PRUSS consists of dual 32-bit RISC
52 as child nodes within this PRUSS node. This node shall be a child of the
60 pattern: "^(pruss|icssg)@[0-9a-f]+$"
64 - ti,am3356-pruss # for AM335x SoC family
65 - ti,am4376-pruss0 # for AM437x SoC family and PRUSS unit 0
66 - ti,am4376-pruss1 # for AM437x SoC family and PRUSS unit 1
67 - ti,am5728-pruss # for AM57xx SoC family
68 - ti,am625-pruss # for K3 AM62x SoC family
[all …]
/linux-6.12.1/Documentation/devicetree/bindings/interrupt-controller/
Dti,pruss-intc.yaml4 $id: http://devicetree.org/schemas/interrupt-controller/ti,pruss-intc.yaml#
17 various other PRUSS internal and external peripherals. The first 2 output
20 including the MPU and/or other PRUSS instances, DSPs or devices.
24 defined, it implies that all the PRUSS INTC output interrupts 2 through 9
33 corresponding PRUSS node. The node should be named "interrupt-controller".
41 - ti,pruss-intc
44 Use "ti,pruss-intc" for OMAP-L13x/AM18x/DA850 SoCs,
88 Bitmask of host interrupts between 0 and 7 (corresponding to PRUSS INTC
114 pruss: pruss@0 {
115 compatible = "ti,am3356-pruss";
[all …]
/linux-6.12.1/arch/arm/boot/dts/ti/omap/
Dam57-pruss.dtsi5 * Common PRUSS data for TI AM57xx platforms
10 compatible = "ti,sysc-pruss", "ti,sysc";
29 pruss1: pruss@0 {
30 compatible = "ti,am5728-pruss";
45 compatible = "ti,pruss-cfg", "syscon";
65 compatible = "ti,pruss-mii", "syscon";
70 compatible = "ti,pruss-intc";
119 compatible = "ti,sysc-pruss", "ti,sysc";
138 pruss2: pruss@0 {
139 compatible = "ti,am5728-pruss";
[all …]
Dam4372.dtsi420 compatible = "ti,sysc-pruss", "ti,sysc";
440 pruss1: pruss@0 {
456 compatible = "ti,pruss-cfg", "syscon";
476 compatible = "ti,pruss-mii", "syscon";
481 compatible = "ti,pruss-intc";
528 pruss0: pruss@40000 {
542 compatible = "ti,pruss-cfg", "syscon";
562 compatible = "ti,pruss-mii", "syscon";
568 compatible = "ti,pruss-intc";
Dam5718.dtsi7 #include "am57-pruss.dtsi"
Dam5728.dtsi7 #include "am57-pruss.dtsi"
Dam5748.dtsi7 #include "am57-pruss.dtsi"
/linux-6.12.1/drivers/irqchip/
Dirq-pruss-intc.c25 * is not the same as the total number of host interrupts supported by the PRUSS
85 * @num_system_events: number of input system events handled by the PRUSS INTC
87 * channels) supported by the PRUSS INTC
95 * struct pruss_intc - PRUSS interrupt controller structure
98 * @irqs: kernel irq numbers corresponding to PRUSS host interrupts
101 * @soc_config: cached PRUSS INTC IP configuration data
102 * @dev: PRUSS INTC device pointer
113 struct mutex lock; /* PRUSS INTC lock */
117 * struct pruss_host_irq_data - PRUSS host irq data structure
118 * @intc: PRUSS interrupt controller pointer
[all …]
/linux-6.12.1/drivers/net/ethernet/ti/icssg/
Dicssg_prueth.c29 #include <linux/remoteproc/pruss.h>
39 #define PRUETH_MODULE_DESCRIPTION "PRUSS ICSSG Ethernet driver"
130 .pru = "ti-pruss/am65x-sr2-pru0-pruhsr-fw.elf",
131 .rtu = "ti-pruss/am65x-sr2-rtu0-pruhsr-fw.elf",
132 .txpru = "ti-pruss/am65x-sr2-txpru0-pruhsr-fw.elf",
135 .pru = "ti-pruss/am65x-sr2-pru1-pruhsr-fw.elf",
136 .rtu = "ti-pruss/am65x-sr2-rtu1-pruhsr-fw.elf",
137 .txpru = "ti-pruss/am65x-sr2-txpru1-pruhsr-fw.elf",
143 .pru = "ti-pruss/am65x-sr2-pru0-prusw-fw.elf",
144 .rtu = "ti-pruss/am65x-sr2-rtu0-prusw-fw.elf",
[all …]
Dicssg_prueth_sr1.c21 #include <linux/remoteproc/pruss.h>
28 #define PRUETH_MODULE_DESCRIPTION "PRUSS ICSSG SR1.0 Ethernet driver"
404 .pru = "ti-pruss/am65x-pru0-prueth-fw.elf",
405 .rtu = "ti-pruss/am65x-rtu0-prueth-fw.elf",
408 .pru = "ti-pruss/am65x-pru1-prueth-fw.elf",
409 .rtu = "ti-pruss/am65x-rtu1-prueth-fw.elf",
772 ret = pruss_request_mem_region(prueth->pruss, in prueth_netdev_init()
864 pruss_release_mem_region(prueth->pruss, &emac->dram); in prueth_netdev_init()
883 struct pruss *pruss; in prueth_probe() local
973 pruss = pruss_get(eth0_node ? in prueth_probe()
[all …]
Dicssg_prueth.h26 #include <linux/remoteproc/pruss.h>
227 * @pruss: pruss handle
231 * @shram: PRUSS shared RAM region
263 struct pruss *pruss; member
317 /* get PRUSS SLICE number from prueth_emac */
/linux-6.12.1/arch/arm64/boot/dts/ti/
Dk3-am654-idk.dtso30 firmware-name = "ti-pruss/am65x-sr2-pru0-prueth-fw.elf",
31 "ti-pruss/am65x-sr2-rtu0-prueth-fw.elf",
32 "ti-pruss/am65x-sr2-txpru0-prueth-fw.elf",
33 "ti-pruss/am65x-sr2-pru1-prueth-fw.elf",
34 "ti-pruss/am65x-sr2-rtu1-prueth-fw.elf",
35 "ti-pruss/am65x-sr2-txpru1-prueth-fw.elf";
37 ti,pruss-gp-mux-sel = <2>, /* MII mode */
96 firmware-name = "ti-pruss/am65x-sr2-pru0-prueth-fw.elf",
97 "ti-pruss/am65x-sr2-rtu0-prueth-fw.elf",
98 "ti-pruss/am65x-sr2-txpru0-prueth-fw.elf",
[all …]
Dk3-am65-iot2050-common-pg1.dtsi49 firmware-name = "ti-pruss/am65x-pru0-prueth-fw.elf",
50 "ti-pruss/am65x-rtu0-prueth-fw.elf",
51 "ti-pruss/am65x-pru1-prueth-fw.elf",
52 "ti-pruss/am65x-rtu1-prueth-fw.elf";
54 ti,pruss-gp-mux-sel = <2>, /* MII mode */
Dk3-am654-icssg2.dtso28 firmware-name = "ti-pruss/am65x-sr2-pru0-prueth-fw.elf",
29 "ti-pruss/am65x-sr2-rtu0-prueth-fw.elf",
30 "ti-pruss/am65x-sr2-txpru0-prueth-fw.elf",
31 "ti-pruss/am65x-sr2-pru1-prueth-fw.elf",
32 "ti-pruss/am65x-sr2-rtu1-prueth-fw.elf",
33 "ti-pruss/am65x-sr2-txpru1-prueth-fw.elf";
35 ti,pruss-gp-mux-sel = <2>, /* MII mode */
Dk3-am642-phyboard-electra-rdk.dts71 firmware-name = "ti-pruss/am65x-sr2-pru0-prueth-fw.elf",
72 "ti-pruss/am65x-sr2-rtu0-prueth-fw.elf",
73 "ti-pruss/am65x-sr2-txpru0-prueth-fw.elf",
74 "ti-pruss/am65x-sr2-pru1-prueth-fw.elf",
75 "ti-pruss/am65x-sr2-rtu1-prueth-fw.elf",
76 "ti-pruss/am65x-sr2-txpru1-prueth-fw.elf";
93 ti,pruss-gp-mux-sel = <2>, /* MII mode */
Dk3-am642-sr-som.dtsi35 firmware-name = "ti-pruss/am65x-sr2-pru0-prueth-fw.elf",
36 "ti-pruss/am65x-sr2-rtu0-prueth-fw.elf",
37 "ti-pruss/am65x-sr2-txpru0-prueth-fw.elf",
38 "ti-pruss/am65x-sr2-pru1-prueth-fw.elf",
39 "ti-pruss/am65x-sr2-rtu1-prueth-fw.elf",
40 "ti-pruss/am65x-sr2-txpru1-prueth-fw.elf";
43 ti,pruss-gp-mux-sel = <2>, <2>, <2>, <2>, <2>, <2>;
54 * Documentation/devicetree/bindings/interrupt-controller/ti,pruss-intc.yaml
Dk3-am65-iot2050-common.dtsi151 firmware-name = "ti-pruss/am65x-sr2-pru0-prueth-fw.elf",
152 "ti-pruss/am65x-sr2-rtu0-prueth-fw.elf",
153 "ti-pruss/am65x-sr2-txpru0-prueth-fw.elf",
154 "ti-pruss/am65x-sr2-pru1-prueth-fw.elf",
155 "ti-pruss/am65x-sr2-rtu1-prueth-fw.elf",
156 "ti-pruss/am65x-sr2-txpru1-prueth-fw.elf";
158 ti,pruss-gp-mux-sel = <2>, /* MII mode */
Dk3-am642-evm.dts240 firmware-name = "ti-pruss/am64x-sr2-pru0-prueth-fw.elf",
241 "ti-pruss/am64x-sr2-rtu0-prueth-fw.elf",
242 "ti-pruss/am64x-sr2-txpru0-prueth-fw.elf",
243 "ti-pruss/am64x-sr2-pru1-prueth-fw.elf",
244 "ti-pruss/am64x-sr2-rtu1-prueth-fw.elf",
245 "ti-pruss/am64x-sr2-txpru1-prueth-fw.elf";
247 ti,pruss-gp-mux-sel = <2>, /* MII mode */
/linux-6.12.1/Documentation/devicetree/bindings/net/
Dti,icssg-prueth.yaml7 title: Texas Instruments ICSSG PRUSS Ethernet
179 firmware-name = "ti-pruss/am65x-pru0-prueth-fw.elf",
180 "ti-pruss/am65x-rtu0-prueth-fw.elf",
181 "ti-pruss/am65x-txpru0-prueth-fw.elf",
182 "ti-pruss/am65x-pru1-prueth-fw.elf",
183 "ti-pruss/am65x-rtu1-prueth-fw.elf",
184 "ti-pruss/am65x-txpru1-prueth-fw.elf";
185 ti,pruss-gp-mux-sel = <2>, /* MII mode */
/linux-6.12.1/Documentation/devicetree/bindings/remoteproc/
Dti,pru-rproc.yaml14 (PRU-ICSS or PRUSS) has two 32-bit load/store RISC CPU cores called
32 Documentation/devicetree/bindings/soc/ti/ti,pruss.yaml
74 to interrupt-controller/ti,pruss-intc.yaml schema.
120 compatible = "ti,sysc-pruss", "ti,sysc";
125 pruss: pruss@0 {
126 compatible = "ti,am3356-pruss";
/linux-6.12.1/drivers/remoteproc/
Dpru_rproc.c22 #include <linux/remoteproc/pruss.h>
97 * @id: id of the PRU core within the PRUSS
99 * @pruss: back-reference to parent PRUSS structure
118 struct pruss *pruss; member
259 ret = pruss_cfg_get_gpmux(pru->pruss, pru->id, &pru->gpmux_save); in pru_rproc_get()
266 ret = of_property_read_u32_index(np, "ti,pruss-gp-mux-sel", index, in pru_rproc_get()
269 ret = pruss_cfg_set_gpmux(pru->pruss, pru->id, mux); in pru_rproc_get()
314 pruss_cfg_set_gpmux(pru->pruss, pru->id, pru->gpmux_save); in pru_rproc_put()
547 * corresponding sibling PRUSS INTC node. in pru_handle_intrmap()
645 * Each PRU has access to all data memories within the PRUSS, accessible at
[all …]
Dpru_rproc.h3 * PRUSS Remote Processor specific types
37 * provides the PRUSS interrupt mapping description. The pru_irq_rsc struct

12