Commit e5d9875e authored by Olof Johansson's avatar Olof Johansson
Browse files

Merge tag 'omap-for-v4.18/ti-sysc-signed' of...

Merge tag 'omap-for-v4.18/ti-sysc-signed' of git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap into next/soc

ti-sysc driver related changes for omap variants

This series improves the ti-sysc interconnect target module driver to
the point where a most of SoC can be booted with interconnect target
module data configured in device tree instead of legacy platform data.
The related device tree changes need some more work though, and can
wait for v4.19. Also some drivers using nested interconnects like DSS
need more work.

We can now remove the unused pm-noop code that is not doing anything
any longer. And we can now initialize things for PM and display pdata
later to prepare things for using ti-sysc driver.

We also need to add  some more quirk handling so we can boot both with
platform data and dts data.

* tag 'omap-for-v4.18/ti-sysc-signed' of git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap

:
  bus: ti-sysc: Show module information for suspend if DEBUG is enabled
  bus: ti-sysc: Tag sdio and wdt with legacy mode for suspend
  bus: ti-sysc: Detect UARTs for SYSC_QUIRK_LEGACY_IDLE quirk on omap4
  bus: ti-sysc: Detect omap4 type timers for quirk
  bus: ti-sysc: Add initial support for external resets
  bus: ti-sysc: Improve suspend and resume handling
  bus: ti-sysc: Tag some modules resource providers for noirq suspend
  bus: ti-sysc: Add handling for clkctrl opt clocks
  bus: ti-sysc: Make child clock alias handling more generic
  bus: ti-sysc: Handle simple-bus for nested children
  ARM: OMAP2+: Make display related init into device_initcall
  ARM: OMAP2+: Initialize SoC PM later
  ARM: OMAP2+: Only probe SDMA via ti-sysc if configured in dts
  ARM: OMAP2+: Use signed value for sysc register offsets
  ARM: OMAP2+: Allow using ti-sysc for system timers
  ARM: OMAP2+: Drop unused pm-noop

Signed-off-by: default avatarOlof Johansson <olof@lixom.net>
parents de6037fa dc4c85ea
Loading
Loading
Loading
Loading
+5 −1
Original line number Diff line number Diff line
@@ -79,7 +79,11 @@ Optional properties:
		mode as for example omap4 L4_CFG_CLKCTRL

- clock-names	should contain at least "fck", and optionally also "ick"
		depending on the SoC and the interconnect target module
		depending on the SoC and the interconnect target module,
		some interconnect target modules also need additional
		optional clocks that can be specified as listed in TRM
		for the related CLKCTRL register bits 8 to 15 such as
		"dbclk" or "clk32k" depending on their role

- ti,hwmods	optional TI interconnect module name to use legacy
		hwmod platform data
+0 −1
Original line number Diff line number Diff line
@@ -78,7 +78,6 @@ endif
omap-4-5-pm-common			= omap-mpuss-lowpower.o
obj-$(CONFIG_ARCH_OMAP4)		+= $(omap-4-5-pm-common)
obj-$(CONFIG_SOC_OMAP5)			+= $(omap-4-5-pm-common)
obj-$(CONFIG_OMAP_PM_NOOP)		+= omap-pm-noop.o

ifeq ($(CONFIG_PM),y)
obj-$(CONFIG_ARCH_OMAP2)		+= pm24xx.o
+0 −2
Original line number Diff line number Diff line
@@ -31,8 +31,6 @@ static const struct of_device_id omap_dt_match_table[] __initconst = {
static void __init __maybe_unused omap_generic_init(void)
{
	pdata_quirks_init(omap_dt_match_table);

	omapdss_init_of();
	omap_soc_device_init();
}

+9 −9
Original line number Diff line number Diff line
@@ -44,6 +44,9 @@

#define OMAP_INTC_START		NR_IRQS

extern int (*omap_pm_soc_init)(void);
int omap_pm_nop_init(void);

#if defined(CONFIG_PM) && defined(CONFIG_ARCH_OMAP2)
int omap2_pm_init(void);
#else
@@ -79,9 +82,12 @@ static inline int omap4_pm_init_early(void)

#if defined(CONFIG_PM) && (defined(CONFIG_SOC_AM33XX) || \
	defined(CONFIG_SOC_AM43XX))
void amx3_common_pm_init(void);
int amx3_common_pm_init(void);
#else
static inline void amx3_common_pm_init(void) { }
static inline int amx3_common_pm_init(void)
{
	return 0;
}
#endif

extern void omap2_init_common_infrastructure(void);
@@ -122,14 +128,10 @@ void am43xx_init_early(void);
void am43xx_init_late(void);
void omap4430_init_early(void);
void omap5_init_early(void);
void omap3_init_late(void);	/* Do not use this one */
void omap3_init_late(void);
void omap4430_init_late(void);
void omap2420_init_late(void);
void omap2430_init_late(void);
void omap3430_init_late(void);
void omap35xx_init_late(void);
void omap3630_init_late(void);
void am35xx_init_late(void);
void ti81xx_init_late(void);
void am33xx_init_late(void);
void omap5_init_late(void);
@@ -350,7 +352,5 @@ extern int omap_dss_reset(struct omap_hwmod *);
/* SoC specific clock initializer */
int omap_clk_init(void);

int __init omapdss_init_of(void);

#endif /* __ASSEMBLER__ */
#endif /* __ARCH_ARM_MACH_OMAP2PLUS_COMMON_H */
+2 −8
Original line number Diff line number Diff line
@@ -32,7 +32,6 @@
#include <linux/platform_data/omapdss.h>
#include "omap_hwmod.h"
#include "omap_device.h"
#include "omap-pm.h"
#include "common.h"

#include "soc.h"
@@ -126,11 +125,6 @@ static void omap_dsi_disable_pads(int dsi_id, unsigned lane_mask)
		omap4_dsi_mux_pads(dsi_id, 0);
}

static int omap_dss_set_min_bus_tput(struct device *dev, unsigned long tput)
{
	return omap_pm_set_min_bus_tput(dev, OCP_INITIATOR_AGENT, tput);
}

static enum omapdss_version __init omap_display_get_version(void)
{
	if (cpu_is_omap24xx())
@@ -169,7 +163,6 @@ static int __init omapdss_init_fbdev(void)
	static struct omap_dss_board_info board_data = {
		.dsi_enable_pads = omap_dsi_enable_pads,
		.dsi_disable_pads = omap_dsi_disable_pads,
		.set_min_bus_tput = omap_dss_set_min_bus_tput,
	};
	struct device_node *node;
	int r;
@@ -392,7 +385,7 @@ static struct device_node * __init omapdss_find_dss_of_node(void)
	return NULL;
}

int __init omapdss_init_of(void)
static int __init omapdss_init_of(void)
{
	int r;
	struct device_node *node;
@@ -422,3 +415,4 @@ int __init omapdss_init_of(void)

	return omapdss_init_fbdev();
}
omap_device_initcall(omapdss_init_of);
Loading