SmartAudio/lichee/linux-4.9/arch/arm/mach-sunxi/include/mach/sunxi-chip.h

71 lines
2.6 KiB
C

/*
* linux/arch/arm/mach-sunxi/sun9i-chip.c
*
* Copyright(c) 2014-2016 Allwinnertech Co., Ltd.
* http://www.allwinnertech.com
*
* Author: sunny <sunny@allwinnertech.com>
*
* allwinner sunxi soc chip version and chip id manager.
*
* 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.
*/
#ifndef __SUNXI_MACH_SUNXI_CHIP_H
#define __SUNXI_MACH_SUNXI_CHIP_H
#define SUNXI_CHIP_REV(p, v) (p + v)
/* sunxi platform chip version policy:
* high 16bit value: platform number(Such as: sun8i/sun9i/..)
* low 16bit value: chip version (Such as: VERSION_A,VERSION_B)
*/
#define SUNXI_CHIP_MASK (0xFFFF0000)
#define SUNXI_CHIP_SUN8IW1P1 (0x16330000)
#define SUNXI_CHIP_SUN8IW3P1 (0x16500000)
#define SUNXI_CHIP_SUN8IW5P1 (0x16670000)
#define SUNXI_CHIP_SUN8IW6P1 (0x16730000)
#define SUNXI_CHIP_SUN8IW7 (0x16800000)
#define SUNXI_CHIP_SUN9IW1P1 (0x16390000)
/* sunxi chip versions define */
#define SUN8IW1P1_REV_A SUNXI_CHIP_REV(SUNXI_CHIP_SUN8IW1P1, 0)
#define SUN8IW1P1_REV_B SUNXI_CHIP_REV(SUNXI_CHIP_SUN8IW1P1, 1)
#define SUN8IW1P1_REV_C SUNXI_CHIP_REV(SUNXI_CHIP_SUN8IW1P1, 2)
#define SUN8IW1P1_REV_D SUNXI_CHIP_REV(SUNXI_CHIP_SUN8IW1P1, 3)
#define SUN8IW3P1_REV_A SUNXI_CHIP_REV(SUNXI_CHIP_SUN8IW3P1, 0)
#define SUN8IW3P1_REV_B SUNXI_CHIP_REV(SUNXI_CHIP_SUN8IW3P1, 1)
#define SUN8IW5P1_REV_A SUNXI_CHIP_REV(SUNXI_CHIP_SUN8IW5P1, 0)
#define SUN8IW5P1_REV_B SUNXI_CHIP_REV(SUNXI_CHIP_SUN8IW5P1, 1)
#define SUN8IW6P1_REV_A SUNXI_CHIP_REV(SUNXI_CHIP_SUN8IW6P1, 0)
#define SUN8IW6P1_REV_B SUNXI_CHIP_REV(SUNXI_CHIP_SUN8IW6P1, 1)
#define SUN8IW7P1_REV_A SUNXI_CHIP_REV(SUNXI_CHIP_SUN8IW7, 0x0000)
#define SUN8IW7P1_REV_B SUNXI_CHIP_REV(SUNXI_CHIP_SUN8IW7, 0x0001)
#define SUN8IW7P2_REV_A SUNXI_CHIP_REV(SUNXI_CHIP_SUN8IW7, 0x0100)
#define SUN8IW7P2_REV_B SUNXI_CHIP_REV(SUNXI_CHIP_SUN8IW7, 0x0101)
#define SUN9IW1P1_REV_A SUNXI_CHIP_REV(SUNXI_CHIP_SUN9IW1P1, 0)
#define SUN9IW1P1_REV_B SUNXI_CHIP_REV(SUNXI_CHIP_SUN9IW1P1, 1)
extern unsigned int sunxi_get_soc_ver(void);
extern int sunxi_get_soc_chipid(u8 *chipid);
extern int sunxi_get_soc_chipid_str(char *chipid);
extern int sunxi_get_pmu_chipid(u8 *chipid);
extern int sunxi_get_serial(u8 *serial);
extern unsigned int sunxi_get_soc_bin(void);
extern int sunxi_soc_is_secure(void);
extern int sunxi_boot_is_secure(void);
/* sunxi platform init functions */
void __init sunxi_soc_ver_init(void);
void __init sunxi_chip_id_init(void);
#endif /* __SUNXI_MACH_SUNXI_CHIP_H */