[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <66e2139c-ab45-40ee-93bf-557768614216@ti.com>
Date: Fri, 2 May 2025 16:08:15 -0500
From: Judith Mendez <jm@...com>
To: Nishanth Menon <nm@...com>
CC: Vignesh Raghavendra <vigneshr@...com>, Tero Kristo <kristo@...nel.org>,
Rob Herring <robh@...nel.org>,
Krzysztof Kozlowski <krzk+dt@...nel.org>,
Conor Dooley <conor+dt@...nel.org>,
<linux-arm-kernel@...ts.infradead.org>, <devicetree@...r.kernel.org>,
<linux-kernel@...r.kernel.org>, Hari Nagalla
<hnagalla@...com>,
Beleswar Padhi <b-padhi@...com>
Subject: Re: [PATCH v2] arm64: dts: ti: k3-am62-main: Add PRUSS-M node
Hi Nishanth,
On 5/2/25 7:24 AM, Nishanth Menon wrote:
> On 09:43-20250430, Judith Mendez wrote:
>> From: Kishon Vijay Abraham I <kishon@...com>
>>
>> Add the DT node for the PRUSS-M processor subsystem that is present
>> on the K3 AM62x SoCs. The K3 AM62x family of SoC has one PRUSS-M
>> instance and it has two Programmable Real-Time Units (PRU0 and PRU1).
>>
>> Signed-off-by: Kishon Vijay Abraham I <kishon@...com>
>> [ Judith: Fix pruss_iclk id for pruss_coreclk_mux ]
>> Signed-off-by: Judith Mendez <jm@...com>
>> ---
>> Changelog:
>> - drop internal tags
>> - rebase against ti-k3-dts-next
>> - fix header
>>
>> Link to v1:
>> https://lore.kernel.org/linux-devicetree/20250108222048.818835-1-jm@ti.com/
>> ---
>> arch/arm64/boot/dts/ti/k3-am62-main.dtsi | 90 ++++++++++++++++++++++++
>> 1 file changed, 90 insertions(+)
>>
>> diff --git a/arch/arm64/boot/dts/ti/k3-am62-main.dtsi b/arch/arm64/boot/dts/ti/k3-am62-main.dtsi
>> index 7d355aa73ea2..ee53e663b5bd 100644
>> --- a/arch/arm64/boot/dts/ti/k3-am62-main.dtsi
>> +++ b/arch/arm64/boot/dts/ti/k3-am62-main.dtsi
>> @@ -1079,6 +1079,96 @@ dphy0: phy@...10000 {
>> status = "disabled";
>> };
>>
>> + pruss: pruss@...40000 {
>> + compatible = "ti,am625-pruss";
>> + reg = <0x00 0x30040000 0x00 0x80000>;
>> + power-domains = <&k3_pds 81 TI_SCI_PD_EXCLUSIVE>;
>> + #address-cells = <1>;
>> + #size-cells = <1>;
>> + ranges = <0x0 0x00 0x30040000 0x80000>;
>
> Should this not be default disabled? pruss needs pinmux to operate
> correctly, right?
No, PRU node does not need pinmux to work properly. ATM we are using
RPMSG echo test as the default experience and this does not require
any pinmux configuration since signals are internal to the SoC. Now
it is possible for an application to use a PRU GPO for ex and then they
would require pinmux but it is application specific.
~ Judith
>
>> +
>> + pruss_mem: memories@0 {
>> + reg = <0x0 0x2000>,
>> + <0x2000 0x2000>,
>> + <0x10000 0x10000>;
>> + reg-names = "dram0", "dram1", "shrdram2";
>> + };
>> +
>> + pruss_cfg: cfg@...00 {
>> + compatible = "ti,pruss-cfg", "syscon";
>> + reg = <0x26000 0x200>;
>> + #address-cells = <1>;
>> + #size-cells = <1>;
>> + ranges = <0x0 0x26000 0x2000>;
>> +
>> + clocks {
>> + #address-cells = <1>;
>> + #size-cells = <0>;
>> +
>> + pruss_coreclk_mux: coreclk-mux@3c {
>> + reg = <0x3c>;
>> + #clock-cells = <0>;
>> + clocks = <&k3_clks 81 0>, /* pruss_core_clk */
>> + <&k3_clks 81 14>; /* pruss_iclk */
>> + assigned-clocks = <&pruss_coreclk_mux>;
>> + assigned-clock-parents = <&k3_clks 81 14>;
>> + };
>> +
>> + pruss_iepclk_mux: iepclk-mux@30 {
>> + reg = <0x30>;
>> + #clock-cells = <0>;
>> + clocks = <&k3_clks 81 3>, /* pruss_iep_clk */
>> + <&pruss_coreclk_mux>; /* pruss_coreclk_mux */
>> + assigned-clocks = <&pruss_iepclk_mux>;
>> + assigned-clock-parents = <&pruss_coreclk_mux>;
>> + };
>> + };
>> + };
>> +
>> + pruss_intc: interrupt-controller@...00 {
>> + compatible = "ti,pruss-intc";
>> + reg = <0x20000 0x2000>;
>> + interrupt-controller;
>> + #interrupt-cells = <3>;
>> + interrupts = <GIC_SPI 88 IRQ_TYPE_LEVEL_HIGH>,
>> + <GIC_SPI 89 IRQ_TYPE_LEVEL_HIGH>,
>> + <GIC_SPI 90 IRQ_TYPE_LEVEL_HIGH>,
>> + <GIC_SPI 91 IRQ_TYPE_LEVEL_HIGH>,
>> + <GIC_SPI 92 IRQ_TYPE_LEVEL_HIGH>,
>> + <GIC_SPI 93 IRQ_TYPE_LEVEL_HIGH>,
>> + <GIC_SPI 94 IRQ_TYPE_LEVEL_HIGH>,
>> + <GIC_SPI 95 IRQ_TYPE_LEVEL_HIGH>;
>> + interrupt-names = "host_intr0", "host_intr1",
>> + "host_intr2", "host_intr3",
>> + "host_intr4", "host_intr5",
>> + "host_intr6", "host_intr7";
>> + };
>> +
>> + pru0: pru@...00 {
>> + compatible = "ti,am625-pru";
>> + reg = <0x34000 0x3000>,
>> + <0x22000 0x100>,
>> + <0x22400 0x100>;
>> + reg-names = "iram", "control", "debug";
>> + firmware-name = "am62x-pru0-fw";
>> + interrupt-parent = <&pruss_intc>;
>> + interrupts = <16 2 2>;
>> + interrupt-names = "vring";
>> + };
>> +
>> + pru1: pru@...00 {
>> + compatible = "ti,am625-pru";
>> + reg = <0x38000 0x3000>,
>> + <0x24000 0x100>,
>> + <0x24400 0x100>;
>> + reg-names = "iram", "control", "debug";
>> + firmware-name = "am62x-pru1-fw";
>> + interrupt-parent = <&pruss_intc>;
>> + interrupts = <18 3 3>;
>> + interrupt-names = "vring";
>> + };
>> + };
>> +
>> gpmc0: memory-controller@...00000 {
>> compatible = "ti,am64-gpmc";
>> power-domains = <&k3_pds 80 TI_SCI_PD_EXCLUSIVE>;
>> --
>> 2.49.0
>>
>>
>
Powered by blists - more mailing lists