|
@@ -20,6 +20,7 @@
|
|
|
#include <linux/regulator/machine.h>
|
|
|
#include <linux/mfd/max8997.h>
|
|
|
#include <linux/lcd.h>
|
|
|
+#include <linux/rfkill-gpio.h>
|
|
|
|
|
|
#include <asm/mach/arch.h>
|
|
|
#include <asm/hardware/gic.h>
|
|
@@ -235,6 +236,7 @@ static struct regulator_init_data __initdata max8997_ldo9_data = {
|
|
|
.min_uV = 2800000,
|
|
|
.max_uV = 2800000,
|
|
|
.apply_uV = 1,
|
|
|
+ .always_on = 1,
|
|
|
.valid_ops_mask = REGULATOR_CHANGE_STATUS,
|
|
|
.state_mem = {
|
|
|
.disabled = 1,
|
|
@@ -278,6 +280,7 @@ static struct regulator_init_data __initdata max8997_ldo14_data = {
|
|
|
.min_uV = 1800000,
|
|
|
.max_uV = 1800000,
|
|
|
.apply_uV = 1,
|
|
|
+ .always_on = 1,
|
|
|
.valid_ops_mask = REGULATOR_CHANGE_STATUS,
|
|
|
.state_mem = {
|
|
|
.disabled = 1,
|
|
@@ -293,6 +296,7 @@ static struct regulator_init_data __initdata max8997_ldo17_data = {
|
|
|
.min_uV = 3300000,
|
|
|
.max_uV = 3300000,
|
|
|
.apply_uV = 1,
|
|
|
+ .always_on = 1,
|
|
|
.valid_ops_mask = REGULATOR_CHANGE_STATUS,
|
|
|
.state_mem = {
|
|
|
.disabled = 1,
|
|
@@ -602,6 +606,23 @@ static struct s3c_fb_platdata origen_lcd_pdata __initdata = {
|
|
|
.setup_gpio = exynos4_fimd0_gpio_setup_24bpp,
|
|
|
};
|
|
|
|
|
|
+/* Bluetooth rfkill gpio platform data */
|
|
|
+struct rfkill_gpio_platform_data origen_bt_pdata = {
|
|
|
+ .reset_gpio = EXYNOS4_GPX2(2),
|
|
|
+ .shutdown_gpio = -1,
|
|
|
+ .type = RFKILL_TYPE_BLUETOOTH,
|
|
|
+ .name = "origen-bt",
|
|
|
+};
|
|
|
+
|
|
|
+/* Bluetooth Platform device */
|
|
|
+static struct platform_device origen_device_bluetooth = {
|
|
|
+ .name = "rfkill_gpio",
|
|
|
+ .id = -1,
|
|
|
+ .dev = {
|
|
|
+ .platform_data = &origen_bt_pdata,
|
|
|
+ },
|
|
|
+};
|
|
|
+
|
|
|
static struct platform_device *origen_devices[] __initdata = {
|
|
|
&s3c_device_hsmmc2,
|
|
|
&s3c_device_hsmmc0,
|
|
@@ -630,6 +651,7 @@ static struct platform_device *origen_devices[] __initdata = {
|
|
|
&exynos4_device_pd[PD_MFC],
|
|
|
&origen_device_gpiokeys,
|
|
|
&origen_lcd_hv070wsa,
|
|
|
+ &origen_device_bluetooth,
|
|
|
};
|
|
|
|
|
|
/* LCD Backlight data */
|
|
@@ -643,6 +665,16 @@ static struct platform_pwm_backlight_data origen_bl_data = {
|
|
|
.pwm_period_ns = 1000,
|
|
|
};
|
|
|
|
|
|
+static void __init origen_bt_setup(void)
|
|
|
+{
|
|
|
+ gpio_request(EXYNOS4_GPA0(0), "GPIO BT_UART");
|
|
|
+ /* 4 UART Pins configuration */
|
|
|
+ s3c_gpio_cfgrange_nopull(EXYNOS4_GPA0(0), 4, S3C_GPIO_SFN(2));
|
|
|
+ /* Setup BT Reset, this gpio will be requesed by rfkill-gpio */
|
|
|
+ s3c_gpio_cfgpin(EXYNOS4_GPX2(2), S3C_GPIO_OUTPUT);
|
|
|
+ s3c_gpio_setpull(EXYNOS4_GPX2(2), S3C_GPIO_PULL_NONE);
|
|
|
+}
|
|
|
+
|
|
|
static void s5p_tv_setup(void)
|
|
|
{
|
|
|
/* Direct HPD to HDMI chip */
|
|
@@ -703,6 +735,8 @@ static void __init origen_machine_init(void)
|
|
|
s5p_device_mfc.dev.parent = &exynos4_device_pd[PD_MFC].dev;
|
|
|
|
|
|
samsung_bl_set(&origen_bl_gpio_info, &origen_bl_data);
|
|
|
+
|
|
|
+ origen_bt_setup();
|
|
|
}
|
|
|
|
|
|
MACHINE_START(ORIGEN, "ORIGEN")
|