Commit Graph

996214 Commits

Author SHA1 Message Date
Tony Lindgren
083516ad54 Merge tags 'genpd-dts-dra7', 'genpd-dts-omap4' and 'genpd-dts-omap5' into omap-for-v5.13/dts-genpd
Merge together genpd related dts changes to provide base for dropping the
legacy data to prevent merge conflicts and to send dts changes separately.
2021-03-10 14:16:34 +02:00
Tony Lindgren
e180887946 ARM: dts: Configure simple-pm-bus for omap5 l3
We can now probe interconnects with device tree only configuration using
simple-pm-bus and genpd.

Signed-off-by: Tony Lindgren <tony@atomide.com>
2021-03-10 14:04:58 +02:00
Tony Lindgren
abd1d31d82 ARM: dts: Configure simple-pm-bus for omap5 l4_cfg
We can now probe interconnects with device tree only configuration using
simple-pm-bus and genpd.

Signed-off-by: Tony Lindgren <tony@atomide.com>
2021-03-10 14:04:58 +02:00
Tony Lindgren
6fe4ff9016 ARM: dts: Configure simple-pm-bus for omap5 l4_per
We can now probe interconnects with device tree only configuration using
simple-pm-bus and genpd.

Signed-off-by: Tony Lindgren <tony@atomide.com>
2021-03-10 14:04:58 +02:00
Tony Lindgren
689919e6e2 ARM: dts: Configure simple-pm-bus for omap5 l4_wkup
We can now probe interconnects with device tree only configuration using
simple-pm-bus and genpd.

Signed-off-by: Tony Lindgren <tony@atomide.com>
2021-03-10 14:04:57 +02:00
Tony Lindgren
d1d16959fe ARM: dts: Move omap5 l3-noc to a separate node
In preparation for probing l3 with simple-pm-bus and genpd, we must move
l3 noc to a separate node. This is to prevent omap_l3_noc.c driver from
claiming the whole l3 instance before simple-pm-bus has a chance to probe.

Signed-off-by: Tony Lindgren <tony@atomide.com>
2021-03-10 14:04:57 +02:00
Tony Lindgren
a571cc3941 ARM: dts: Move omap5 mmio-sram out of l3 interconnect
We need mmio-sram early for omap4_sram_init() for IO barrier init, and
will be moving l3 interconnect to probe with simple-pm-bus that probes
at module_init() time. So let's move mmio-sram out of l3 to prepare for
that.

Otherwise we will get the following after probing the interconnects with
simple-pm-bus:

omap4_sram_init:Unable to get sram pool needed to handle errata I688

Signed-off-by: Tony Lindgren <tony@atomide.com>
2021-03-10 14:04:57 +02:00
Tony Lindgren
41ccb66237 ARM: dts: Configure interconnect target module for omap5 sata
We can now probe devices with device tree only configuration using
ti-sysc interconnect target module driver. Let's configure the
module, but keep the legacy "ti,hwmods" peroperty to avoid new boot
time warnings. The legacy property will be removed in later patches
together with the legacy platform data.

Note that the old sysc register offset is wrong, the real offset is at
0x1100 as listed in TRM for SATA_SYSCONFIG register. Looks like we've been
happily using sata on the bootloader configured sysconfig register and
nobody noticed. Also the old register range for SATAMAC_wrapper registers
is wrong at 7 while it should be 8. But that too seems harmless.

There is also an L3 parent interconnect range that we don't seem to be
using. That can be added as needed later on.

Signed-off-by: Tony Lindgren <tony@atomide.com>
2021-03-10 14:04:56 +02:00
Tony Lindgren
5f89cdc103 ARM: dts: Configure interconnect target module for omap5 gpmc
We can now probe devices with device tree only configuration using
ti-sysc interconnect target module driver. Let's configure the
module, but keep the legacy "ti,hwmods" property to avoid new boot
time warnings. The legacy property will be removed in later patches
together with the legacy platform data.

Signed-off-by: Tony Lindgren <tony@atomide.com>
2021-03-10 14:04:56 +02:00
Tony Lindgren
0e666eb531 ARM: dts: Configure interconnect target module for omap5 mpu
We can now probe devices with device tree only configuration using
ti-sysc interconnect target module driver.

Signed-off-by: Tony Lindgren <tony@atomide.com>
2021-03-10 14:04:55 +02:00
Tony Lindgren
9921f0b9d0 ARM: dts: Configure interconnect target module for omap5 emif
We can now probe devices with device tree only configuration using
ti-sysc interconnect target module driver. Let's configure the
module, but keep the legacy "ti,hwmods" property to avoid new boot
time warnings. The legacy property will be removed in later patches
together with the legacy platform data.

