/linux/include/linux/ |
H A D | pruss_driver.h | 13 #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 paren 95 struct pruss { global() struct 99 mem_regionspruss global() argument 100 mem_in_usepruss global() argument 108 iep_clk_muxpruss global() argument 129 pruss_put(struct pruss * pruss) pruss_put() argument 131 pruss_request_mem_region(struct pruss * pruss,enum pruss_mem mem_id,struct pruss_mem_region * region) pruss_request_mem_region() argument 138 pruss_release_mem_region(struct pruss * pruss,struct pruss_mem_region * region) pruss_release_mem_region() argument 144 pruss_cfg_get_gpmux(struct pruss * pruss,enum pruss_pru_id pru_id,u8 * mux) pruss_cfg_get_gpmux() argument 150 pruss_cfg_set_gpmux(struct pruss * pruss,enum pruss_pru_id pru_id,u8 mux) pruss_cfg_set_gpmux() argument 156 pruss_cfg_gpimode(struct pruss * pruss,enum pruss_pru_id pru_id,enum pruss_gpi_mode mode) pruss_cfg_gpimode() argument 163 pruss_cfg_miirt_enable(struct pruss * pruss,bool enable) pruss_cfg_miirt_enable() argument 168 pruss_cfg_xfr_enable(struct pruss * pruss,enum pru_type pru_type,bool enable) pruss_cfg_xfr_enable() argument [all...] |
/linux/drivers/soc/ti/ |
H A D | pruss.c | 26 #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 devic 58 struct pruss *pruss; pruss_get() local 89 pruss_put(struct pruss * pruss) pruss_put() argument 112 pruss_request_mem_region(struct pruss * pruss,enum pruss_mem mem_id,struct pruss_mem_region * region) pruss_request_mem_region() argument 145 pruss_release_mem_region(struct pruss * pruss,struct pruss_mem_region * region) pruss_release_mem_region() argument 182 pruss_cfg_get_gpmux(struct pruss * pruss,enum pruss_pru_id pru_id,u8 * mux) pruss_cfg_get_gpmux() argument 206 pruss_cfg_set_gpmux(struct pruss * pruss,enum pruss_pru_id pru_id,u8 mux) pruss_cfg_set_gpmux() argument 229 pruss_cfg_gpimode(struct pruss * pruss,enum pruss_pru_id pru_id,enum pruss_gpi_mode mode) pruss_cfg_gpimode() argument 250 pruss_cfg_miirt_enable(struct pruss * pruss,bool enable) pruss_cfg_miirt_enable() argument 267 pruss_cfg_xfr_enable(struct pruss * pruss,enum pru_type pru_type,bool enable) pruss_cfg_xfr_enable() argument 302 pruss_clk_mux_setup(struct pruss * pruss,struct clk * clk_mux,char * mux_name,struct device_node * clks_np) pruss_clk_mux_setup() argument 381 pruss_clk_init(struct pruss * pruss,struct device_node * cfg_node) pruss_clk_init() argument 410 pruss_of_setup_memories(struct device * dev,struct pruss * pruss) pruss_of_setup_memories() argument 466 pruss_cfg_of_init(struct device * dev,struct pruss * pruss) pruss_cfg_of_init() argument 506 struct pruss *pruss; pruss_probe() local [all...] |
H A D | pruss.h | 50 * 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 79 pruss_cfg_update(struct pruss * pruss,unsigned int reg,unsigned int mask,unsigned int val) pruss_cfg_update() argument [all...] |
H A D | Makefile | 13 obj-$(CONFIG_TI_PRUSS) += pruss.o
|
/linux/Documentation/devicetree/bindings/soc/ti/ |
H A D | ti,pruss.yaml | 4 $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 # fo [all...] |
/linux/arch/arm/boot/dts/ti/omap/ |
H A D | am57-pruss.dtsi | 5 * 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...] |
H A D | am4372.dtsi | 420 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";
|
H A D | am5718.dtsi | 7 #include "am57-pruss.dtsi"
|
H A D | am5728.dtsi | 7 #include "am57-pruss.dtsi"
|
H A D | am5748.dtsi | 7 #include "am57-pruss.dtsi"
|
/linux/drivers/irqchip/ |
H A D | irq-pruss-intc.c | 25 * 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 interrup [all...] |
/linux/arch/arm64/boot/dts/ti/ |
H A D | k3-am654-idk.dtso | 30 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 */ 97 firmware-name = "ti-pruss/am65x-sr2-pru0-prueth-fw.elf", 98 "ti-pruss/am65x-sr2-rtu0-prueth-fw.elf", 99 "ti-pruss/am65 [all...] |
H A D | k3-am65-iot2050-common-pg1.dtsi | 49 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 */
|
H A D | k3-am654-icssg2.dtso | 28 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 */
|
H A D | k3-am642-phyboard-electra-rdk.dts | 71 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 */
|
H A D | k3-am642-sr-som.dtsi | 35 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
|
H A D | k3-am65-iot2050-common.dtsi | 151 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 */
|
H A D | k3-am642-evm.dts | 252 firmware-name = "ti-pruss/am64x-sr2-pru0-prueth-fw.elf", 253 "ti-pruss/am64x-sr2-rtu0-prueth-fw.elf", 254 "ti-pruss/am64x-sr2-txpru0-prueth-fw.elf", 255 "ti-pruss/am64x-sr2-pru1-prueth-fw.elf", 256 "ti-pruss/am64x-sr2-rtu1-prueth-fw.elf", 257 "ti-pruss/am64x-sr2-txpru1-prueth-fw.elf"; 259 ti,pruss-gp-mux-sel = <2>, /* MII mode */
|
/linux/Documentation/devicetree/bindings/net/ |
H A D | ti,icssg-prueth.yaml | 7 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/Documentation/devicetree/bindings/remoteproc/ |
H A D | ti,pru-rproc.yaml | 14 (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/drivers/remoteproc/ |
H A D | pru_rproc.c | 22 #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, pr in pru_rproc_put() 654 struct pruss *pruss = pru->pruss; pru_d_da_to_va() local [all...] |
H A D | pru_rproc.h | 3 * PRUSS Remote Processor specific types 37 * provides the PRUSS interrupt mapping description. The pru_irq_rsc struct
|
/linux/drivers/net/ethernet/ti/icssg/ |
H A D | icssg_prueth_sr1.c | 21 #include <linux/remoteproc/pruss.h> 28 #define PRUETH_MODULE_DESCRIPTION "PRUSS ICSSG SR1.0 Ethernet driver" 402 .pru = "ti-pruss/am65x-pru0-prueth-fw.elf", 403 .rtu = "ti-pruss/am65x-rtu0-prueth-fw.elf", 406 .pru = "ti-pruss/am65x-pru1-prueth-fw.elf", 407 .rtu = "ti-pruss/am65x-rtu1-prueth-fw.elf", 792 ret = pruss_request_mem_region(prueth->pruss, in prueth_netdev_init() 884 pruss_release_mem_region(prueth->pruss, &emac->dram); in prueth_netdev_init() 903 struct pruss *pruss; in prueth_probe() local [all...] |
H A D | icssg_prueth.h | 29 #include <linux/remoteproc/pruss.h> 273 * @pruss: pruss handle 277 * @shram: PRUSS shared RAM region 314 struct pruss *pruss; member 375 /* get PRUSS SLICE number from prueth_emac */
|
H A D | icssg_prueth.c | 29 #include <linux/remoteproc/pruss.h> 39 #define PRUETH_MODULE_DESCRIPTION "PRUSS ICSSG Ethernet driver" 1171 ret = pruss_request_mem_region(prueth->pruss, in prueth_netdev_init() 1276 pruss_release_mem_region(prueth->pruss, &emac->dram); in prueth_netdev_init() 1702 struct pruss *pruss; in prueth_probe() local 1798 pruss = pruss_get(eth0_node ? in prueth_probe() 1800 if (IS_ERR(pruss)) { in prueth_probe() 1801 ret = PTR_ERR(pruss); in prueth_probe() 1802 dev_err(dev, "unable to get pruss handle\n"); in prueth_probe() 1806 prueth->pruss = pruss; in prueth_probe() [all …]
|