]> git.karo-electronics.de Git - karo-tx-linux.git/blobdiff - arch/arm/mach-tegra/powergate.c
Merge tag 'fixes-non-critical' of git://git.kernel.org/pub/scm/linux/kernel/git/arm...
[karo-tx-linux.git] / arch / arm / mach-tegra / powergate.c
index 15d506501cccbb64dc25e5a1178bd91d40e94901..de0662de28a0dec38ff3c3ec5edd0db3d03f4195 100644 (file)
@@ -199,7 +199,9 @@ int __init tegra_powergate_init(void)
 
 #ifdef CONFIG_DEBUG_FS
 
-static const char * const powergate_name[] = {
+static const char * const *powergate_name;
+
+static const char * const powergate_name_t20[] = {
        [TEGRA_POWERGATE_CPU]   = "cpu",
        [TEGRA_POWERGATE_3D]    = "3d",
        [TEGRA_POWERGATE_VENC]  = "venc",
@@ -209,6 +211,23 @@ static const char * const powergate_name[] = {
        [TEGRA_POWERGATE_MPE]   = "mpe",
 };
 
+static const char * const powergate_name_t30[] = {
+       [TEGRA_POWERGATE_CPU]   = "cpu0",
+       [TEGRA_POWERGATE_3D]    = "3d0",
+       [TEGRA_POWERGATE_VENC]  = "venc",
+       [TEGRA_POWERGATE_VDEC]  = "vdec",
+       [TEGRA_POWERGATE_PCIE]  = "pcie",
+       [TEGRA_POWERGATE_L2]    = "l2",
+       [TEGRA_POWERGATE_MPE]   = "mpe",
+       [TEGRA_POWERGATE_HEG]   = "heg",
+       [TEGRA_POWERGATE_SATA]  = "sata",
+       [TEGRA_POWERGATE_CPU1]  = "cpu1",
+       [TEGRA_POWERGATE_CPU2]  = "cpu2",
+       [TEGRA_POWERGATE_CPU3]  = "cpu3",
+       [TEGRA_POWERGATE_CELP]  = "celp",
+       [TEGRA_POWERGATE_3D1]   = "3d1",
+};
+
 static int powergate_show(struct seq_file *s, void *data)
 {
        int i;
@@ -237,14 +256,24 @@ static const struct file_operations powergate_fops = {
 int __init tegra_powergate_debugfs_init(void)
 {
        struct dentry *d;
-       int err = -ENOMEM;
 
-       d = debugfs_create_file("powergate", S_IRUGO, NULL, NULL,
-               &powergate_fops);
-       if (!d)
-               return -ENOMEM;
+       switch (tegra_chip_id) {
+       case TEGRA20:
+               powergate_name = powergate_name_t20;
+               break;
+       case TEGRA30:
+               powergate_name = powergate_name_t30;
+               break;
+       }
+
+       if (powergate_name) {
+               d = debugfs_create_file("powergate", S_IRUGO, NULL, NULL,
+                       &powergate_fops);
+               if (!d)
+                       return -ENOMEM;
+       }
 
-       return err;
+       return 0;
 }
 
 #endif