ARM: OMAP2+: Stop building legacy code for dra7 and omap4/5
authorTony Lindgren <tony@atomide.com>
Fri, 12 Mar 2021 08:11:24 +0000 (10:11 +0200)
committerTony Lindgren <tony@atomide.com>
Fri, 12 Mar 2021 08:11:24 +0000 (10:11 +0200)
With the recent changes we are now booting am3/4, dra7, and omap4/5
without legacy data using devicetree, simple-pm-bus and genpd. Let's not
initialize and build the legacy data unless CONFIG_OMAP_HWMOD is selected
based on the SoCs enabled in .config.

Signed-off-by: Tony Lindgren <tony@atomide.com>
arch/arm/mach-omap2/Makefile
arch/arm/mach-omap2/io.c
arch/arm/mach-omap2/omap_hwmod.h
arch/arm/mach-omap2/pdata-quirks.c
arch/arm/mach-omap2/sr_device.c

index d03646e2f81f99602091f65341ec2e91b28c11be..8306ad686bc8ed6b135148883d7566f7863afdfc 100644 (file)
@@ -20,14 +20,14 @@ secure-common                               = omap-smc.o omap-secure.o
 
 obj-$(CONFIG_ARCH_OMAP2) += $(omap-2-3-common) $(hwmod-common)
 obj-$(CONFIG_ARCH_OMAP3) += $(omap-2-3-common) $(hwmod-common) $(secure-common)
-obj-$(CONFIG_ARCH_OMAP4) += $(hwmod-common) $(secure-common)
+obj-$(CONFIG_ARCH_OMAP4) += $(secure-common)
 obj-$(CONFIG_SOC_AM33XX) += $(secure-common)
-obj-$(CONFIG_SOC_OMAP5)  += $(hwmod-common) $(secure-common)
+obj-$(CONFIG_SOC_OMAP5)  += $(secure-common)
 obj-$(CONFIG_SOC_AM43XX) += $(secure-common)
-obj-$(CONFIG_SOC_DRA7XX) += $(hwmod-common) $(secure-common)
+obj-$(CONFIG_SOC_DRA7XX) += $(secure-common)
 
 ifneq ($(CONFIG_SND_SOC_OMAP_MCBSP),)
-obj-y += mcbsp.o
+obj-$(CONFIG_OMAP_HWMOD) += mcbsp.o
 endif
 
 obj-$(CONFIG_TWL4030_CORE) += omap_twl.o
index 92648f8a3b4cf94d6f79ce8383b73c24c61991dc..fba0c7aa398cc5e96646f2f79ac9aba544f92378 100644 (file)
@@ -402,6 +402,7 @@ static int __init _omap2_init_reprogram_sdrc(void)
        return v;
 }
 
+#ifdef CONFIG_OMAP_HWMOD
 static int _set_hwmod_postsetup_state(struct omap_hwmod *oh, void *data)
 {
        return omap_hwmod_set_postsetup_state(oh, *(u8 *)data);
@@ -414,6 +415,11 @@ static void __init __maybe_unused omap_hwmod_init_postsetup(void)
        /* Set the default postsetup state for all hwmods */
        omap_hwmod_for_each(_set_hwmod_postsetup_state, &postsetup_state);
 }
+#else
+static inline void omap_hwmod_init_postsetup(void)
+{
+}
+#endif
 
 #ifdef CONFIG_SOC_OMAP2420
 void __init omap2420_init_early(void)
@@ -615,7 +621,6 @@ void __init omap4430_init_early(void)
        omap44xx_voltagedomains_init();
        omap44xx_powerdomains_init();
        omap44xx_clockdomains_init();
-       omap_hwmod_init_postsetup();
        omap_l2_cache_init();
        omap_clk_soc_init = omap4xxx_dt_clk_init;
        omap_secure_init();
index a0835ab8452b7a593a3e1a9239ad0971bb8870c9..6962a8d267e7c210d32a2ac1f64a3d7209b174f0 100644 (file)
@@ -607,6 +607,8 @@ struct omap_hwmod {
        struct omap_hwmod               *parent_hwmod;
 };
 
+#ifdef CONFIG_OMAP_HWMOD
+
 struct device_node;
 
 struct omap_hwmod *omap_hwmod_lookup(const char *name);
@@ -656,6 +658,17 @@ extern void __init omap_hwmod_init(void);
 
 const char *omap_hwmod_get_main_clk(struct omap_hwmod *oh);
 
+#else  /* CONFIG_OMAP_HWMOD */
+
+static inline int
+omap_hwmod_for_each_by_class(const char *classname,
+                            int (*fn)(struct omap_hwmod *oh, void *user),
+                            void *user)
+{
+       return 0;
+}
+#endif /* CONFIG_OMAP_HWMOD */
+
 /*
  *
  */
index 9f304525b1930f6af5cc53e73763c96d67ad6db5..3405aa815a24996d17c59d04c6b9fc8865430e0d 100644 (file)
@@ -443,7 +443,7 @@ void omap_auxdata_legacy_init(struct device *dev)
        dev->platform_data = &twl_gpio_auxdata;
 }
 
-#if IS_ENABLED(CONFIG_SND_SOC_OMAP_MCBSP)
+#if defined(CONFIG_ARCH_OMAP3) && IS_ENABLED(CONFIG_SND_SOC_OMAP_MCBSP)
 static struct omap_mcbsp_platform_data mcbsp_pdata;
 static void __init omap3_mcbsp_init(void)
 {
index 17b66f0d0deef07dc6f48c60c1baf874664a8360..b9a75892f7a7ef41b9151c6b6727ef0309533eeb 100644 (file)
@@ -152,6 +152,7 @@ exit:
        return 0;
 }
 
+#ifdef CONFIG_OMAP_HWMOD
 static int __init sr_dev_init(struct omap_hwmod *oh, void *user)
 {
        struct omap_smartreflex_dev_attr *sr_dev_attr;
@@ -165,6 +166,12 @@ static int __init sr_dev_init(struct omap_hwmod *oh, void *user)
 
        return sr_init_by_name(oh->name, sr_dev_attr->sensor_voltdm_name);
 }
+#else
+static int __init sr_dev_init(struct omap_hwmod *oh, void *user)
+{
+       return -EINVAL;
+}
+#endif
 
 /*
  * API to be called from board files to enable smartreflex