75 lines
1.9 KiB
C
Executable File
75 lines
1.9 KiB
C
Executable File
/*
|
|
* Copyright (c) 2014 Samsung Electronics Co., Ltd.
|
|
* http://www.samsung.com
|
|
*
|
|
* Header for EXYNOS SoC Chipid support
|
|
*
|
|
* This program is free software; you can redistribute it and/or modify
|
|
* it under the terms of the GNU General Public License version 2 as
|
|
* published by the Free Software Foundation.
|
|
*/
|
|
|
|
#ifndef __EXYNOS_SOC_H
|
|
#define __EXYNOS_SOC_H
|
|
|
|
#define EXYNOS3250_SOC_ID 0xE3472000
|
|
#define EXYNOS4210_SOC_ID 0x43210000
|
|
#define EXYNOS4212_SOC_ID 0x43220000
|
|
#define EXYNOS4412_SOC_ID 0xE4412000
|
|
#define EXYNOS4415_SOC_ID 0xE4415000
|
|
#define EXYNOS5250_SOC_ID 0x43520000
|
|
#define EXYNOS5260_SOC_ID 0xE5260000
|
|
#define EXYNOS5410_SOC_ID 0xE5410000
|
|
#define EXYNOS5420_SOC_ID 0xE5420000
|
|
#define EXYNOS5440_SOC_ID 0xE5440000
|
|
#define EXYNOS5800_SOC_ID 0xE5422000
|
|
#define EXYNOS8890_SOC_ID 0xE8890000
|
|
#define EXYNOS8895_SOC_ID 0xE8895000
|
|
#define EXYNOS7872_SOC_ID 0x005E7872
|
|
#define EXYNOS9810_SOC_ID 0xE9810000
|
|
#define EXYNOS9610_SOC_ID 0xE9610000
|
|
|
|
#define EXYNOS_SOC_MASK 0xFFFFF000
|
|
#define EXYNOS_SOC_MASK_V2 0x00FFFFFF
|
|
#define EXYNOS_LOTID_MASK 0x001FFFFF
|
|
#define EXYNOS_REV_MASK 0xF
|
|
|
|
#define EXYNOS_MAIN_REV_1 0x10
|
|
#define EXYNOS_MAIN_REV_2 0x20
|
|
|
|
#define EXYNOS_SUB_REV1 0x1
|
|
#define EXYNOS_SUB_REV2 0x2
|
|
|
|
struct exynos_chipid_variant {
|
|
int product_ver;
|
|
int unique_id_reg;
|
|
int rev_reg;
|
|
int main_rev_bit;
|
|
int sub_rev_bit;
|
|
};
|
|
|
|
/**
|
|
* Struct exynos_chipid_info
|
|
* @soc_product_id: product id allocated to exynos SoC
|
|
* @soc_revision: revision of exynos SoC
|
|
*/
|
|
struct exynos_chipid_info {
|
|
void __iomem *reg;
|
|
u32 product_id;
|
|
u32 revision;
|
|
u32 main_rev;
|
|
u32 sub_rev;
|
|
u32 lot_id;
|
|
u64 unique_id;
|
|
struct exynos_chipid_variant *drv_data;
|
|
};
|
|
|
|
extern struct exynos_chipid_info exynos_soc_info;
|
|
|
|
/* Since we need chipid to be initialized as early as possible
|
|
* during secondary core bootup adding early initialization function
|
|
*/
|
|
extern void exynos_chipid_early_init(void);
|
|
|
|
#endif /* __EXYNOS_SOC_H */
|