]> git.proxmox.com Git - mirror_ubuntu-bionic-kernel.git/commitdiff
Merge branch 'omap-for-v4.15/fixes-dt' into omap-for-v4.15/ti-sysc
authorTony Lindgren <tony@atomide.com>
Tue, 10 Oct 2017 21:19:47 +0000 (14:19 -0700)
committerTony Lindgren <tony@atomide.com>
Tue, 10 Oct 2017 21:19:47 +0000 (14:19 -0700)
arch/arm/mach-omap2/dma.c
arch/arm/mach-omap2/hdq1w.c
arch/arm/mach-omap2/id.c
arch/arm/mach-omap2/omap_hwmod.c
arch/arm/mach-omap2/omap_hwmod.h
arch/arm/mach-omap2/omap_hwmod_33xx_43xx_interconnect_data.c
arch/arm/mach-omap2/omap_hwmod_33xx_43xx_ipblock_data.c
arch/arm/mach-omap2/soc.h

index 694ce0939d50f2e8182fbf5c12cf90220d544d45..a005e2a23b86b98cdd539c8ec861638049ec0284 100644 (file)
@@ -223,7 +223,7 @@ static struct omap_system_dma_plat_info dma_plat_info __initdata = {
        .dma_read       = dma_read,
 };
 
-static struct platform_device_info omap_dma_dev_info = {
+static struct platform_device_info omap_dma_dev_info __initdata = {
        .name = "omap-dma-engine",
        .id = -1,
        .dma_mask = DMA_BIT_MASK(32),
index f3897d82e53e9ef2c894f8a6a826258608fce1b4..2bc4db23ca565240c0e0e55b93d587cd33593623 100644 (file)
@@ -75,25 +75,3 @@ int omap_hdq1w_reset(struct omap_hwmod *oh)
 
        return 0;
 }
-
-#ifndef CONFIG_OF
-static int __init omap_init_hdq(void)
-{
-       int id = -1;
-       struct platform_device *pdev;
-       struct omap_hwmod *oh;
-       char *oh_name = "hdq1w";
-       char *devname = "omap_hdq";
-
-       oh = omap_hwmod_lookup(oh_name);
-       if (!oh)
-               return 0;
-
-       pdev = omap_device_build(devname, id, oh, NULL, 0);
-       WARN(IS_ERR(pdev), "Can't build omap_device for %s:%s.\n",
-            devname, oh->name);
-
-       return 0;
-}
-omap_arch_initcall(omap_init_hdq);
-#endif
index 16cb1c195fd8ef775c328b1273507875a9e6806b..df2c29edbbcd50444b11add3575d30220643c01d 100644 (file)
@@ -693,9 +693,12 @@ void __init dra7xxx_check_revision(void)
                        omap_revision = DRA722_REV_ES1_0;
                        break;
                case 1:
-               default:
                        omap_revision = DRA722_REV_ES2_0;
                        break;
+               case 2:
+               default:
+                       omap_revision = DRA722_REV_ES2_1;
+                       break;
                }
                break;
 
index 2dbd63239c5486fcba38476ed00f4c208448e899..d50101d44795aac370e4e1801fb2eae2f44e00c9 100644 (file)
@@ -993,6 +993,34 @@ static int _enable_clocks(struct omap_hwmod *oh)
        return 0;
 }
 