Signed-off-by: Tony Lindgren <tony@atomide.com>
2021-03-10 14:04:55 +02:00
Tony Lindgren
84864f8d2c ARM: dts: Configure interconnect target module for omap5 dmm
We can now probe devices with device tree only configuration using
ti-sysc interconnect target module driver. Let's configure the
module, but keep the legacy "ti,hwmods" property to avoid new boot
time warnings. The legacy property will be removed in later patches
together with the legacy platform data.

Signed-off-by: Tony Lindgren <tony@atomide.com>
2021-03-10 14:04:54 +02:00
Tony Lindgren
e1d4a11d68 ARM: dts: Prepare for simple-pm-bus for omap4 l3
Let's configure omap4 l3 for power-domain and clocks in preparation for
starting to use simple-pm-bus. We will flip over to using simple-pm-bus
later on after dropping the legacy data for all the devices on l3
interconnect.

Signed-off-by: Tony Lindgren <tony@atomide.com>
2021-03-10 14:04:33 +02:00
Tony Lindgren
9a1d0c2837 ARM: dts: Configure simple-pm-bus for omap4 l4_cfg
We can now probe interconnects with device tree only configuration using
simple-pm-bus and genpd.

Signed-off-by: Tony Lindgren <tony@atomide.com>
2021-03-10 14:04:32 +02:00
Tony Lindgren
67dcfdc4a6 ARM: dts: Configure simple-pm-bus for omap4 l4_per
We can now probe interconnects with device tree only configuration using
simple-pm-bus and genpd.

Signed-off-by: Tony Lindgren <tony@atomide.com>
2021-03-10 14:04:32 +02:00
Tony Lindgren
d978b69fa7 ARM: dts: Configure simple-pm-bus for omap4 l4_wkup
We can now probe interconnects with device tree only configuration using
simple-pm-bus and genpd.

Signed-off-by: Tony Lindgren <tony@atomide.com>
2021-03-10 14:04:31 +02:00
Tony Lindgren
bacc83e5ee ARM: dts: Move omap4 l3-noc to a separate node
In preparation for probing l3 with simple-pm-bus and genpd, we must move
l3 noc to a separate node. This is to prevent omap_l3_noc.c driver from
claiming the whole l3 instance before simple-pm-bus has a chance to probe.

Signed-off-by: Tony Lindgren <tony@atomide.com>
2021-03-10 14:04:31 +02:00
Tony Lindgren
fbe8285d65 ARM: dts: Move omap4 mmio-sram out of l3 interconnect
We need mmio-sram early for omap4_sram_init() for IO barrier init, and
will be moving l3 interconnect to probe with simple-pm-bus that probes
at module_init() time. So let's move mmio-sram out of l3 to prepare for
that.

Otherwise we will get the following after probing the interconnects with
simple-pm-bus:

omap4_sram_init:Unable to get sram pool needed to handle errata I688

Signed-off-by: Tony Lindgren <tony@atomide.com>
2021-03-10 14:04:31 +02:00
Tony Lindgren
e55cc3f040 ARM: dts: Configure interconnect target module for omap4 mpu
We can now probe devices with device tree only configuration using
ti-sysc interconnect target module driver.

Signed-off-by: Tony Lindgren <tony@atomide.com>
2021-03-10 14:04:30 +02:00
Tony Lindgren
932ddde183 ARM: dts: Configure interconnect target module for omap4 debugss
We can now probe devices with device tree only configuration using
ti-sysc interconnect target module driver. Let's configure the
module, but keep the legacy "ti,hwmods" property to avoid new boot
time warnings. The legacy property will be removed in later patches
together with the legacy platform data.

Signed-off-by: Tony Lindgren <tony@atomide.com>
2021-03-10 14:04:30 +02:00
Tony Lindgren
0600dabe34 ARM: dts: Configure interconnect target module for omap4 emif
We can now probe devices with device tree only configuration using
ti-sysc interconnect target module driver. Let's configure the
module, but keep the legacy "ti,hwmods" property to avoid new boot
time warnings. The legacy property will be removed in later patches
together with the legacy platform data.

Signed-off-by: Tony Lindgren <tony@atomide.com>
2021-03-10 14:04:29 +02:00
Tony Lindgren
fe85baacd7 ARM: dts: Configure interconnect target module for omap4 dmm
We can now probe devices with device tree only configuration using
ti-sysc interconnect target module driver. Let's configure the
module, but keep the legacy "ti,hwmods" property to avoid new boot
time warnings. The legacy property will be removed in later patches
together with the legacy platform data.

