linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Suman Anna <s-anna@ti.com>
To: Tony Lindgren <tony@atomide.com>
Cc: Roger Quadros <rogerq@ti.com>, Tero Kristo <t-kristo@ti.com>,
	<linux-omap@vger.kernel.org>, <linux-kernel@vger.kernel.org>,
	<devicetree@vger.kernel.org>, Suman Anna <s-anna@ti.com>
Subject: [PATCH 00/12] ti-sysc support for PRUSS
Date: Tue, 25 Feb 2020 14:46:37 -0600	[thread overview]
Message-ID: <20200225204649.28220-1-s-anna@ti.com> (raw)

Hi Tony,

The following series adds the ti-sysc support for the PRUSS IP present
on some AM33xx, AM437x and AM57xx SoCs. This series is a revamped and
more complete version of the previous attempt [1] made last year and
includes support for AM33xx and AM437x now that the reset dependencies
are fully upstream. The OCP master ports are not enabled by default
now, and the ti-sysc bus driver only handles the important quirk needed
for suspend/resume on AM33xx and AM437x SoCs.

The series includes patches for both the ti-sysc bindings and the bus
driver, along with all the DTS nodes. Patches are based on 5.6-rc1. The
dts nodes can be added added independently of the corresponding hwmod
cleanup [2]. This forms the foundation before the rest of the PRUSS
platform drivers can be added. Please consider the series for 5.7, and
I can post the PRUSS platform driver and/or PRUSS INTC driver for 5.8.

The integration of the IP is different on different SoC families, and
following are some differences:
 1. AM33xx and AM437x SoCs need a PRCM reset line to be deasserted as well
    to be able to access any PRUSS registers.
 2. AM437x has two PRUSS instances, with the smaller PRU-ICSS0 connected
    through the larger PRU-ICSS1. There is only a single interconnect target
    node added. AM57xx has no reset lines,
    and only requires the module to be enabled.
 3. AM57xx has two identical instances, but do not require any reset lines.
 4. PRUSS is present only on some SoCs on each SoC family:
      - AM3356 and above SoCs on AM335x family
      - AM4376 and above SoCs on AM437x family
      - AM57xx SoCs only; not supported on DRA7xx SoCs.

The sanity testing can be done by turning on the power through the sysfs for
now. These will be taken care of automatically when the PRUSS platform driver
will invoke the pm_runtime_get_sync() and put_sync() as the PRUSS nodes will
be children of the ti-sysc interconnect nodes.
 1. AM335x
      echo on > /sys/bus/platform/devices/4a326000.target-module/power/control
 2. AM437x
      echo on > /sys/bus/platform/devices/54426000.target-module/power/control
 3. AM57xx
      echo on > /sys/bus/platform/devices/4b226000.target-module/power/control
      echo on > /sys/bus/platform/devices/4b2a6000.target-module/power/control

Here are the version numbers from the CFG sub-module on these IPs that are
used for the ti-sysc quirks:
 AM335x			: 0x47000000 
 AM437x PRUSS1		: 0x47000200
 AM437x PRUSS0  	: 0x47010100
 AM57xx PRUSS0 & PRUSS1	: 0x47000201

regards
Suman

[1] https://patchwork.kernel.org/cover/10796015/
[2] https://patchwork.kernel.org/cover/11402083/

Roger Quadros (1):
  dt-bindings: bus: ti-sysc: Add support for PRUSS SYSC type

