root/arch/arm/mach-imx/cpu-imx25.c

/* [<][>][^][v][top][bottom][index][help] */

DEFINITIONS

This source file includes following definitions.
  1. mx25_read_cpu_rev
  2. mx25_revision

   1 // SPDX-License-Identifier: GPL-2.0-or-later
   2 /*
   3  * MX25 CPU type detection
   4  *
   5  * Copyright (c) 2009 Daniel Mack <daniel@caiaq.de>
   6  * Copyright (C) 2011 Freescale Semiconductor, Inc. All Rights Reserved
   7  */
   8 #include <linux/module.h>
   9 #include <linux/io.h>
  10 #include <linux/of.h>
  11 #include <linux/of_address.h>
  12 
  13 #include "iim.h"
  14 #include "hardware.h"
  15 
  16 static int mx25_cpu_rev = -1;
  17 
  18 static int mx25_read_cpu_rev(void)
  19 {
  20         u32 rev;
  21         void __iomem *iim_base;
  22         struct device_node *np;
  23 
  24         np = of_find_compatible_node(NULL, NULL, "fsl,imx25-iim");
  25         iim_base = of_iomap(np, 0);
  26         BUG_ON(!iim_base);
  27         rev = readl(iim_base + MXC_IIMSREV);
  28         iounmap(iim_base);
  29 
  30         switch (rev) {
  31         case 0x00:
  32                 return IMX_CHIP_REVISION_1_0;
  33         case 0x01:
  34                 return IMX_CHIP_REVISION_1_1;
  35         default:
  36                 return IMX_CHIP_REVISION_UNKNOWN;
  37         }
  38 }
  39 
  40 int mx25_revision(void)
  41 {
  42         if (mx25_cpu_rev == -1)
  43                 mx25_cpu_rev = mx25_read_cpu_rev();
  44 
  45         return mx25_cpu_rev;
  46 }
  47 EXPORT_SYMBOL(mx25_revision);

/* [<][>][^][v][top][bottom][index][help] */