|  | @@ -1814,3 +1814,149 @@ static struct platform_device i2c_bfin_twi_device = {
 | 
	
		
			
				|  |  |  		.platform_data = &bfin_twi0_pins,
 | 
	
		
			
				|  |  |  	},
 | 
	
		
			
				|  |  |  };
 | 
	
		
			
				|  |  | +#endif
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +#if defined(CONFIG_KEYBOARD_ADP5588) || defined(CONFIG_KEYBOARD_ADP5588_MODULE)
 | 
	
		
			
				|  |  | +static const unsigned short adp5588_keymap[ADP5588_KEYMAPSIZE] = {
 | 
	
		
			
				|  |  | +	[0]	 = KEY_GRAVE,
 | 
	
		
			
				|  |  | +	[1]	 = KEY_1,
 | 
	
		
			
				|  |  | +	[2]	 = KEY_2,
 | 
	
		
			
				|  |  | +	[3]	 = KEY_3,
 | 
	
		
			
				|  |  | +	[4]	 = KEY_4,
 | 
	
		
			
				|  |  | +	[5]	 = KEY_5,
 | 
	
		
			
				|  |  | +	[6]	 = KEY_6,
 | 
	
		
			
				|  |  | +	[7]	 = KEY_7,
 | 
	
		
			
				|  |  | +	[8]	 = KEY_8,
 | 
	
		
			
				|  |  | +	[9]	 = KEY_9,
 | 
	
		
			
				|  |  | +	[10]	 = KEY_0,
 | 
	
		
			
				|  |  | +	[11]	 = KEY_MINUS,
 | 
	
		
			
				|  |  | +	[12]	 = KEY_EQUAL,
 | 
	
		
			
				|  |  | +	[13]	 = KEY_BACKSLASH,
 | 
	
		
			
				|  |  | +	[15]	 = KEY_KP0,
 | 
	
		
			
				|  |  | +	[16]	 = KEY_Q,
 | 
	
		
			
				|  |  | +	[17]	 = KEY_W,
 | 
	
		
			
				|  |  | +	[18]	 = KEY_E,
 | 
	
		
			
				|  |  | +	[19]	 = KEY_R,
 | 
	
		
			
				|  |  | +	[20]	 = KEY_T,
 | 
	
		
			
				|  |  | +	[21]	 = KEY_Y,
 | 
	
		
			
				|  |  | +	[22]	 = KEY_U,
 | 
	
		
			
				|  |  | +	[23]	 = KEY_I,
 | 
	
		
			
				|  |  | +	[24]	 = KEY_O,
 | 
	
		
			
				|  |  | +	[25]	 = KEY_P,
 | 
	
		
			
				|  |  | +	[26]	 = KEY_LEFTBRACE,
 | 
	
		
			
				|  |  | +	[27]	 = KEY_RIGHTBRACE,
 | 
	
		
			
				|  |  | +	[29]	 = KEY_KP1,
 | 
	
		
			
				|  |  | +	[30]	 = KEY_KP2,
 | 
	
		
			
				|  |  | +	[31]	 = KEY_KP3,
 | 
	
		
			
				|  |  | +	[32]	 = KEY_A,
 | 
	
		
			
				|  |  | +	[33]	 = KEY_S,
 | 
	
		
			
				|  |  | +	[34]	 = KEY_D,
 | 
	
		
			
				|  |  | +	[35]	 = KEY_F,
 | 
	
		
			
				|  |  | +	[36]	 = KEY_G,
 | 
	
		
			
				|  |  | +	[37]	 = KEY_H,
 | 
	
		
			
				|  |  | +	[38]	 = KEY_J,
 | 
	
		
			
				|  |  | +	[39]	 = KEY_K,
 | 
	
		
			
				|  |  | +	[40]	 = KEY_L,
 | 
	
		
			
				|  |  | +	[41]	 = KEY_SEMICOLON,
 | 
	
		
			
				|  |  | +	[42]	 = KEY_APOSTROPHE,
 | 
	
		
			
				|  |  | +	[43]	 = KEY_BACKSLASH,
 | 
	
		
			
				|  |  | +	[45]	 = KEY_KP4,
 | 
	
		
			
				|  |  | +	[46]	 = KEY_KP5,
 | 
	
		
			
				|  |  | +	[47]	 = KEY_KP6,
 | 
	
		
			
				|  |  | +	[48]	 = KEY_102ND,
 | 
	
		
			
				|  |  | +	[49]	 = KEY_Z,
 | 
	
		
			
				|  |  | +	[50]	 = KEY_X,
 | 
	
		
			
				|  |  | +	[51]	 = KEY_C,
 | 
	
		
			
				|  |  | +	[52]	 = KEY_V,
 | 
	
		
			
				|  |  | +	[53]	 = KEY_B,
 | 
	
		
			
				|  |  | +	[54]	 = KEY_N,
 | 
	
		
			
				|  |  | +	[55]	 = KEY_M,
 | 
	
		
			
				|  |  | +	[56]	 = KEY_COMMA,
 | 
	
		
			
				|  |  | +	[57]	 = KEY_DOT,
 | 
	
		
			
				|  |  | +	[58]	 = KEY_SLASH,
 | 
	
		
			
				|  |  | +	[60]	 = KEY_KPDOT,
 | 
	
		
			
				|  |  | +	[61]	 = KEY_KP7,
 | 
	
		
			
				|  |  | +	[62]	 = KEY_KP8,
 | 
	
		
			
				|  |  | +	[63]	 = KEY_KP9,
 | 
	
		
			
				|  |  | +	[64]	 = KEY_SPACE,
 | 
	
		
			
				|  |  | +	[65]	 = KEY_BACKSPACE,
 | 
	
		
			
				|  |  | +	[66]	 = KEY_TAB,
 | 
	
		
			
				|  |  | +	[67]	 = KEY_KPENTER,
 | 
	
		
			
				|  |  | +	[68]	 = KEY_ENTER,
 | 
	
		
			
				|  |  | +	[69]	 = KEY_ESC,
 | 
	
		
			
				|  |  | +	[70]	 = KEY_DELETE,
 | 
	
		
			
				|  |  | +	[74]	 = KEY_KPMINUS,
 | 
	
		
			
				|  |  | +	[76]	 = KEY_UP,
 | 
	
		
			
				|  |  | +	[77]	 = KEY_DOWN,
 | 
	
		
			
				|  |  | +	[78]	 = KEY_RIGHT,
 | 
	
		
			
				|  |  | +	[79]	 = KEY_LEFT,
 | 
	
		
			
				|  |  | +};
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +static struct adp5588_kpad_platform_data adp5588_kpad_data = {
 | 
	
		
			
				|  |  | +	.rows		= 8,
 | 
	
		
			
				|  |  | +	.cols		= 10,
 | 
	
		
			
				|  |  | +	.keymap		= adp5588_keymap,
 | 
	
		
			
				|  |  | +	.keymapsize	= ARRAY_SIZE(adp5588_keymap),
 | 
	
		
			
				|  |  | +	.repeat		= 0,
 | 
	
		
			
				|  |  | +};
 | 
	
		
			
				|  |  | +#endif
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +#if defined(CONFIG_PMIC_ADP5520) || defined(CONFIG_PMIC_ADP5520_MODULE)
 | 
	
		
			
				|  |  | +#include <linux/mfd/adp5520.h>
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +	/*
 | 
	
		
			
				|  |  | +	 *  ADP5520/5501 Backlight Data
 | 
	
		
			
				|  |  | +	 */
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +static struct adp5520_backlight_platform_data adp5520_backlight_data = {
 | 
	
		
			
				|  |  | +	.fade_in		= ADP5520_FADE_T_1200ms,
 | 
	
		
			
				|  |  | +	.fade_out		= ADP5520_FADE_T_1200ms,
 | 
	
		
			
				|  |  | +	.fade_led_law		= ADP5520_BL_LAW_LINEAR,
 | 
	
		
			
				|  |  | +	.en_ambl_sens		= 1,
 | 
	
		
			
				|  |  | +	.abml_filt		= ADP5520_BL_AMBL_FILT_640ms,
 | 
	
		
			
				|  |  | +	.l1_daylight_max	= ADP5520_BL_CUR_mA(15),
 | 
	
		
			
				|  |  | +	.l1_daylight_dim	= ADP5520_BL_CUR_mA(0),
 | 
	
		
			
				|  |  | +	.l2_office_max		= ADP5520_BL_CUR_mA(7),
 | 
	
		
			
				|  |  | +	.l2_office_dim		= ADP5520_BL_CUR_mA(0),
 | 
	
		
			
				|  |  | +	.l3_dark_max		= ADP5520_BL_CUR_mA(3),
 | 
	
		
			
				|  |  | +	.l3_dark_dim		= ADP5520_BL_CUR_mA(0),
 | 
	
		
			
				|  |  | +	.l2_trip		= ADP5520_L2_COMP_CURR_uA(700),
 | 
	
		
			
				|  |  | +	.l2_hyst		= ADP5520_L2_COMP_CURR_uA(50),
 | 
	
		
			
				|  |  | +	.l3_trip		= ADP5520_L3_COMP_CURR_uA(80),
 | 
	
		
			
				|  |  | +	.l3_hyst		= ADP5520_L3_COMP_CURR_uA(20),
 | 
	
		
			
				|  |  | +};
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +	/*
 | 
	
		
			
				|  |  | +	 *  ADP5520/5501 LEDs Data
 | 
	
		
			
				|  |  | +	 */
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +static struct led_info adp5520_leds[] = {
 | 
	
		
			
				|  |  | +	{
 | 
	
		
			
				|  |  | +		.name = "adp5520-led1",
 | 
	
		
			
				|  |  | +		.default_trigger = "none",
 | 
	
		
			
				|  |  | +		.flags = FLAG_ID_ADP5520_LED1_ADP5501_LED0 | ADP5520_LED_OFFT_600ms,
 | 
	
		
			
				|  |  | +	},
 | 
	
		
			
				|  |  | +#ifdef ADP5520_EN_ALL_LEDS
 | 
	
		
			
				|  |  | +	{
 | 
	
		
			
				|  |  | +		.name = "adp5520-led2",
 | 
	
		
			
				|  |  | +		.default_trigger = "none",
 | 
	
		
			
				|  |  | +		.flags = FLAG_ID_ADP5520_LED2_ADP5501_LED1,
 | 
	
		
			
				|  |  | +	},
 | 
	
		
			
				|  |  | +	{
 | 
	
		
			
				|  |  | +		.name = "adp5520-led3",
 | 
	
		
			
				|  |  | +		.default_trigger = "none",
 | 
	
		
			
				|  |  | +		.flags = FLAG_ID_ADP5520_LED3_ADP5501_LED2,
 | 
	
		
			
				|  |  | +	},
 | 
	
		
			
				|  |  | +#endif
 | 
	
		
			
				|  |  | +};
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +static struct adp5520_leds_platform_data adp5520_leds_data = {
 | 
	
		
			
				|  |  | +	.num_leds = ARRAY_SIZE(adp5520_leds),
 | 
	
		
			
				|  |  | +	.leds = adp5520_leds,
 | 
	
		
			
				|  |  | +	.fade_in = ADP5520_FADE_T_600ms,
 | 
	
		
			
				|  |  | +	.fade_out = ADP5520_FADE_T_600ms,
 | 
	
		
			
				|  |  | +	.led_on_time = ADP5520_LED_ONT_600ms,
 | 
	
		
			
				|  |  | +};
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +	/*
 | 
	
		
			
				|  |  | +	 *  ADP5520 GPIO Data
 |