Suman Anna (11):
  bus: ti-sysc: Add support for PRUSS SYSC type
  ARM: dts: AM33xx-l4: Update PRUSS interconnect target-module node
  ARM: dts: AM4372: Add the PRU-ICSS interconnect target-module node
  ARM: dts: dra7: Add PRU-ICSS interconnect target-module nodes
  ARM: dts: am335x-bone-common: Enable PRU-ICSS interconnect node
  ARM: dts: am335x-evm: Enable PRU-ICSS interconnect node
  ARM: dts: am335x-evmsk: Enable PRU-ICSS interconnect node
  ARM: dts: am335x-icev2: Enable PRU-ICSS interconnect node
  ARM: dts: am437x-gp-evm: Enable PRU-ICSS interconnect node
  ARM: dts: am437x-sk: Enable PRU-ICSS interconnect node
  ARM: dts: am437x-idk: Enable PRU-ICSS interconnect node

 .../devicetree/bindings/bus/ti-sysc.txt       |  1 +
 arch/arm/boot/dts/am335x-bone-common.dtsi     |  4 ++
 arch/arm/boot/dts/am335x-evm.dts              |  4 ++
 arch/arm/boot/dts/am335x-evmsk.dts            |  4 ++
 arch/arm/boot/dts/am335x-icev2.dts            |  4 ++
 arch/arm/boot/dts/am33xx-l4.dtsi              | 21 ++++++--
 arch/arm/boot/dts/am4372.dtsi                 | 23 +++++++++
 arch/arm/boot/dts/am437x-gp-evm.dts           |  4 ++
 arch/arm/boot/dts/am437x-idk-evm.dts          |  4 ++
 arch/arm/boot/dts/am437x-sk-evm.dts           |  4 ++
 arch/arm/boot/dts/am57-pruss.dtsi             | 50 +++++++++++++++++++
 arch/arm/boot/dts/am5718.dtsi                 |  1 +
 arch/arm/boot/dts/am5728.dtsi                 |  1 +
 arch/arm/boot/dts/am5748.dtsi                 |  1 +
 arch/arm/boot/dts/dra7.dtsi                   |  2 +-
 drivers/bus/ti-sysc.c                         | 27 ++++++++++
 include/dt-bindings/bus/ti-sysc.h             |  4 ++
 include/linux/platform_data/ti-sysc.h         |  2 +
 18 files changed, 157 insertions(+), 4 deletions(-)
 create mode 100644 arch/arm/boot/dts/am57-pruss.dtsi

-- 
2.23.0


             reply	other threads:[~2020-02-25 20:47 UTC|newest]

Thread overview: 24+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-02-25 20:46 Suman Anna [this message]
2020-02-25 20:46 ` [PATCH 01/12] dt-bindings: bus: ti-sysc: Add support for PRUSS SYSC type Suman Anna
2020-02-26  8:42   ` Roger Quadros
2020-02-26 16:38     ` Suman Anna
2020-02-26 18:31       ` Tony Lindgren
2020-02-25 20:46 ` [PATCH 02/12] " Suman Anna
2020-02-25 20:46 ` [PATCH 03/12] ARM: dts: AM33xx-l4: Update PRUSS interconnect target-module node Suman Anna
2020-02-25 20:46 ` [PATCH 04/12] ARM: dts: AM4372: Add the PRU-ICSS " Suman Anna
2020-02-25 20:46 ` [PATCH 05/12] ARM: dts: dra7: Add PRU-ICSS interconnect target-module nodes Suman Anna
2020-02-25 20:46 ` [PATCH 06/12] ARM: dts: am335x-bone-common: Enable PRU-ICSS interconnect node Suman Anna
2020-02-26 18:29   ` Tony Lindgren
2020-02-26 20:34     ` Suman Anna
2020-02-26 22:37       ` Tony Lindgren
2020-02-26 22:39         ` Tony Lindgren
2020-02-27  0:58           ` Suman Anna
2020-02-27  2:07             ` Tony Lindgren
2020-02-27 21:28               ` Suman Anna
2020-02-27 21:30                 ` Tony Lindgren
2020-02-25 20:46 ` [PATCH 07/12] ARM: dts: am335x-evm: " Suman Anna
2020-02-25 20:46 ` [PATCH 08/12] ARM: dts: am335x-evmsk: " Suman Anna
2020-02-25 20:46 ` [PATCH 09/12] ARM: dts: am335x-icev2: " Suman Anna
2020-02-25 20:46 ` [PATCH 10/12] ARM: dts: am437x-gp-evm: " Suman Anna
2020-02-25 20:46 ` [PATCH 11/12] ARM: dts: am437x-sk: " Suman Anna
2020-02-25 20:46 ` [PATCH 12/12] ARM: dts: am437x-idk: " Suman Anna

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20200225204649.28220-1-s-anna@ti.com \
    --to=s-anna@ti.com \
    --cc=devicetree@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-omap@vger.kernel.org \
    --cc=rogerq@ti.com \
    --cc=t-kristo@ti.com \
    --cc=tony@atomide.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).