#include <mach/fb.h>
#include <mach/spi.h>
#include <mach/spi-gpio.h>
-#include <mach/usb-control.h>
+#include <mach/cpu.h>
#include <mach/gta01.h>
#include <plat/iic.h>
#include <plat/mci.h>
#include <asm/plat-s3c24xx/neo1973.h>
+#include <plat/usb-control.h>
#include <mach/neo1973-pm-gsm.h>
#include <linux/jbt6k74.h>
reg_init_data = gta01_pcf_pdata.reg_init_data;
- switch (system_rev) {
+ switch (S3C_SYSTEM_REV_ATAG) {
case GTA01Bv4_SYSTEM_REV:
/* FIXME : gta01_pcf_pdata.used_features |= PCF50606_FEAT_ACD; */
regulator = s3c_sdi_regulator;
return;
- switch (system_rev) {
+ switch (S3C_SYSTEM_REV_ATAG) {
case GTA01v3_SYSTEM_REV:
switch (power_mode) {
case MMC_POWER_OFF:
{
int rc;
- if (system_rev == GTA01v4_SYSTEM_REV ||
- system_rev == GTA01Bv2_SYSTEM_REV ||
- system_rev == GTA01Bv3_SYSTEM_REV ||
- system_rev == GTA01Bv4_SYSTEM_REV) {
+ if (S3C_SYSTEM_REV_ATAG == GTA01v4_SYSTEM_REV ||
+ S3C_SYSTEM_REV_ATAG == GTA01Bv2_SYSTEM_REV ||
+ S3C_SYSTEM_REV_ATAG == GTA01Bv3_SYSTEM_REV ||
+ S3C_SYSTEM_REV_ATAG == GTA01Bv4_SYSTEM_REV) {
gta01_udc_cfg.udc_command = gta01_udc_command;
gta01_mmc_cfg.ocr_avail = MMC_VDD_32_33;
}
platform_device_register(>a01_button_dev);
platform_device_register(>a01_pm_gsm_dev);
- switch (system_rev) {
+ switch (S3C_SYSTEM_REV_ATAG) {
case GTA01v3_SYSTEM_REV:
case GTA01v4_SYSTEM_REV:
/* just use the default (GTA01_IRQ_PCF50606) */
#include <mach/regs-mem.h>
#include <mach/spi-gpio.h>
#include <plat/pwm.h>
+#include <mach/cpu.h>
#include <mach/gta02.h>
reg_init_data = gta02_pcf_pdata.reg_init_data;
- switch (system_rev) {
+ switch (S3C_SYSTEM_REV_ATAG) {
case GTA02v1_SYSTEM_REV:
/* FIXME: this is only in v1 due to wrong PMU variant */
reg_init_data[PCF50633_REGULATOR_DOWN2]
static void gta02_hdq_attach_child_devices(struct device *parent_device)
{
- switch (system_rev) {
+ switch (S3C_SYSTEM_REV_ATAG) {
case GTA02v5_SYSTEM_REV:
case GTA02v6_SYSTEM_REV:
bq27000_battery_device.dev.parent = parent_device;
static int gta02_glamo_can_set_mmc_power(void)
{
- switch (system_rev) {
+ switch (S3C_SYSTEM_REV_ATAG) {
case GTA02v3_SYSTEM_REV:
case GTA02v4_SYSTEM_REV:
case GTA02v5_SYSTEM_REV:
static void mangle_glamo_res_by_system_rev(void)
{
- switch (system_rev) {
+ switch (S3C_SYSTEM_REV_ATAG) {
case GTA02v1_SYSTEM_REV:
break;
default:
break;
}
- switch (system_rev) {
+ switch (S3C_SYSTEM_REV_ATAG) {
case GTA02v1_SYSTEM_REV:
case GTA02v2_SYSTEM_REV:
case GTA02v3_SYSTEM_REV:
/* set the panic callback to make AUX blink fast */
panic_blink = gta02_panic_blink;
- switch (system_rev) {
+ switch (S3C_SYSTEM_REV_ATAG) {
case GTA02v6_SYSTEM_REV:
/* we need push-pull interrupt from motion sensors */
lis302_pdata_top.open_drain = 0;
extern unsigned int system_rev;
+#define S3C_SYSTEM_REV_ATAG (system_rev & 0xffff)
+#define S3C_SYSTEM_REV_CPU (system_rev & 0xffff0000)
+
/*
* cpu_is_s3c24xx(): True for s3c2400, s3c2410, s3c2440 and so on
* cpu_is_s3c241x(): True fro s3c2410, s3c2412
* system_rev & 0xfff00000 -> S3C Sub Class (241x/244x)
* system_rev & 0xffff0000 -> S3C Type (2410/2440/6400/6410)
*
- * Remains[15:0] are reserved
+ * Remaining[15:0] are preserved from the value set by ATAG
*
* Exception:
* Store Revision A to 1 such as
* s3c2410A to s3c2411
* s3c2440A to s3c2441
*/
- system_rev = (idcode & 0x0ffff000) << 4;
+
+ system_rev &= 0xffff;
+ system_rev |= (idcode & 0x0ffff000) << 4;
if (idcode == 0x32410002 || idcode == 0x32440001)
system_rev |= (0x1 << 16);
#include <linux/platform_device.h>
#include <mach/hardware.h>
+#include <mach/cpu.h>
#include <asm/mach-types.h>
{
struct regulator *regulator = neo1973_gps.regulator[GTA01_GPS_REG_2V8];
- switch (system_rev) {
+ switch (S3C_SYSTEM_REV_ATAG) {
case GTA01v3_SYSTEM_REV:
case GTA01v4_SYSTEM_REV:
if (on)
int ret = 0;
struct regulator *regulator = neo1973_gps.regulator[GTA01_GPS_REG_2V8];
- switch (system_rev) {
+ switch (S3C_SYSTEM_REV_ATAG) {
case GTA01v3_SYSTEM_REV:
case GTA01v4_SYSTEM_REV:
ret = regulator_is_enabled(regulator);
{
struct regulator *regulator = neo1973_gps.regulator[GTA01_GPS_REG_3V];
- switch (system_rev) {
+ switch (S3C_SYSTEM_REV_ATAG) {
case GTA01v3_SYSTEM_REV:
case GTA01v4_SYSTEM_REV:
if (on)
int ret = 0;
struct regulator *regulator = neo1973_gps.regulator[GTA01_GPS_REG_3V];
- switch (system_rev) {
+ switch (S3C_SYSTEM_REV_ATAG) {
case GTA01v3_SYSTEM_REV:
case GTA01v4_SYSTEM_REV:
ret = regulator_is_enabled(regulator);
{
struct regulator *regulator = neo1973_gps.regulator[GTA01_GPS_REG_3V3];
- switch (system_rev) {
+ switch (S3C_SYSTEM_REV_ATAG) {
case GTA01v3_SYSTEM_REV:
case GTA01v4_SYSTEM_REV:
case GTA01Bv2_SYSTEM_REV:
int ret = 0;
struct regulator *regulator = neo1973_gps.regulator[GTA01_GPS_REG_3V3];
- switch (system_rev) {
+ switch (S3C_SYSTEM_REV_ATAG) {
case GTA01v3_SYSTEM_REV:
case GTA01v4_SYSTEM_REV:
case GTA01Bv2_SYSTEM_REV:
{
struct regulator *regulator = neo1973_gps.regulator[GTA01_GPS_REG_2V5];
- switch (system_rev) {
+ switch (S3C_SYSTEM_REV_ATAG) {
case GTA01v3_SYSTEM_REV:
/* This is CORE_1V8 and cannot be disabled */
break;
int ret = 0;
struct regulator *regulator = neo1973_gps.regulator[GTA01_GPS_REG_2V5];
- switch (system_rev) {
+ switch (S3C_SYSTEM_REV_ATAG) {
case GTA01v3_SYSTEM_REV:
/* This is CORE_1V8 and cannot be disabled */
ret = 1;
{
struct regulator *regulator = neo1973_gps.regulator[GTA01_GPS_REG_1V5];
- switch (system_rev) {
+ switch (S3C_SYSTEM_REV_ATAG) {
case GTA01v3_SYSTEM_REV:
case GTA01v4_SYSTEM_REV:
case GTA01Bv2_SYSTEM_REV:
int ret = 0;
struct regulator *regulator = neo1973_gps.regulator[GTA01_GPS_REG_1V5];
- switch (system_rev) {
+ switch (S3C_SYSTEM_REV_ATAG) {
case GTA01v3_SYSTEM_REV:
case GTA01v4_SYSTEM_REV:
case GTA01Bv2_SYSTEM_REV:
/* This is the nRESET pin */
static void gps_rst_set(int on)
{
- switch (system_rev) {
+ switch (S3C_SYSTEM_REV_ATAG) {
case GTA01v3_SYSTEM_REV:
pcf50606_gpo_set_active(gta01_pcf, PCF50606_GPO1, on);
break;
static int gps_rst_get(void)
{
- switch (system_rev) {
+ switch (S3C_SYSTEM_REV_ATAG) {
case GTA01v3_SYSTEM_REV:
return pcf50606_gpo_get_active(gta01_pcf, PCF50606_GPO1);
break;
if (machine_is_neo1973_gta01()) {
s3c2410_gpio_cfgpin(GTA01_GPIO_GPS_PWRON, S3C2410_GPIO_OUTPUT);
- switch (system_rev) {
+ switch (S3C_SYSTEM_REV_ATAG) {
case GTA01v3_SYSTEM_REV:
break;
case GTA01v4_SYSTEM_REV:
gps_power_sequence_down();
- switch (system_rev) {
+ switch (S3C_SYSTEM_REV_ATAG) {
case GTA01v3_SYSTEM_REV:
case GTA01v4_SYSTEM_REV:
case GTA01Bv2_SYSTEM_REV:
#include <mach/s3c24xx-serial.h>
#include <mach/hardware.h>
+#include <mach/cpu.h>
/* For GTA02 */
#include <mach/gta02.h>
static int __init gta01_gsm_probe(struct platform_device *pdev)
{
- switch (system_rev) {
+ switch (S3C_SYSTEM_REV_ATAG) {
case GTA01v3_SYSTEM_REV:
gta01_gsm.gpio_ngsm_en = GTA01v3_GPIO_nGSM_EN;
break;
break;
}
- switch (system_rev) {
+ switch (S3C_SYSTEM_REV_ATAG) {
case GTA01v4_SYSTEM_REV:
case GTA01Bv2_SYSTEM_REV:
gta01_gsm_sysfs_entries[ARRAY_SIZE(gta01_gsm_sysfs_entries)-2] =