Let's also use GIC_SPI and IRQ_TYPE_LEVEL_HIGH defines while at it.

Signed-off-by: Tony Lindgren <tony@atomide.com>
2021-03-10 14:04:29 +02:00
Tony Lindgren
398c66ed22 ARM: dts: Configure power-domain for omap4 dts iss
Configure power-domain for omap4 dts iss in preparation to
probing devices with simple-pm-bus and genpd.

Signed-off-by: Tony Lindgren <tony@atomide.com>
2021-03-10 14:04:29 +02:00
Tony Lindgren
345ac6b17b ARM: dts: Configure power-domain for omap4 gfx
Configure power-domain for omap4 dts gfx in preparation to
probing devices with simple-pm-bus and genpd.

Signed-off-by: Tony Lindgren <tony@atomide.com>
2021-03-10 14:04:28 +02:00
Tony Lindgren
ecb4c5c096 ARM: dts: Configure simple-pm-bus for dra7 l3
We can now probe interconnects with device tree only configuration using
simple-pm-bus and genpd.

Tested-by: Kishon Vijay Abraham I <kishon@ti.com>
Signed-off-by: Tony Lindgren <tony@atomide.com>
2021-03-10 14:04:07 +02:00
Tony Lindgren
e93e4104a2 ARM: dts: Configure simple-pm-bus for dra7 l4_cfg
We can now probe interconnects with device tree only configuration using
simple-pm-bus and genpd.

Tested-by: Kishon Vijay Abraham I <kishon@ti.com>
Signed-off-by: Tony Lindgren <tony@atomide.com>
2021-03-10 14:04:07 +02:00
Tony Lindgren
bdfafc8e2b ARM: dts: Configure simple-pm-bus for dra7 l4_per3
We can now probe interconnects with device tree only configuration using
simple-pm-bus and genpd.

Tested-by: Kishon Vijay Abraham I <kishon@ti.com>
Signed-off-by: Tony Lindgren <tony@atomide.com>
2021-03-10 14:04:07 +02:00
Tony Lindgren
26c36e16d4 ARM: dts: Configure simple-pm-bus for dra7 l4_per2
We can now probe interconnects with device tree only configuration using
simple-pm-bus and genpd.

Tested-by: Kishon Vijay Abraham I <kishon@ti.com>
Signed-off-by: Tony Lindgren <tony@atomide.com>
2021-03-10 14:04:07 +02:00
Tony Lindgren
f483a3e123 ARM: dts: Configure simple-pm-bus for dra7 l4_per1
We can now probe interconnects with device tree only configuration using
simple-pm-bus and genpd.

Tested-by: Kishon Vijay Abraham I <kishon@ti.com>
Signed-off-by: Tony Lindgren <tony@atomide.com>
2021-03-10 14:04:07 +02:00
Tony Lindgren
9a75368b64 ARM: dts: Configure simple-pm-bus for dra7 l4_wkup
We can now probe interconnects with device tree only configuration using
simple-pm-bus and genpd.

Tested-by: Kishon Vijay Abraham I <kishon@ti.com>
Signed-off-by: Tony Lindgren <tony@atomide.com>
2021-03-10 14:04:07 +02:00
Tony Lindgren
27559a8bd4 ARM: dts: Configure interconnect target module for dra7 dmm
We can now probe devices with device tree only configuration using
ti-sysc interconnect target module driver. Let's configure the
module, but keep the legacy "ti,hwmods" peroperty to avoid new boot
time warnings. The legacy property will be removed in later patches
together with the legacy platform data.

Tested-by: Kishon Vijay Abraham I <kishon@ti.com>
Signed-off-by: Tony Lindgren <tony@atomide.com>
2021-03-10 14:04:07 +02:00
Tony Lindgren
f5d0aba7c1 ARM: dts: Configure interconnect target module for dra7 mpu
We can now probe devices with device tree only configuration using
ti-sysc interconnect target module driver.

Tested-by: Kishon Vijay Abraham I <kishon@ti.com>
Signed-off-by: Tony Lindgren <tony@atomide.com>
2021-03-10 14:04:07 +02:00
Tony Lindgren
8af15365a3 ARM: dts: Configure interconnect target module for dra7 sata
We can now probe devices with device tree only configuration using
ti-sysc interconnect target module driver. Let's configure the
module, but keep the legacy "ti,hwmods" peroperty to avoid new boot
time warnings. The legacy property will be removed in later patches
together with the legacy platform data.

