PageRenderTime 24ms CodeModel.GetById 14ms app.highlight 7ms RepoModel.GetById 2ms app.codeStats 0ms

/arch/arm/mach-pxa/saarb.c

https://github.com/AICP/kernel_asus_grouper
C | 114 lines | 89 code | 14 blank | 11 comment | 0 complexity | 6d5daaab10db528544f70c3145e91d4f MD5 | raw file
  1/*
  2 *  linux/arch/arm/mach-pxa/saarb.c
  3 *
  4 *  Support for the Marvell Handheld Platform (aka SAARB)
  5 *
  6 *  Copyright (C) 2007-2010 Marvell International Ltd.
  7 *
  8 *  This program is free software; you can redistribute it and/or modify
  9 *  it under the terms of the GNU General Public License version 2 as
 10 *  publishhed by the Free Software Foundation.
 11 */
 12
 13#include <linux/init.h>
 14#include <linux/kernel.h>
 15#include <linux/i2c.h>
 16#include <linux/i2c/pxa-i2c.h>
 17#include <linux/mfd/88pm860x.h>
 18
 19#include <asm/mach-types.h>
 20#include <asm/mach/arch.h>
 21
 22#include <mach/irqs.h>
 23#include <mach/hardware.h>
 24#include <mach/mfp.h>
 25#include <mach/mfp-pxa930.h>
 26#include <mach/gpio.h>
 27
 28#include "generic.h"
 29
 30#define SAARB_NR_IRQS	(IRQ_BOARD_START + 40)
 31
 32static struct pm860x_touch_pdata saarb_touch = {
 33	.gpadc_prebias	= 1,
 34	.slot_cycle	= 1,
 35	.tsi_prebias	= 6,
 36	.pen_prebias	= 16,
 37	.pen_prechg	= 2,
 38	.res_x		= 300,
 39};
 40
 41static struct pm860x_backlight_pdata saarb_backlight[] = {
 42	{
 43		.id	= PM8606_ID_BACKLIGHT,
 44		.iset	= PM8606_WLED_CURRENT(24),
 45		.flags	= PM8606_BACKLIGHT1,
 46	},
 47	{},
 48};
 49
 50static struct pm860x_led_pdata saarb_led[] = {
 51	{
 52		.id	= PM8606_ID_LED,
 53		.iset	= PM8606_LED_CURRENT(12),
 54		.flags	= PM8606_LED1_RED,
 55	}, {
 56		.id	= PM8606_ID_LED,
 57		.iset	= PM8606_LED_CURRENT(12),
 58		.flags	= PM8606_LED1_GREEN,
 59	}, {
 60		.id	= PM8606_ID_LED,
 61		.iset	= PM8606_LED_CURRENT(12),
 62		.flags	= PM8606_LED1_BLUE,
 63	}, {
 64		.id	= PM8606_ID_LED,
 65		.iset	= PM8606_LED_CURRENT(12),
 66		.flags	= PM8606_LED2_RED,
 67	}, {
 68		.id	= PM8606_ID_LED,
 69		.iset	= PM8606_LED_CURRENT(12),
 70		.flags	= PM8606_LED2_GREEN,
 71	}, {
 72		.id	= PM8606_ID_LED,
 73		.iset	= PM8606_LED_CURRENT(12),
 74		.flags	= PM8606_LED2_BLUE,
 75	},
 76};
 77
 78static struct pm860x_platform_data saarb_pm8607_info = {
 79	.touch		= &saarb_touch,
 80	.backlight	= &saarb_backlight[0],
 81	.led		= &saarb_led[0],
 82	.companion_addr	= 0x10,
 83	.irq_mode	= 0,
 84	.irq_base	= IRQ_BOARD_START,
 85
 86	.i2c_port	= GI2C_PORT,
 87};
 88
 89static struct i2c_board_info saarb_i2c_info[] = {
 90	{
 91		.type		= "88PM860x",
 92		.addr		= 0x34,
 93		.platform_data	= &saarb_pm8607_info,
 94		.irq		= gpio_to_irq(mfp_to_gpio(MFP_PIN_GPIO83)),
 95	},
 96};
 97
 98static void __init saarb_init(void)
 99{
100	pxa_set_ffuart_info(NULL);
101	pxa_set_i2c_info(NULL);
102	i2c_register_board_info(0, ARRAY_AND_SIZE(saarb_i2c_info));
103}
104
105MACHINE_START(SAARB, "PXA955 Handheld Platform (aka SAARB)")
106	.boot_params    = 0xa0000100,
107	.map_io         = pxa3xx_map_io,
108	.nr_irqs	= SAARB_NR_IRQS,
109	.init_irq       = pxa95x_init_irq,
110	.handle_irq	= pxa3xx_handle_irq,
111	.timer          = &pxa_timer,
112	.init_machine   = saarb_init,
113MACHINE_END
114