+/**
+ * _omap4_clkctrl_managed_by_clkfwk - true if clkctrl managed by clock framework
+ * @oh: struct omap_hwmod *
+ */
+static bool _omap4_clkctrl_managed_by_clkfwk(struct omap_hwmod *oh)
+{
+       if (oh->prcm.omap4.flags & HWMOD_OMAP4_CLKFWK_CLKCTR_CLOCK)
+               return true;
+
+       return false;
+}
+
+/**
+ * _omap4_has_clkctrl_clock - returns true if a module has clkctrl clock
+ * @oh: struct omap_hwmod *
+ */
+static bool _omap4_has_clkctrl_clock(struct omap_hwmod *oh)
+{
+       if (oh->prcm.omap4.clkctrl_offs)
+               return true;
+
+       if (!oh->prcm.omap4.clkctrl_offs &&
+           oh->prcm.omap4.flags & HWMOD_OMAP4_ZERO_CLKCTRL_OFFSET)
+               return true;
+
+       return false;
+}
+
 /**
  * _disable_clocks - disable hwmod main clock and interface clocks
  * @oh: struct omap_hwmod *
@@ -1030,7 +1058,8 @@ static int _disable_clocks(struct omap_hwmod *oh)
  */
 static void _omap4_enable_module(struct omap_hwmod *oh)
 {
-       if (!oh->clkdm || !oh->prcm.omap4.modulemode)
+       if (!oh->clkdm || !oh->prcm.omap4.modulemode ||
+           _omap4_clkctrl_managed_by_clkfwk(oh))
                return;
 
        pr_debug("omap_hwmod: %s: %s: %d\n",
@@ -1061,8 +1090,10 @@ static int _omap4_wait_target_disable(struct omap_hwmod *oh)
        if (oh->flags & HWMOD_NO_IDLEST)
                return 0;
 
-       if (!oh->prcm.omap4.clkctrl_offs &&
-           !(oh->prcm.omap4.flags & HWMOD_OMAP4_ZERO_CLKCTRL_OFFSET))
+       if (_omap4_clkctrl_managed_by_clkfwk(oh))
+               return 0;
+
+       if (!_omap4_has_clkctrl_clock(oh))
                return 0;
 
        return omap_cm_wait_module_idle(oh->clkdm->prcm_partition,
@@ -1847,7 +1878,8 @@ static int _omap4_disable_module(struct omap_hwmod *oh)
 {
        int v;
 
-       if (!oh->clkdm || !oh->prcm.omap4.modulemode)
+       if (!oh->clkdm || !oh->prcm.omap4.modulemode ||
+           _omap4_clkctrl_managed_by_clkfwk(oh))
                return -EINVAL;
 
        /*
@@ -2829,8 +2861,10 @@ static int _omap4_wait_target_ready(struct omap_hwmod *oh)
        if (!_find_mpu_rt_port(oh))
                return 0;
 
-       if (!oh->prcm.omap4.clkctrl_offs &&
-           !(oh->prcm.omap4.flags & HWMOD_OMAP4_ZERO_CLKCTRL_OFFSET))
+       if (_omap4_clkctrl_managed_by_clkfwk(oh))
+               return 0;
+
+       if (!_omap4_has_clkctrl_clock(oh))
                return 0;
 
        /* XXX check module SIDLEMODE, hardreset status */
@@ -2986,8 +3020,7 @@ static int _omap4_disable_direct_prcm(struct omap_hwmod *oh)
        if (!oh)
                return -EINVAL;
 
-       oh->prcm.omap4.clkctrl_offs = 0;
-       oh->prcm.omap4.modulemode = 0;
+       oh->prcm.omap4.flags |= HWMOD_OMAP4_CLKFWK_CLKCTR_CLOCK;
 
        return 0;
 }
index a8f779381fd80cef320a9b982d4a4932f0cc10f3..7dfd5989b6658ac7e6530f4a001f2c7bab2cdc10 100644 (file)
@@ -21,7 +21,6 @@
  *
  * To do:
  * - add interconnect error log structures
- * - add pinmuxing
  * - init_conn_id_bit (CONNID_BIT_VECTOR)
  * - implement default hwmod SMS/SDRC flags?
  * - move Linux-specific data ("non-ROM data") out
@@ -150,22 +149,6 @@ extern struct omap_hwmod_sysc_fields omap_hwmod_sysc_type3;
 #define DEBUG_AM33XXUART1_FLAGS DEBUG_OMAPUART_FLAGS
 #endif
 
-/**
- * struct omap_hwmod_mux_info - hwmod specific mux configuration
- * @pads:              array of omap_device_pad entries
- * @nr_pads:           number of omap_device_pad entries
- *
- * Note that this is currently built during init as needed.
- */
-struct omap_hwmod_mux_info {
-       int                             nr_pads;
-       struct omap_device_pad          *pads;
-       int                             nr_pads_dynamic;
-       struct omap_device_pad          **pads_dynamic;
-       int                             *irqs;
-       bool                            enabled;
-};
-
 /**
  * struct omap_hwmod_irq_info - MPU IRQs used by the hwmod
  * @name: name of the IRQ channel (module local name)
@@ -446,9 +429,12 @@ struct omap_hwmod_omap2_prcm {
  * HWMOD_OMAP4_ZERO_CLKCTRL_OFFSET: Some IP blocks have a valid CLKCTRL
  *     offset of zero; this flag bit should be set in those cases to
  *     distinguish from hwmods that have no clkctrl offset.
+ * HWMOD_OMAP4_CLKFWK_CLKCTR_CLOCK: Module clockctrl clock is managed
+ *     by the common clock framework and not hwmod.
  */
 #define HWMOD_OMAP4_NO_CONTEXT_LOSS_BIT                (1 << 0)
 #define HWMOD_OMAP4_ZERO_CLKCTRL_OFFSET                (1 << 1)
+#define HWMOD_OMAP4_CLKFWK_CLKCTR_CLOCK                (1 << 2)
 
 /**
  * struct omap_hwmod_omap4_prcm - OMAP4-specific PRCM data
@@ -670,7 +656,6 @@ struct omap_hwmod {
        const char                      *name;
        struct omap_hwmod_class         *class;
        struct omap_device              *od;
-       struct omap_hwmod_mux_info      *mux;
        struct omap_hwmod_irq_info      *mpu_irqs;
        struct omap_hwmod_dma_info      *sdma_reqs;
        struct omap_hwmod_rst_info      *rst_lines;
index 8236e5c49ec3e4ec54a4e695e0c4a46e4f8f869e..a88cb013fef9c3cc1830f7611d1b7e458405e1c8 100644 (file)
@@ -286,56 +286,26 @@ struct omap_hwmod_ocp_if am33xx_l4_ls__mcasp1 = {
 };
 
 /* l4 ls -> mmc0 */
-static struct omap_hwmod_addr_space am33xx_mmc0_addr_space[] = {
-       {
-               .pa_start       = 0x48060100,
-               .pa_end         = 0x48060100 + SZ_4K - 1,
-               .flags          = ADDR_TYPE_RT,
-       },
-       { }
-};
-
 struct omap_hwmod_ocp_if am33xx_l4_ls__mmc0 = {
        .master         = &am33xx_l4_ls_hwmod,
        .slave          = &am33xx_mmc0_hwmod,
        .clk            = "l4ls_gclk",
-       .addr           = am33xx_mmc0_addr_space,
        .user           = OCP_USER_MPU,
 };
 
 /* l4 ls -> mmc1 */
-static struct omap_hwmod_addr_space am33xx_mmc1_addr_space[] = {
-       {
-               .pa_start       = 0x481d8100,
-               .pa_end         = 0x481d8100 + SZ_4K - 1,
-               .flags          = ADDR_TYPE_RT,
-       },
-       { }
-};
-
 struct omap_hwmod_ocp_if am33xx_l4_ls__mmc1 = {
        .master         = &am33xx_l4_ls_hwmod,
        .slave          = &am33xx_mmc1_hwmod,
        .clk            = "l4ls_gclk",
-       .addr           = am33xx_mmc1_addr_space,
        .user           = OCP_USER_MPU,
 };
 
 /* l3 s -> mmc2 */
-static struct omap_hwmod_addr_space am33xx_mmc2_addr_space[] = {
-       {
-               .pa_start       = 0x47810100,
-               .pa_end         = 0x47810100 + SZ_64K - 1,
-               .flags          = ADDR_TYPE_RT,
-       },
-       { }
-};
-
 struct omap_hwmod_ocp_if am33xx_l3_s__mmc2 = {
        .master         = &am33xx_l3_s_hwmod,
        .slave          = &am33xx_mmc2_hwmod,
        .clk            = "l3s_gclk",
-       .addr           = am33xx_mmc2_addr_space,
        .user           = OCP_USER_MPU,
 };
 
index de06a1d5ffab5a15e418e560e24a8dde6bf3818d..4bcf9f3e15448fb60d81faeb0c03a4716322e2d4 100644 (file)
@@ -778,9 +778,9 @@ struct omap_hwmod am33xx_mcasp1_hwmod = {
 
 /* 'mmc' class */
 static struct omap_hwmod_class_sysconfig am33xx_mmc_sysc = {
-       .rev_offs       = 0x1fc,
-       .sysc_offs      = 0x10,
-       .syss_offs      = 0x14,
+       .rev_offs       = 0x2fc,
+       .sysc_offs      = 0x110,
+       .syss_offs      = 0x114,
        .sysc_flags     = (SYSC_HAS_CLOCKACTIVITY | SYSC_HAS_SIDLEMODE |
                          SYSC_HAS_ENAWAKEUP | SYSC_HAS_SOFTRESET |
                          SYSC_HAS_AUTOIDLE | SYSS_HAS_RESET_STATUS),
index 754cd0fc0e7b5302bb283033784319f85df65da8..28fa1f8d8363194c8b453904c90eb7b9595f47a3 100644 (file)
@@ -395,8 +395,8 @@ IS_OMAP_TYPE(3430, 0x3430)
 #define DRA752_REV_ES1_1       (DRA7XX_CLASS | (0x52 << 16) | (0x11 << 8))
 #define DRA752_REV_ES2_0       (DRA7XX_CLASS | (0x52 << 16) | (0x20 << 8))
 #define DRA722_REV_ES1_0       (DRA7XX_CLASS | (0x22 << 16) | (0x10 << 8))
-#define DRA722_REV_ES1_0       (DRA7XX_CLASS | (0x22 << 16) | (0x10 << 8))
 #define DRA722_REV_ES2_0       (DRA7XX_CLASS | (0x22 << 16) | (0x20 << 8))
+#define DRA722_REV_ES2_1       (DRA7XX_CLASS | (0x22 << 16) | (0x21 << 8))
 
 void omap2xxx_check_revision(void);
 void omap3xxx_check_revision(void);