Note that the old sysc register offset is wrong, the real offset is at
0x1100 as listed in TRM for SATA_SYSCONFIG register. Looks like we've been
happily using sata on the bootloader configured sysconfig register and
nobody noticed. Also the old register range for SATAMAC_wrapper registers
is wrong at 7 while it should be 8. But that too seems harmless.

There is also an L3 parent interconnect range that we don't seem to be
using. That can be added as needed later on.

Tested-by: Kishon Vijay Abraham I <kishon@ti.com>
Signed-off-by: Tony Lindgren <tony@atomide.com>
2021-03-10 14:04:07 +02:00
Tony Lindgren
e2d637b069 ARM: dts: Configure interconnect target module for dra7 qspi
We can now probe devices with device tree only configuration using
ti-sysc interconnect target module driver. Let's configure the
module, but keep the legacy "ti,hwmods" peroperty to avoid new boot
time warnings. The legacy property will be removed in later patches
together with the legacy platform data.

Cc: Vignesh Raghavendra <vigneshr@ti.com>
Tested-by: Kishon Vijay Abraham I <kishon@ti.com>
Signed-off-by: Tony Lindgren <tony@atomide.com>
2021-03-10 14:04:07 +02:00
Tony Lindgren
7f2659ce65 ARM: dts: Move dra7 l3 noc to a separate node
In order to prepare for probing l3 with genpd, we need to move l3 noc
into a separate node for l3 interconnect to have it's own regs, and
to avoid it claiming more than it needs for the io regions.

Tested-by: Kishon Vijay Abraham I <kishon@ti.com>
Signed-off-by: Tony Lindgren <tony@atomide.com>
2021-03-10 14:04:07 +02:00
Tony Lindgren
075249bc55 ARM: dts: Properly configure dra7 edma sysconfig registers
Looks like the TRM is not listing the sysconfig for edma, let's add it
based on am437x TRM edma registers as listed in sections "Table 10-26.
EDMA3CC Registers" and "Table 10-99. EDMA3TC Registers".

Tested-by: Kishon Vijay Abraham I <kishon@ti.com>
Signed-off-by: Tony Lindgren <tony@atomide.com>
2021-03-10 14:04:07 +02:00
Tony Lindgren
785d943c76 ARM: dts: Configure interconnect target module for dra7 pcie
We can now probe devices with device tree only configuration using
ti-sysc interconnect target module driver. Let's configure the
module, but keep the legacy "ti,hwmods" peroperty to avoid new boot
time warnings. The legacy property will be removed in later patches
together with the legacy platform data.

Tested-by: Kishon Vijay Abraham I <kishon@ti.com>
Signed-off-by: Tony Lindgren <tony@atomide.com>
2021-03-10 14:04:07 +02:00
Tony Lindgren
c761028ef5 ARM: dts: Update pcie ranges for dra7
In order to update pcie to probe with ti-sysc and genpd, let's update the
pcie ranges to not use address 0 for 0x20000000 and 0x30000000. The range
for 0 is typically used for child devices as the offset from the module
base. In the following patches, we will update pcie to probe with ti-sysc,
and the patches become a bit confusing to read compared to other similar
modules unless we update the ranges first. So let's just use the full
addresses for ranges for the 0x20000000 and 0x30000000 ranges.

Tested-by: Kishon Vijay Abraham I <kishon@ti.com>
Signed-off-by: Tony Lindgren <tony@atomide.com>
2021-03-10 14:04:07 +02:00
Tony Lindgren
e259c2926c PCI: pci-dra7xx: Prepare for deferred probe with module_platform_driver
After updating pci-dra7xx driver to probe with ti-sysc and genpd, I
noticed that dra7xx_pcie_probe() would not run if a power-domains property
was configured for the interconnect target module.

Turns out that module_platform_driver_probe uses platform_driver_probe(),
while builtin_platform_driver uses platform_driver_register().

Only platform_driver_register() works for deferred probe as noted in the
comments for __platform_driver_probe() in drivers/base/platform.c with a
line saying "Note that this is incompatible with deferred probing".

With module_platform_driver_probe, we have platform_driver_probe() produce
-ENODEV error at device_initcall() level, and no further attempts are done.
Let's fix this by using module_platform_driver instead.

Note this is not an issue currently as we probe devices with simple-bus,
and only is needed as we start probing the device with ti-sysc, or when
probed with simple-pm-bus.

Note that we must now also remove __init for probe related functions to
avoid a section mismatch warning.

