bus: omap_l3_noc: convert target information into a structure
[cascardo/linux.git] / drivers / bus / omap_l3_noc.h
index a6ce34d..ae28784 100644 (file)
@@ -1,27 +1,21 @@
 /*
- * OMAP4XXX L3 Interconnect  error handling driver header
+ * OMAP L3 Interconnect  error handling driver header
  *
- * Copyright (C) 2011 Texas Corporation
+ * Copyright (C) 2011-2014 Texas Instruments Incorporated - http://www.ti.com/
  *     Santosh Shilimkar <santosh.shilimkar@ti.com>
  *     sricharan <r.sricharan@ti.com>
  *
  * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
+ * it under the terms of the GNU General Public License version 2 as
+ * published by the Free Software Foundation.
  *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * This program is distributed "as is" WITHOUT ANY WARRANTY of any
+ * kind, whether express or implied; without even the implied warranty
+ * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
- * USA
  */
-#ifndef __ARCH_ARM_MACH_OMAP2_L3_INTERCONNECT_3XXX_H
-#define __ARCH_ARM_MACH_OMAP2_L3_INTERCONNECT_3XXX_H
+#ifndef __OMAP_L3_NOC_H
+#define __OMAP_L3_NOC_H
 
 #define L3_MODULES                     3
 #define CLEAR_STDERR_LOG               (1 << 31)
 
 #define NUM_OF_L3_MASTERS      (sizeof(l3_masters)/sizeof(l3_masters[0]))
 
+/**
+ * struct l3_masters_data - L3 Master information
+ * @id:                ID of the L3 Master
+ * @name:      master name
+ */
+struct l3_masters_data {
+       u32 id;
+       char *name;
+};
+
+/**
+ * struct l3_target_data - L3 Target information
+ * @offset:    Offset from base for L3 Target
+ * @name:      Target name
+ *
+ * Target information is organized indexed by bit field definitions.
+ */
+struct l3_target_data {
+       u32 offset;
+       char *name;
+};
+
 static u32 l3_flagmux[L3_MODULES] = {
        0x500,
        0x1000,
        0X0200
 };
 
-/* L3 Target standard Error register offsets */
-static u32 l3_targ_inst_clk1[] = {
-       0x100, /* DMM1 */
-       0x200, /* DMM2 */
-       0x300, /* ABE */
-       0x400, /* L4CFG */
-       0x600,  /* CLK2 PWR DISC */
-       0x0,    /* Host CLK1 */
-       0x900   /* L4 Wakeup */
+static struct l3_target_data l3_target_inst_data_clk1[] = {
+       {0x100, "DMM1",},
+       {0x200, "DMM2",},
+       {0x300, "ABE",},
+       {0x400, "L4CFG",},
+       {0x600, "CLK2PWRDISC",},
+       {0x0,   "HOSTCLK1",},
+       {0x900, "L4WAKEUP",},
 };
 
-static u32 l3_targ_inst_clk2[] = {
-       0x500, /* CORTEX M3 */
-       0x300, /* DSS */
-       0x100, /* GPMC */
-       0x400, /* ISS */
-       0x700, /* IVAHD */
-       0xD00, /* missing in TRM  corresponds to AES1*/
-       0x900, /* L4 PER0*/
-       0x200, /* OCMRAM */
-       0x100, /* missing in TRM corresponds to GPMC sERROR*/
-       0x600, /* SGX */
-       0x800, /* SL2 */
-       0x1600, /* C2C */
-       0x1100, /* missing in TRM corresponds PWR DISC CLK1*/
-       0xF00, /* missing in TRM corrsponds to SHA1*/
-       0xE00, /* missing in TRM corresponds to AES2*/
-       0xC00, /* L4 PER3 */
-       0xA00, /* L4 PER1*/
-       0xB00, /* L4 PER2*/
-       0x0, /* HOST CLK2 */
-       0x1800, /* CAL */
-       0x1700 /* LLI */
+static struct l3_target_data l3_target_inst_data_clk2[] = {
+       {0x500, "CORTEXM3",},
+       {0x300, "DSS",},
+       {0x100, "GPMC",},
+       {0x400, "ISS",},
+       {0x700, "IVAHD",},
+       {0xD00, "AES1",},
+       {0x900, "L4PER0",},
+       {0x200, "OCMRAM",},
+       {0x100, "GPMCsERROR",},
+       {0x600, "SGX",},
+       {0x800, "SL2",},
+       {0x1600, "C2C",},
+       {0x1100, "PWRDISCCLK1",},
+       {0xF00, "SHA1",},
+       {0xE00, "AES2",},
+       {0xC00, "L4PER3",},
+       {0xA00, "L4PER1",},
+       {0xB00, "L4PER2",},
+       {0x0,   "HOSTCLK2",},
+       {0x1800, "CAL",},
+       {0x1700, "LLI",},
 };
 
-static u32 l3_targ_inst_clk3[] = {
-       0x0100  /* EMUSS */,
-       0x0300, /* DEBUGSS_CT_TBR */
-       0x0 /* HOST CLK3 */
+static struct l3_target_data l3_target_inst_data_clk3[] = {
+       {0x0100, "EMUSS",},
+       {0x0300, "DEBUG SOURCE",},
+       {0x0,   "HOST CLK3",},
 };
 
-static struct l3_masters_data {
-       u32 id;
-       char name[10];
-} l3_masters[] = {
+static struct l3_masters_data l3_masters[] = {
        { 0x0 , "MPU"},
        { 0x10, "CS_ADP"},
        { 0x14, "xxx"},
@@ -117,55 +129,14 @@ static struct l3_masters_data {
        { 0xC8, "USBHOSTFS"}
 };
 
-static char *l3_targ_inst_name[L3_MODULES][21] = {
-       {
-               "DMM1",
-               "DMM2",
-               "ABE",
-               "L4CFG",
-               "CLK2 PWR DISC",
-               "HOST CLK1",
-               "L4 WAKEUP"
-       },
-       {
-               "CORTEX M3" ,
-               "DSS ",
-               "GPMC ",
-               "ISS ",
-               "IVAHD ",
-               "AES1",
-               "L4 PER0",
-               "OCMRAM ",
-               "GPMC sERROR",
-               "SGX ",
-               "SL2 ",
-               "C2C ",
-               "PWR DISC CLK1",
-               "SHA1",
-               "AES2",
-               "L4 PER3",
-               "L4 PER1",
-               "L4 PER2",
-               "HOST CLK2",
-               "CAL",
-               "LLI"
-       },
-       {
-               "EMUSS",
-               "DEBUG SOURCE",
-               "HOST CLK3"
-       },
+static struct l3_target_data *l3_targ[L3_MODULES] = {
+       l3_target_inst_data_clk1,
+       l3_target_inst_data_clk2,
+       l3_target_inst_data_clk3,
 };
 
-static u32 *l3_targ[L3_MODULES] = {
-       l3_targ_inst_clk1,
-       l3_targ_inst_clk2,
-       l3_targ_inst_clk3,
-};
-
-struct omap4_l3 {
+struct omap_l3 {
        struct device *dev;
-       struct clk *ick;
 
        /* memory base */
        void __iomem *l3_base[L3_MODULES];
@@ -173,4 +144,5 @@ struct omap4_l3 {
        int debug_irq;
        int app_irq;
 };
-#endif
+
+#endif /* __OMAP_L3_NOC_H */