Commit 1d79dca6 authored by Arnd Bergmann's avatar Arnd Bergmann
Browse files

Merge tag 'omap-for-v5.13/ti-sysc-signed' of...

Merge tag 'omap-for-v5.13/ti-sysc-signed' of git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap into arm/drivers

Driver changes for omaps for genpd support for v5.13

In order to move omap4/5 and dra7 to probe with devicetree data and genpd,
we need to patch the related drivers to prepare.

These are mostly ti-sysc interconnect target module driver changes and soc
init changes. However, there are minor changes to other drivers too. There
are changes for pci-dra7xx probe, omap-prm idle configuration, and a omap5
clock change:

- ti-sysc needs iorange check improved when the interconnect target module
  has no control registers listed

- ti-sysc needs to probe l4_wkup and l4_cfg interconnects first to avoid
  issues with missing resources and unnecessary deferred probe

- ti-sysc debug option can now detect more devices

- ti-sysc now warns if an old incomplete devicetree data is found as we
  now rely on it being complete for am3 and 4

- soc init code needs to check for prcm and prm nodes for omap4/5 and
  dra7

- omap-prm driver needs to enable autoidle retention support for omap4

- omap5 clocks are missing gpmc and ocmc clock registers

- pci-dra7xx now needs to use builtin_platform_driver instead of using
  builtin_platform_driver_probe for deferred probe to work

There are also few minor non-urgent fixes:

- soc init code pdata_quirks_init_clocks should be static

- ti-sysc has few unneeded semiconon typos

- ti-sysc can use kzalloc instead of kcalloc for a single element

* tag 'omap-for-v5.13/ti-sysc-signed' of git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap:
  bus: ti-sysc: Use kzalloc for allocating only one thing
  bus: ti-sysc: remove unneeded semicolon
  ARM: OMAP2+: Make symbol 'pdata_quirks_init_clocks' static
  PCI: pci-dra7xx: Prepare for deferred probe with module_platform_driver
  clk: ti: omap5: Add missing gpmc and ocmc clkctrl
  soc: ti: omap-prm: Allow hardware supported retention when idle
  ARM: OMAP2+: Init both prm and prcm nodes early for clocks
  bus: ti-sysc: Check for old incomplete dtb
  bus: ti-sysc: Detect more modules for debugging
  bus: ti-sysc: Probe for l4_wkup and l4_cfg interconnect devices first
  bus: ti-sysc: Fix initializing module_pa for modules without sysc register
  ARM: dts: Fix moving mmc devices with aliases for omap4 & 5
  ARM: dts: Drop duplicate sha2md5_fck to fix clk_disable race
  soc: ti: omap-prm: Fix occasional abort on reset deassert for dra7 iva
  bus: ti-sysc: Fix warning on unbind if reset is not deasserted
  ARM: OMAP2+: Fix smartreflex init regression after dropping legacy data
  soc: ti: omap-prm: Fix reboot issue with invalid pcie reset map for dra7
  ARM: dts: am33xx: add aliases for mmc interfaces
  bus: omap_l3_noc: mark l3 irqs as IRQF_NO_THREAD

Link: https://lore.kernel.org/r/pull-1617004205-537424@atomide.com


Signed-off-by: default avatarArnd Bergmann <arnd@arndb.de>
parents 7da68c64 d995d3d0
Loading
Loading
Loading
Loading
+3 −0
Original line number Diff line number Diff line
@@ -40,6 +40,9 @@ aliases {
		ethernet1 = &cpsw_emac1;
		spi0 = &spi0;
		spi1 = &spi1;
		mmc0 = &mmc1;
		mmc1 = &mmc2;
		mmc2 = &mmc3;
	};

	cpus {
+5 −0
Original line number Diff line number Diff line
@@ -22,6 +22,11 @@ aliases {
		i2c1 = &i2c2;
		i2c2 = &i2c3;
		i2c3 = &i2c4;
		mmc0 = &mmc1;
		mmc1 = &mmc2;
		mmc2 = &mmc3;
		mmc3 = &mmc4;
		mmc4 = &mmc5;
		serial0 = &uart1;
		serial1 = &uart2;
		serial2 = &uart3;
+0 −8
Original line number Diff line number Diff line
@@ -770,14 +770,6 @@ per_abe_nc_fclk: per_abe_nc_fclk@108 {
		ti,max-div = <2>;
	};

	sha2md5_fck: sha2md5_fck@15c8 {
		#clock-cells = <0>;
		compatible = "ti,gate-clock";
		clocks = <&l3_div_ck>;
		ti,bit-shift = <1>;
		reg = <0x15c8>;
	};

	usb_phy_cm_clk32k: usb_phy_cm_clk32k@640 {
		#clock-cells = <0>;
		compatible = "ti,gate-clock";
+5 −0
Original line number Diff line number Diff line
@@ -25,6 +25,11 @@ aliases {
		i2c2 = &i2c3;
		i2c3 = &i2c4;
		i2c4 = &i2c5;
		mmc0 = &mmc1;
		mmc1 = &mmc2;
		mmc2 = &mmc3;
		mmc3 = &mmc4;
		mmc4 = &mmc5;
		serial0 = &uart1;
		serial1 = &uart2;
		serial2 = &uart3;
+21 −8
Original line number Diff line number Diff line
@@ -569,10 +569,29 @@ static void pdata_quirks_check(struct pdata_init *quirks)
	}
}

void __init pdata_quirks_init(const struct of_device_id *omap_dt_match_table)
static const char * const pdata_quirks_init_nodes[] = {
	"prcm",
	"prm",
};

static void __init
pdata_quirks_init_clocks(const struct of_device_id *omap_dt_match_table)
{
	struct device_node *np;
	int i;

	for (i = 0; i < ARRAY_SIZE(pdata_quirks_init_nodes); i++) {
		np = of_find_node_by_name(NULL, pdata_quirks_init_nodes[i]);
		if (!np)
			continue;

		of_platform_populate(np, omap_dt_match_table,
				     omap_auxdata_lookup, NULL);
	}
}

void __init pdata_quirks_init(const struct of_device_id *omap_dt_match_table)
{
	/*
	 * We still need this for omap2420 and omap3 PM to work, others are
	 * using drivers/misc/sram.c already.
@@ -585,13 +604,7 @@ void __init pdata_quirks_init(const struct of_device_id *omap_dt_match_table)
		omap3_mcbsp_init();
	pdata_quirks_check(auxdata_quirks);

	/* Populate always-on PRCM in l4_wkup to probe l4_wkup */
	np = of_find_node_by_name(NULL, "prcm");
	if (!np)
		np = of_find_node_by_name(NULL, "prm");
	if (np)
		of_platform_populate(np, omap_dt_match_table,
				     omap_auxdata_lookup, NULL);
	pdata_quirks_init_clocks(omap_dt_match_table);

	of_platform_populate(NULL, omap_dt_match_table,
			     omap_auxdata_lookup, NULL);
Loading