Cc: linux-pci@vger.kernel.org
Cc: Bjorn Helgaas <bhelgaas@google.com>
Cc: Lorenzo Pieralisi <lorenzo.pieralisi@arm.com>
Tested-by: Kishon Vijay Abraham I <kishon@ti.com>
Signed-off-by: Tony Lindgren <tony@atomide.com>
2021-03-10 14:01:00 +02:00
Tony Lindgren
7f7acef857 clk: ti: omap5: Add missing gpmc and ocmc clkctrl
The gpmc clock is needed to update omap5 to boot with genpd with the
related devicetree patches. The ocmc clock is currently not used but
let's add it so we have all the clocks for the l3main2 defined.

Cc: Stephen Boyd <sboyd@kernel.org>
Cc: Tero Kristo <kristo@kernel.org>
Signed-off-by: Tony Lindgren <tony@atomide.com>
2021-03-10 13:59:18 +02:00
Tony Lindgren
bc0b964da3 soc: ti: omap-prm: Allow hardware supported retention when idle
When moving the l4 interconnect instances to probe with simple-pm-bus and
genpd, we will have l4per and core domains stop idling unless we configure
the domain bits to allow retention when idle.

As the TI SoCs have hardware autoidle capabilities, this is safe to do.
The domains will only enter retention on WFI when none of the devices on
the domain block autoidle in the hardware. This follows what we are
already currently doing.

Cc: Santosh Shilimkar <ssantosh@kernel.org>
Cc: Tero Kristo <kristo@kernel.org>
Signed-off-by: Tony Lindgren <tony@atomide.com>
2021-03-10 13:59:17 +02:00
Tony Lindgren
a15de032a7 ARM: OMAP2+: Init both prm and prcm nodes early for clocks
We need to probe both prm and prcm nodes early for clocks
as they are needed by system timers.

Signed-off-by: Tony Lindgren <tony@atomide.com>
2021-03-10 13:59:17 +02:00
Tony Lindgren
5f7259a578 bus: ti-sysc: Check for old incomplete dtb
Let's be nice and show an error on the SoCs about old imcomplete devicetree
if the dtb is still using "simple-bus" instead of "simple-pm-bus" for the
root OCP node.

Signed-off-by: Tony Lindgren <tony@atomide.com>
2021-03-10 13:59:17 +02:00
Tony Lindgren
f2dc0755fc bus: ti-sysc: Detect more modules for debugging
We want to see what the interconnect target module names are for
debugging.

Signed-off-by: Tony Lindgren <tony@atomide.com>
2021-03-08 11:35:07 +02:00
Tony Lindgren
4700a00755 bus: ti-sysc: Probe for l4_wkup and l4_cfg interconnect devices first
We want to probe l4_wkup and l4_cfg interconnect devices first to avoid
issues with missing resources. Otherwise we attempt to probe l4_per
devices first causing pointless deferred probe and also annoyingh
renumbering of the MMC devices for example.

Signed-off-by: Tony Lindgren <tony@atomide.com>
2021-03-08 11:35:07 +02:00
Tony Lindgren
7bad5af826 bus: ti-sysc: Fix initializing module_pa for modules without sysc register
We have interconnect target modules with no known registers using only
clocks and resets, but we still want to detect them based on the module
IO range. So let's call sysc_parse_and_check_child_range() earlier so we
have module_pa properly initialized.

Fixes: 2928135c93 ("bus: ti-sysc: Support modules without control registers")
Signed-off-by: Tony Lindgren <tony@atomide.com>
2021-03-08 11:35:06 +02:00
Tony Lindgren
4c9f4865f4 Merge branch 'fixes-rc2' into fixes 2021-03-08 11:34:12 +02:00
Tony Lindgren
77335a0401 ARM: dts: Fix moving mmc devices with aliases for omap4 & 5
Fix moving mmc devices with dts aliases as discussed on the lists.
Without this we now have internal eMMC mmc1 show up as mmc2 compared
to the earlier order of devices.

Signed-off-by: Tony Lindgren <tony@atomide.com>
2021-03-08 11:30:45 +02:00
Tony Lindgren
140a776833 ARM: dts: Drop duplicate sha2md5_fck to fix clk_disable race
We have a duplicate legacy clock defined for sha2md5_fck that can
sometimes race with clk_disable() with the dts configured clock
for OMAP4_SHA2MD5_CLKCTRL when unused clocks are disabled during
boot causing an "Unhandled fault: imprecise external abort".

Signed-off-by: Tony Lindgren <tony@atomide.com>
2021-03-08 11:26:25 +02:00
Linus Torvalds
a38fd87484 Linux 5.12-rc2 v5.12-rc2 2021-03-05 17:33:41 -08:00