omap5: omap_die_id support
authorPaul Kocialkowski <contact@paulk.fr>
Thu, 27 Aug 2015 17:37:11 +0000 (19:37 +0200)
committerTom Rini <trini@konsulko.com>
Thu, 22 Oct 2015 18:17:21 +0000 (14:17 -0400)
This introduces omap5 support for omap_die_id, which matches the common
omap_die_id definition. It replaces board-specific code to grab the die id bits.

Signed-off-by: Paul Kocialkowski <contact@paulk.fr>
Reviewed-by: Tom Rini <trini@konsulko.com>
arch/arm/cpu/armv7/omap5/hwinit.c
arch/arm/cpu/armv7/omap5/prcm-regs.c
board/ti/dra7xx/evm.c
board/ti/omap5_uevm/evm.c

index 325a7e8..8f184df 100644 (file)
@@ -379,6 +379,14 @@ void init_omap_revision(void)
        init_cpu_configuration();
 }
 
+void omap_die_id(unsigned int *die_id)
+{
+       die_id[0] = readl((*ctrl)->control_std_fuse_die_id_0);
+       die_id[1] = readl((*ctrl)->control_std_fuse_die_id_1);
+       die_id[2] = readl((*ctrl)->control_std_fuse_die_id_2);
+       die_id[3] = readl((*ctrl)->control_std_fuse_die_id_3);
+}
+
 void reset_cpu(ulong ignored)
 {
        u32 omap_rev = omap_revision();
index ea659bd..cd289dd 100644 (file)
@@ -298,6 +298,10 @@ struct prcm_regs const omap5_es1_prcm = {
 struct omap_sys_ctrl_regs const omap5_ctrl = {
        .control_status                         = 0x4A002134,
        .control_std_fuse_opp_vdd_mpu_2         = 0x4A0021B4,
+       .control_std_fuse_die_id_0              = 0x4A002200,
+       .control_std_fuse_die_id_1              = 0x4A002208,
+       .control_std_fuse_die_id_2              = 0x4A00220C,
+       .control_std_fuse_die_id_3              = 0x4A002210,
        .control_phy_power_usb                  = 0x4A002370,
        .control_phy_power_sata                 = 0x4A002374,
        .control_padconf_core_base              = 0x4A002800,
index 890b603..d4f5078 100644 (file)
@@ -57,16 +57,15 @@ int board_init(void)
 int board_late_init(void)
 {
 #ifdef CONFIG_ENV_VARS_UBOOT_RUNTIME_CONFIG
-       u32 id[4];
+       unsigned int die_id[4] = { 0 };
 
        if (omap_revision() == DRA722_ES1_0)
                setenv("board_name", "dra72x");
        else
                setenv("board_name", "dra7xx");
 
-       id[0] = readl((*ctrl)->control_std_fuse_die_id_0);
-       id[1] = readl((*ctrl)->control_std_fuse_die_id_1);
-       usb_set_serial_num_from_die_id(id);
+       omap_die_id(die_id);
+       usb_set_serial_num_from_die_id(die_id);
 #endif
        return 0;
 }
index 659877c..0484087 100644 (file)
@@ -189,20 +189,14 @@ static void enable_host_clocks(void)
  */
 int misc_init_r(void)
 {
-       int reg;
-       u32 id[4];
+       unsigned int die_id[4] = { 0 };
 
 #ifdef CONFIG_PALMAS_POWER
        palmas_init_settings();
 #endif
 
-       reg = DIE_ID_REG_BASE + DIE_ID_REG_OFFSET;
-
-       id[0] = readl(reg);
-       id[1] = readl(reg + 0x8);
-       id[2] = readl(reg + 0xC);
-       id[3] = readl(reg + 0x10);
-       usb_fake_mac_from_die_id(id);
+       omap_die_id(die_id);
+       usb_fake_mac_from_die_id(die_id);
 
        return 0;
 }