Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
L
linux
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
nexedi
linux
Commits
8f08bfd4
Commit
8f08bfd4
authored
Oct 30, 2010
by
Ben Dooks
Browse files
Options
Browse Files
Download
Plain Diff
ARM: Merge for-2637/s3c24xx/rx1950
parents
b18cae42
2cc857ff
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
212 additions
and
6 deletions
+212
-6
arch/arm/mach-s3c2440/mach-rx1950.c
arch/arm/mach-s3c2440/mach-rx1950.c
+212
-6
No files found.
arch/arm/mach-s3c2440/mach-rx1950.c
View file @
8f08bfd4
...
...
@@ -25,8 +25,12 @@
#include <linux/input.h>
#include <linux/gpio_keys.h>
#include <linux/sysdev.h>
#include <linux/pda_power.h>
#include <linux/pwm_backlight.h>
#include <linux/pwm.h>
#include <linux/s3c_adc_battery.h>
#include <linux/leds.h>
#include <linux/i2c.h>
#include <linux/mtd/mtd.h>
#include <linux/mtd/partitions.h>
...
...
@@ -55,6 +59,8 @@
#include <plat/irq.h>
#include <plat/ts.h>
#include <sound/uda1380.h>
#define LCD_PWM_PERIOD 192960
#define LCD_PWM_DUTY 127353
...
...
@@ -127,6 +133,193 @@ static struct s3c2410fb_display rx1950_display = {
};
static
int
power_supply_init
(
struct
device
*
dev
)
{
return
gpio_request
(
S3C2410_GPF
(
2
),
"cable plugged"
);
}
static
int
rx1950_is_ac_online
(
void
)
{
return
!
gpio_get_value
(
S3C2410_GPF
(
2
));
}
static
void
power_supply_exit
(
struct
device
*
dev
)
{
gpio_free
(
S3C2410_GPF
(
2
));
}
static
char
*
rx1950_supplicants
[]
=
{
"main-battery"
};
static
struct
pda_power_pdata
power_supply_info
=
{
.
init
=
power_supply_init
,
.
is_ac_online
=
rx1950_is_ac_online
,
.
exit
=
power_supply_exit
,
.
supplied_to
=
rx1950_supplicants
,
.
num_supplicants
=
ARRAY_SIZE
(
rx1950_supplicants
),
};
static
struct
resource
power_supply_resources
[]
=
{
[
0
]
=
{
.
name
=
"ac"
,
.
flags
=
IORESOURCE_IRQ
|
IORESOURCE_IRQ_LOWEDGE
|
IORESOURCE_IRQ_HIGHEDGE
,
.
start
=
IRQ_EINT2
,
.
end
=
IRQ_EINT2
,
},
};
static
struct
platform_device
power_supply
=
{
.
name
=
"pda-power"
,
.
id
=
-
1
,
.
dev
=
{
.
platform_data
=
&
power_supply_info
,
},
.
resource
=
power_supply_resources
,
.
num_resources
=
ARRAY_SIZE
(
power_supply_resources
),
};
static
const
struct
s3c_adc_bat_thresh
bat_lut_noac
[]
=
{
{
.
volt
=
4100
,
.
cur
=
156
,
.
level
=
100
},
{
.
volt
=
4050
,
.
cur
=
156
,
.
level
=
95
},
{
.
volt
=
4025
,
.
cur
=
141
,
.
level
=
90
},
{
.
volt
=
3995
,
.
cur
=
144
,
.
level
=
85
},
{
.
volt
=
3957
,
.
cur
=
162
,
.
level
=
80
},
{
.
volt
=
3931
,
.
cur
=
147
,
.
level
=
75
},
{
.
volt
=
3902
,
.
cur
=
147
,
.
level
=
70
},
{
.
volt
=
3863
,
.
cur
=
153
,
.
level
=
65
},
{
.
volt
=
3838
,
.
cur
=
150
,
.
level
=
60
},
{
.
volt
=
3800
,
.
cur
=
153
,
.
level
=
55
},
{
.
volt
=
3765
,
.
cur
=
153
,
.
level
=
50
},
{
.
volt
=
3748
,
.
cur
=
172
,
.
level
=
45
},
{
.
volt
=
3740
,
.
cur
=
153
,
.
level
=
40
},
{
.
volt
=
3714
,
.
cur
=
175
,
.
level
=
35
},
{
.
volt
=
3710
,
.
cur
=
156
,
.
level
=
30
},
{
.
volt
=
3963
,
.
cur
=
156
,
.
level
=
25
},
{
.
volt
=
3672
,
.
cur
=
178
,
.
level
=
20
},
{
.
volt
=
3651
,
.
cur
=
178
,
.
level
=
15
},
{
.
volt
=
3629
,
.
cur
=
178
,
.
level
=
10
},
{
.
volt
=
3612
,
.
cur
=
162
,
.
level
=
5
},
{
.
volt
=
3605
,
.
cur
=
162
,
.
level
=
0
},
};
static
const
struct
s3c_adc_bat_thresh
bat_lut_acin
[]
=
{
{
.
volt
=
4200
,
.
cur
=
0
,
.
level
=
100
},
{
.
volt
=
4190
,
.
cur
=
0
,
.
level
=
99
},
{
.
volt
=
4178
,
.
cur
=
0
,
.
level
=
95
},
{
.
volt
=
4110
,
.
cur
=
0
,
.
level
=
70
},
{
.
volt
=
4076
,
.
cur
=
0
,
.
level
=
65
},
{
.
volt
=
4046
,
.
cur
=
0
,
.
level
=
60
},
{
.
volt
=
4021
,
.
cur
=
0
,
.
level
=
55
},
{
.
volt
=
3999
,
.
cur
=
0
,
.
level
=
50
},
{
.
volt
=
3982
,
.
cur
=
0
,
.
level
=
45
},
{
.
volt
=
3965
,
.
cur
=
0
,
.
level
=
40
},
{
.
volt
=
3957
,
.
cur
=
0
,
.
level
=
35
},
{
.
volt
=
3948
,
.
cur
=
0
,
.
level
=
30
},
{
.
volt
=
3936
,
.
cur
=
0
,
.
level
=
25
},
{
.
volt
=
3927
,
.
cur
=
0
,
.
level
=
20
},
{
.
volt
=
3906
,
.
cur
=
0
,
.
level
=
15
},
{
.
volt
=
3880
,
.
cur
=
0
,
.
level
=
10
},
{
.
volt
=
3829
,
.
cur
=
0
,
.
level
=
5
},
{
.
volt
=
3820
,
.
cur
=
0
,
.
level
=
0
},
};
int
rx1950_bat_init
(
void
)
{
int
ret
;
ret
=
gpio_request
(
S3C2410_GPJ
(
2
),
"rx1950-charger-enable-1"
);
if
(
ret
)
goto
err_gpio1
;
ret
=
gpio_request
(
S3C2410_GPJ
(
3
),
"rx1950-charger-enable-2"
);
if
(
ret
)
goto
err_gpio2
;
return
0
;
err_gpio2:
gpio_free
(
S3C2410_GPJ
(
2
));
err_gpio1:
return
ret
;
}
void
rx1950_bat_exit
(
void
)
{
gpio_free
(
S3C2410_GPJ
(
2
));
gpio_free
(
S3C2410_GPJ
(
3
));
}
void
rx1950_enable_charger
(
void
)
{
gpio_direction_output
(
S3C2410_GPJ
(
2
),
1
);
gpio_direction_output
(
S3C2410_GPJ
(
3
),
1
);
}
void
rx1950_disable_charger
(
void
)
{
gpio_direction_output
(
S3C2410_GPJ
(
2
),
0
);
gpio_direction_output
(
S3C2410_GPJ
(
3
),
0
);
}
static
struct
gpio_led
rx1950_leds_desc
[]
=
{
{
.
name
=
"Green"
,
.
default_trigger
=
"main-battery-charging-or-full"
,
.
gpio
=
S3C2410_GPA
(
6
),
},
{
.
name
=
"Red"
,
.
default_trigger
=
"main-battery-full"
,
.
gpio
=
S3C2410_GPA
(
7
),
},
{
.
name
=
"Blue"
,
.
default_trigger
=
"rx1950-acx-mem"
,
.
gpio
=
S3C2410_GPA
(
11
),
},
};
static
struct
gpio_led_platform_data
rx1950_leds_pdata
=
{
.
num_leds
=
ARRAY_SIZE
(
rx1950_leds_desc
),
.
leds
=
rx1950_leds_desc
,
};
static
struct
platform_device
rx1950_leds
=
{
.
name
=
"leds-gpio"
,
.
id
=
-
1
,
.
dev
=
{
.
platform_data
=
&
rx1950_leds_pdata
,
},
};
static
struct
s3c_adc_bat_pdata
rx1950_bat_cfg
=
{
.
init
=
rx1950_bat_init
,
.
exit
=
rx1950_bat_exit
,
.
enable_charger
=
rx1950_enable_charger
,
.
disable_charger
=
rx1950_disable_charger
,
.
gpio_charge_finished
=
S3C2410_GPF
(
3
),
.
lut_noac
=
bat_lut_noac
,
.
lut_noac_cnt
=
ARRAY_SIZE
(
bat_lut_noac
),
.
lut_acin
=
bat_lut_acin
,
.
lut_acin_cnt
=
ARRAY_SIZE
(
bat_lut_acin
),
.
volt_channel
=
0
,
.
current_channel
=
1
,
.
volt_mult
=
4235
,
.
current_mult
=
2900
,
.
internal_impedance
=
200
,
};
static
struct
platform_device
rx1950_battery
=
{
.
name
=
"s3c-adc-battery"
,
.
id
=
-
1
,
.
dev
=
{
.
parent
=
&
s3c_device_adc
.
dev
,
.
platform_data
=
&
rx1950_bat_cfg
,
},
};
static
struct
s3c2410fb_mach_info
rx1950_lcd_cfg
=
{
.
displays
=
&
rx1950_display
,
.
num_displays
=
1
,
...
...
@@ -481,11 +674,17 @@ static struct platform_device rx1950_device_gpiokeys = {
.
dev
.
platform_data
=
&
rx1950_gpio_keys_data
,
};
static
struct
s3c2410_platform_i2c
rx1950_i2c_data
=
{
.
flags
=
0
,
.
slave_addr
=
0x42
,
.
frequency
=
400
*
1000
,
.
sda_delay
=
S3C2410_IICLC_SDA_DELAY5
|
S3C2410_IICLC_FILTER_ON
,
static
struct
uda1380_platform_data
uda1380_info
=
{
.
gpio_power
=
S3C2410_GPJ
(
0
),
.
gpio_reset
=
S3C2410_GPD
(
0
),
.
dac_clk
=
UDA1380_DAC_CLK_SYSCLK
,
};
static
struct
i2c_board_info
rx1950_i2c_devices
[]
=
{
{
I2C_BOARD_INFO
(
"uda1380"
,
0x1a
),
.
platform_data
=
&
uda1380_info
,
},
};
static
struct
platform_device
*
rx1950_devices
[]
__initdata
=
{
...
...
@@ -493,6 +692,7 @@ static struct platform_device *rx1950_devices[] __initdata = {
&
s3c_device_wdt
,
&
s3c_device_i2c0
,
&
s3c_device_iis
,
&
s3c_device_pcm
,
&
s3c_device_usbgadget
,
&
s3c_device_rtc
,
&
s3c_device_nand
,
...
...
@@ -503,6 +703,9 @@ static struct platform_device *rx1950_devices[] __initdata = {
&
s3c_device_timer
[
1
],
&
rx1950_backlight
,
&
rx1950_device_gpiokeys
,
&
power_supply
,
&
rx1950_battery
,
&
rx1950_leds
,
};
static
struct
clk
*
rx1950_clocks
[]
__initdata
=
{
...
...
@@ -538,7 +741,7 @@ static void __init rx1950_init_machine(void)
s3c24xx_udc_set_platdata
(
&
rx1950_udc_cfg
);
s3c24xx_ts_set_platdata
(
&
rx1950_ts_cfg
);
s3c24xx_mci_set_platdata
(
&
rx1950_mmc_cfg
);
s3c_i2c0_set_platdata
(
&
rx1950_i2c_data
);
s3c_i2c0_set_platdata
(
NULL
);
s3c_nand_set_platdata
(
&
rx1950_nand_info
);
/* Turn off suspend on both USB ports, and switch the
...
...
@@ -569,6 +772,9 @@ static void __init rx1950_init_machine(void)
WARN_ON
(
gpio_request
(
S3C2410_GPB
(
1
),
"LCD power"
));
platform_add_devices
(
rx1950_devices
,
ARRAY_SIZE
(
rx1950_devices
));
i2c_register_board_info
(
0
,
rx1950_i2c_devices
,
ARRAY_SIZE
(
rx1950_i2c_devices
));
}
/* H1940 and RX3715 need to reserve this for suspend */
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment