2005-04-17 02:20:36 +04:00
/*
* Hardware parameter area specific to Sharp SL series devices
*
* Copyright ( c ) 2005 Richard Purdie
*
* Based on Sharp ' s 2.4 kernel patches
*
* 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 .
*
*/
# include <linux/kernel.h>
2007-12-27 16:19:44 +03:00
# include <linux/module.h>
2005-04-17 02:20:36 +04:00
# include <linux/string.h>
# include <asm/mach/sharpsl_param.h>
/*
* Certain hardware parameters determined at the time of device manufacture ,
* typically including LCD parameters are loaded by the bootloader at the
* address PARAM_BASE . As the kernel will overwrite them , we need to store
* them early in the boot process , then pass them to the appropriate drivers .
2007-05-11 23:40:30 +04:00
* Not all devices use all parameters but the format is common to all .
2005-04-17 02:20:36 +04:00
*/
2005-06-20 21:51:07 +04:00
# ifdef CONFIG_ARCH_SA1100
2005-04-17 02:20:36 +04:00
# define PARAM_BASE 0xe8ffc000
# else
# define PARAM_BASE 0xa0000a00
# endif
# define MAGIC_CHG(a,b,c,d) ( ( d << 24 ) | ( c << 16 ) | ( b << 8 ) | a )
# define COMADJ_MAGIC MAGIC_CHG('C','M','A','D')
# define UUID_MAGIC MAGIC_CHG('U','U','I','D')
# define TOUCH_MAGIC MAGIC_CHG('T','U','C','H')
# define AD_MAGIC MAGIC_CHG('B','V','A','D')
# define PHAD_MAGIC MAGIC_CHG('P','H','A','D')
struct sharpsl_param_info sharpsl_param ;
2007-12-27 16:19:44 +03:00
EXPORT_SYMBOL ( sharpsl_param ) ;
2005-04-17 02:20:36 +04:00
void sharpsl_save_param ( void )
{
memcpy ( & sharpsl_param , ( void * ) PARAM_BASE , sizeof ( struct sharpsl_param_info ) ) ;
if ( sharpsl_param . comadj_keyword ! = COMADJ_MAGIC )
sharpsl_param . comadj = - 1 ;
if ( sharpsl_param . phad_keyword ! = PHAD_MAGIC )
sharpsl_param . phadadj = - 1 ;
if ( sharpsl_param . uuid_keyword ! = UUID_MAGIC )
sharpsl_param . uuid [ 0 ] = - 1 ;
if ( sharpsl_param . touch_keyword ! = TOUCH_MAGIC )
sharpsl_param . touch_xp = - 1 ;
if ( sharpsl_param . adadj_keyword ! = AD_MAGIC )
sharpsl_param . adadj = - 1 ;
}