Ejemplo n.º 1
0
static int __init aat2862_probe(struct i2c_client *i2c_dev, const struct i2c_device_id *id)
{
	struct aat2862_device *dev;
	struct backlight_device *bl_dev;
	int err;

	printk(KERN_INFO"%s: i2c probe start\n", __func__);

	aat2862_i2c_client = i2c_dev;

	dev = kzalloc(sizeof(struct aat2862_device), GFP_KERNEL);
	if(dev == NULL) {
		dev_err(&i2c_dev->dev,"fail alloc for aat2862_device\n");
		return 0;
	}

	main_aat2862_dev = dev;

	bl_dev = backlight_device_register(HUB_I2C_BL_NAME, &i2c_dev->dev, NULL, &hub_bl_ops);
	bl_dev->props.max_brightness = MAX_BRIGHTNESS;
	bl_dev->props.brightness = DEFAULT_BRIGHTNESS;
	bl_dev->props.power = FB_BLANK_UNBLANK;
	
	dev->bl_dev = bl_dev;
	dev->client = i2c_dev;
	i2c_set_clientdata(i2c_dev, dev);

/* LGE_CHANGE_S [[email protected]] 2010-03-16, for prevent display flicker*/
	//aat2862_init(i2c_dev);
/* LGE_CHANGE_S [[email protected]] 2010-03-16, for prevent display flicker*/

// 20100717 [email protected] power sequence for touch [START_LGE]
	aat2862_touch_ldo_enable(i2c_dev, 1);
// 20100717 [email protected] power sequence for touch [END_LGE]

	led_classdev_register(&i2c_dev->dev, &lcd_backlight);

	aat2862_set_main_current_level(i2c_dev, DEFAULT_BRIGHTNESS); 
	err = device_create_file(&i2c_dev->dev, &dev_attr_level);
	err = device_create_file(&i2c_dev->dev, &dev_attr_backlight_on_off);//20100825 [email protected] for test_mode
	err = device_create_file(&i2c_dev->dev, &dev_attr_gpio_test);//20100907 [email protected] for gpio_test

//20100709 [email protected] early_suspend [START_LGE]
#ifdef CONFIG_HAS_EARLYSUSPEND
    dev->early_suspend.level = EARLY_SUSPEND_LEVEL_BLANK_SCREEN;
    dev->early_suspend.suspend = aat2862_early_suspend;
    dev->early_suspend.resume = aat2862_late_resume;
    register_early_suspend(&dev->early_suspend);
#endif
//20100709 [email protected] early_suspend [END_LGE]
	gpio_request(LCD_CP_EN, "LCD_CP_EN");
/*LGE_START_S [email protected] for touch key led*/
	TOUCH_KEY_BL_INIT();
	TOUCH_KEY_BL_ON();
/*LGE_START_E [email protected] for touch key led*/

	return 0;
}
Ejemplo n.º 2
0
void aat2862_backlight_off(void)
{
	if (backlight_status == BL_OFF) return;
	saved_main_lcd_level = cur_main_lcd_level;
	aat2862_set_main_current_level(main_aat2862_dev->client, 0);
	backlight_status = BL_OFF;	

	return;
}
Ejemplo n.º 3
0
static int hub_bl_set_intensity(struct backlight_device *bd)
{
	struct i2c_client *client = to_i2c_client(bd->dev.parent);

	aat2862_set_main_current_level(client, bd->props.brightness);
	cur_main_lcd_level = bd->props.brightness; 
	
	return 0;
}
Ejemplo n.º 4
0
void aat2862_backlight_on(void)
{
	//printk("%s received (prev backlight_status: %s)\n", __func__, backlight_status?"ON":"OFF");
	if (backlight_status == BL_ON) return;
	//20100709 [email protected] for resume
	//aat2862_set_main_current_level(main_aat2862_dev->client, DEFAULT_BRIGHTNESS);
	aat2862_set_main_current_level(main_aat2862_dev->client, early_bl_value);
	backlight_status = BL_ON;

	return;
}
Ejemplo n.º 5
0
void aat2862_backlight_off(void)
{
	if (backlight_status == BL_OFF) return;
	saved_main_lcd_level = cur_main_lcd_level;
	aat2862_set_main_current_level(main_aat2862_dev->client, 0);
	backlight_status = BL_OFF;	

/*LGE_START_S [email protected] for touch key led*/
	TOUCH_KEY_BL_OFF();
/*LGE_START_E [email protected] for touch key led*/

	return;
}
Ejemplo n.º 6
0
void aat2862_backlight_on(void)
{
	printk("%s received (prev backlight_status: %s)\n", __func__, backlight_status?"ON":"OFF");
	if (backlight_status == BL_ON) return;

/*LGE_START_S [email protected] for touch key led*/
	TOUCH_KEY_BL_ON();
/*LGE_START_E [email protected] for touch key led*/

	//20100709 [email protected] for resume
	//aat2862_set_main_current_level(main_aat2862_dev->client, DEFAULT_BRIGHTNESS);
	aat2862_set_main_current_level(main_aat2862_dev->client, early_bl_value);
	backlight_status = BL_ON;

	return;
}
Ejemplo n.º 7
0
ssize_t lcd_backlight_store_level(struct device *dev, struct device_attribute *attr, const char *buf, size_t count)
{
	int level;
	struct i2c_client *client = to_i2c_client(dev); 

	if (!count)
		return -EINVAL;
	
	level = simple_strtoul(buf, NULL, 10);
	
	if (level > MAX_BRIGHTNESS)
		level = MAX_BRIGHTNESS;

	aat2862_set_main_current_level(client, level);
	cur_main_lcd_level = level; 
	
	return count;
}
Ejemplo n.º 8
0
static void leds_brightness_set(struct led_classdev *led_cdev, enum led_brightness value)
{
    value = value/12;
	if (value > MAX_BRIGHTNESS)
		value = MAX_BRIGHTNESS;
	//20100709 [email protected] for resume [START_LGE]
    if(early_bl_timer == 0)
    {
        early_bl_value = value;
        return;
    }
	//20100709 [email protected] for resume [END_LGE]
	
	aat2862_set_main_current_level(aat2862_i2c_client, value);
	cur_main_lcd_level = value; 
	
	return;
}
Ejemplo n.º 9
0
static int __init aat2862_probe(struct i2c_client *i2c_dev, const struct i2c_device_id *id)
{
	struct aat2862_device *dev;
	struct backlight_device *bl_dev;
	struct backlight_properties props;   // hjpark 20110427	
	int err;

	printk(KERN_INFO"%s: i2c probe start\n", __func__);

// 20100810 [email protected] GPIO Initialization [START_LGE]
	omap_mux_init_gpio(MY_LCD_CP_EN, OMAP_PIN_OUTPUT);
	err = gpio_request(MY_LCD_CP_EN, "lcd_cp_en");
	if(err < 0) {	
		printk("can't get hub lcd cp enable GPIO\n");
		kzfree(dev);
		return -ENOSYS;
	}
	err = gpio_direction_output(MY_LCD_CP_EN, 1);	
	gpio_set_value(MY_LCD_CP_EN, 1);
	

	omap_mux_init_gpio(MY_TOUCH_I2C2_SW, OMAP_PIN_OUTPUT);
	err = gpio_request(MY_TOUCH_I2C2_SW, "touch_i2c2_sw");
	if(err < 0) {	
		printk("can't get hub touch i2c2 sw enable GPIO\n");
		kzfree(dev);
		return -ENOSYS;
	}
	err = gpio_direction_output(MY_TOUCH_I2C2_SW, 0);	
	gpio_set_value(MY_TOUCH_I2C2_SW, 0);

	aat2862_touch_ldo_enable(i2c_dev, 1);
// 20100810 [email protected] GPIO Initialization [END_LGE]	

	aat2862_i2c_client = i2c_dev;

	dev = kzalloc(sizeof(struct aat2862_device), GFP_KERNEL);
	if(dev == NULL) {
		dev_err(&i2c_dev->dev,"fail alloc for aat2862_device\n");
		return 0;
	}

	main_aat2862_dev = dev;

#if 0 // froyo k32 origin
	bl_dev = backlight_device_register(HUB_I2C_BL_NAME, &i2c_dev->dev, NULL, &hub_bl_ops);
#else
	bl_dev = backlight_device_register(HUB_I2C_BL_NAME, &i2c_dev->dev, NULL, &hub_bl_ops, &props);
#endif 
	bl_dev->props.max_brightness = MAX_BRIGHTNESS;
	bl_dev->props.brightness = DEFAULT_BRIGHTNESS;
	bl_dev->props.power = FB_BLANK_UNBLANK;
	
	dev->bl_dev = bl_dev;
	dev->client = i2c_dev;
	i2c_set_clientdata(i2c_dev, dev);

/* LGE_CHANGE_S [[email protected]] 2010-03-16, for prevent display flicker*/
	//aat2862_init(i2c_dev);
/* LGE_CHANGE_S [[email protected]] 2010-03-16, for prevent display flicker*/

	led_classdev_register(&i2c_dev->dev, &lcd_backlight);

	aat2862_set_main_current_level(i2c_dev, DEFAULT_BRIGHTNESS); 
	err = device_create_file(&i2c_dev->dev, &dev_attr_level);
	err = device_create_file(&i2c_dev->dev, &dev_attr_backlight_on_off);//20100825 [email protected] for test_mode

//20100709 [email protected] early_suspend [START_LGE]
#ifdef CONFIG_HAS_EARLYSUSPEND
    dev->early_suspend.level = EARLY_SUSPEND_LEVEL_BLANK_SCREEN;
    dev->early_suspend.suspend = aat2862_early_suspend;
    dev->early_suspend.resume = aat2862_late_resume;
    register_early_suspend(&dev->early_suspend);
#endif
//20100709 [email protected] early_suspend [END_LGE]

	return 0;
}