* [PATCH 0/6] - Acer n35 fixes and features
@ 2010-10-04 0:23 Jiří Pinkava
2010-10-04 0:24 ` [PATCH 1/6] n35: fix key codes and types Jiří Pinkava
` (8 more replies)
0 siblings, 9 replies; 18+ messages in thread
From: Jiří Pinkava @ 2010-10-04 0:23 UTC (permalink / raw)
To: linux-arm-kernel
This series fix some minor bugs on Acer n35 and add new features:
* fix invalid key codes (typing error)
* Replace hardcoded numbers by named constants in UART configuration
* Fix MMC power management
* Add touchscreen support
* Add LCD backlight regulation
^ permalink raw reply [flat|nested] 18+ messages in thread
* [PATCH 1/6] n35: fix key codes and types
2010-10-04 0:23 [PATCH 0/6] - Acer n35 fixes and features Jiří Pinkava
@ 2010-10-04 0:24 ` Jiří Pinkava
2010-10-04 0:25 ` [PATCH 2/6] n35: Update GPIO documentation for Acer n35 Jiří Pinkava
2010-10-10 23:38 ` [PATCH 1/6] n35: fix key codes and types Ben Dooks
2010-10-06 22:25 ` [PATCH 0/6] - Acer n35 fixes and features Ben Dooks
` (7 subsequent siblings)
8 siblings, 2 replies; 18+ messages in thread
From: Jiří Pinkava @ 2010-10-04 0:24 UTC (permalink / raw)
To: linux-arm-kernel
Signed-off-by: Jiri Pinkava <jiri.pinkava@vscht.cz>
---
arch/arm/mach-s3c2410/mach-n30.c | 5 ++---
1 files changed, 2 insertions(+), 3 deletions(-)
diff --git a/arch/arm/mach-s3c2410/mach-n30.c
b/arch/arm/mach-s3c2410/mach-n30.c
index 41f299d..e732619 100644
--- a/arch/arm/mach-s3c2410/mach-n30.c
+++ b/arch/arm/mach-s3c2410/mach-n30.c
@@ -174,7 +174,6 @@ static struct gpio_keys_button n35_buttons[] = {
{
.gpio = S3C2410_GPF(0),
.code = KEY_POWER,
- .type = EV_PWR,
.desc = "Power",
.active_low = 0,
.wakeup = 1,
@@ -193,13 +192,13 @@ static struct gpio_keys_button n35_buttons[] = {
},
{
.gpio = S3C2410_GPG(6),
- .code = KEY_DOWN,
+ .code = KEY_LEFT,
.desc = "Joystick Left",
.active_low = 0,
},
{
.gpio = S3C2410_GPG(5),
- .code = KEY_DOWN,
+ .code = KEY_RIGHT,
.desc = "Joystick Right",
.active_low = 0,
},
--
1.7.3.1
^ permalink raw reply related [flat|nested] 18+ messages in thread
* [PATCH 2/6] n35: Update GPIO documentation for Acer n35
2010-10-04 0:24 ` [PATCH 1/6] n35: fix key codes and types Jiří Pinkava
@ 2010-10-04 0:25 ` Jiří Pinkava
2010-10-04 0:26 ` PATCH 3/6] n30: Clean up UARTs configuration Jiří Pinkava
2010-10-10 23:38 ` [PATCH 1/6] n35: fix key codes and types Ben Dooks
1 sibling, 1 reply; 18+ messages in thread
From: Jiří Pinkava @ 2010-10-04 0:25 UTC (permalink / raw)
To: linux-arm-kernel
Signed-off-by: Jiri Pinkava <jiri.pinkava@vscht.cz>
---
arch/arm/mach-s3c2410/mach-n30.c | 12 +++++-------
1 files changed, 5 insertions(+), 7 deletions(-)
diff --git a/arch/arm/mach-s3c2410/mach-n30.c
b/arch/arm/mach-s3c2410/mach-n30.c
index e732619..abbb9b5 100644
--- a/arch/arm/mach-s3c2410/mach-n30.c
+++ b/arch/arm/mach-s3c2410/mach-n30.c
@@ -410,13 +410,11 @@ static struct s3c2410_platform_i2c __initdata
n30_i2ccfg = {
static void __init n30_hwinit(void)
{
/* GPA0-11 special functions -- unknown what they do
- * GPA12 N30 special function -- unknown what it does
- * N35/PiN output -- unknown what it does
- *
- * A12 is nGCS1 on the N30 and an output on the N35/PiN. I
- * don't think it does anything useful on the N30, so I ought
- * to make it an output there too since it always driven to 0
- * as far as I can tell. */
+ * GPA12 N30 special function (nGCS1) -- unknown what it does
+ * PiN output -- unknown function
+ * N35 output -- turn on/off red led, 0 = normal operation,
+ * 1 = turn off red led at all. Note: GPD9 must be input or
+ * output with value set to 1 before setting GPA12 to 0. */
if (machine_is_n30())
__raw_writel(0x007fffff, S3C2410_GPACON);
if (machine_is_n35())
--
1.7.3.1
^ permalink raw reply related [flat|nested] 18+ messages in thread
* PATCH 3/6] n30: Clean up UARTs configuration
2010-10-04 0:25 ` [PATCH 2/6] n35: Update GPIO documentation for Acer n35 Jiří Pinkava
@ 2010-10-04 0:26 ` Jiří Pinkava
2010-10-04 0:29 ` [PATCH 4/6] n30: Fix MMC power management Jiří Pinkava
0 siblings, 1 reply; 18+ messages in thread
From: Jiří Pinkava @ 2010-10-04 0:26 UTC (permalink / raw)
To: linux-arm-kernel
Signed-off-by: Jiri Pinkava <jiri.pinkava@vscht.cz>
---
arch/arm/mach-s3c2410/mach-n30.c | 28
+++++++++++++++-------
arch/arm/plat-samsung/include/plat/regs-serial.h | 3 ++
2 files changed, 22 insertions(+), 9 deletions(-)
diff --git a/arch/arm/mach-s3c2410/mach-n30.c
b/arch/arm/mach-s3c2410/mach-n30.c
index abbb9b5..895e1e9a 100644
--- a/arch/arm/mach-s3c2410/mach-n30.c
+++ b/arch/arm/mach-s3c2410/mach-n30.c
@@ -55,32 +55,42 @@ static struct map_desc n30_iodesc[] __initdata = {
/* nothing here yet */
};
+#define UCON (S3C2410_UCON_DEFAULT | \
+ S3C2443_UCON_RXERR_IRQEN)
+
+#define ULCON (S3C2410_LCON_CS8 | \
+ S3C2410_LCON_PNONE)
+
+#define UFCON (S3C2410_UFCON_FIFOMODE | \
+ S3C2410_UFCON_RXTRIG8 | \
+ S3C2410_UFCON_TXTRIG4)
+
static struct s3c2410_uartcfg n30_uartcfgs[] = {
/* Normal serial port */
[0] = {
.hwport = 0,
.flags = 0,
- .ucon = 0x2c5,
- .ulcon = 0x03,
- .ufcon = 0x51,
+ .ucon = UCON,
+ .ulcon = ULCON,
+ .ufcon = UFCON,
},
/* IR port */
[1] = {
.hwport = 1,
.flags = 0,
.uart_flags = UPF_CONS_FLOW,
- .ucon = 0x2c5,
- .ulcon = 0x43,
- .ufcon = 0x51,
+ .ucon = UCON,
+ .ulcon = ULCON | S3C2410_LCON_IRM,
+ .ufcon = UFCON,
},
/* On the N30 the bluetooth controller is connected here.
* On the N35 and variants the GPS receiver is connected here. */
[2] = {
.hwport = 2,
.flags = 0,
- .ucon = 0x2c5,
- .ulcon = 0x03,
- .ufcon = 0x51,
+ .ucon = UCON,
+ .ulcon = ULCON,
+ .ufcon = UFCON,
},
};
diff --git a/arch/arm/plat-samsung/include/plat/regs-serial.h
b/arch/arm/plat-samsung/include/plat/regs-serial.h
index 788837e..c64beca 100644
--- a/arch/arm/plat-samsung/include/plat/regs-serial.h
+++ b/arch/arm/plat-samsung/include/plat/regs-serial.h
@@ -114,6 +114,9 @@
#define S3C2410_UFCON_FIFOMODE (1<<0)
#define S3C2410_UFCON_TXTRIG0 (0<<6)
+#define S3C2410_UFCON_TXTRIG4 (1<<6)
+#define S3C2410_UFCON_TXTRIG8 (2<<6)
+#define S3C2410_UFCON_TXTRIG12 (3<<6)
#define S3C2410_UFCON_RXTRIG8 (1<<4)
#define S3C2410_UFCON_RXTRIG12 (2<<4)
--
1.7.3.1
^ permalink raw reply related [flat|nested] 18+ messages in thread
* [PATCH 4/6] n30: Fix MMC power management
2010-10-04 0:26 ` PATCH 3/6] n30: Clean up UARTs configuration Jiří Pinkava
@ 2010-10-04 0:29 ` Jiří Pinkava
2010-10-04 0:31 ` [PATCH 5/6] n30: Add touchscreen support for Ace n35 Jiří Pinkava
0 siblings, 1 reply; 18+ messages in thread
From: Jiří Pinkava @ 2010-10-04 0:29 UTC (permalink / raw)
To: linux-arm-kernel
MMC "works" in both on or off state, but when operate in off causes
serious data corruptions.
Signed-off-by: Jiri Pinkava <jiri.pinkava@vscht.cz>
---
arch/arm/mach-s3c2410/mach-n30.c | 4 ++--
1 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/arch/arm/mach-s3c2410/mach-n30.c
b/arch/arm/mach-s3c2410/mach-n30.c
index 895e1e9a..ecc039a 100644
--- a/arch/arm/mach-s3c2410/mach-n30.c
+++ b/arch/arm/mach-s3c2410/mach-n30.c
@@ -366,11 +366,11 @@ static void n30_sdi_set_power(unsigned char
power_mode, unsigned short vdd)
switch (power_mode) {
case MMC_POWER_ON:
case MMC_POWER_UP:
- gpio_set_value(S3C2410_GPG(4), 1);
+ gpio_set_value(S3C2410_GPG(4), 0);
break;
case MMC_POWER_OFF:
default:
- gpio_set_value(S3C2410_GPG(4), 0);
+ gpio_set_value(S3C2410_GPG(4), 1);
break;
}
}
--
1.7.3.1
^ permalink raw reply related [flat|nested] 18+ messages in thread
* [PATCH 5/6] n30: Add touchscreen support for Ace n35
2010-10-04 0:29 ` [PATCH 4/6] n30: Fix MMC power management Jiří Pinkava
@ 2010-10-04 0:31 ` Jiří Pinkava
2010-10-04 0:32 ` [PATCH 6/6] n35: Add LCD backlight regulation Jiří Pinkava
0 siblings, 1 reply; 18+ messages in thread
From: Jiří Pinkava @ 2010-10-04 0:31 UTC (permalink / raw)
To: linux-arm-kernel
Signed-off-by: Jiri Pinkava <jiri.pinkava@vscht.cz>
---
arch/arm/mach-s3c2410/Kconfig | 1 +
arch/arm/mach-s3c2410/mach-n30.c | 13 +++++++++++++
2 files changed, 14 insertions(+), 0 deletions(-)
diff --git a/arch/arm/mach-s3c2410/Kconfig b/arch/arm/mach-s3c2410/Kconfig
index 7245a55..1d55349 100644
--- a/arch/arm/mach-s3c2410/Kconfig
+++ b/arch/arm/mach-s3c2410/Kconfig
@@ -100,6 +100,7 @@ config MACH_N30
select MACH_N35
select S3C_DEV_USB_HOST
select S3C_DEV_NAND
+ select S3C2410_SETUP_TS
help
Say Y here if you want suppt for the Acer N30, Acer N35,
Navman PiN570, Yakumo AlphaX or Airis NC05 PDAs.
diff --git a/arch/arm/mach-s3c2410/mach-n30.c
b/arch/arm/mach-s3c2410/mach-n30.c
index ecc039a..be5235d 100644
--- a/arch/arm/mach-s3c2410/mach-n30.c
+++ b/arch/arm/mach-s3c2410/mach-n30.c
@@ -49,6 +49,7 @@
#include <plat/devs.h>
#include <plat/mci.h>
#include <plat/s3c2410.h>
+#include <plat/ts.h>
#include <plat/udc.h>
static struct map_desc n30_iodesc[] __initdata = {
@@ -116,6 +117,13 @@ static struct s3c2410_udc_mach_info n30_udc_cfg
__initdata = {
.vbus_pin_inverted = 0,
};
+static struct s3c2410_ts_mach_info n30_ts_cfg __initdata = {
+ .delay = 16383,
+ .presc = 49,
+ .oversampling_shift = 3,
+ .cfg_gpio = s3c24xx_ts_cfg_gpio,
+};
+
static struct gpio_keys_button n30_buttons[] = {
{
.gpio = S3C2410_GPF(0),
@@ -391,6 +399,8 @@ static struct platform_device *n30_devices[]
__initdata = {
&s3c_device_rtc,
&s3c_device_usbgadget,
&s3c_device_sdi,
+ &s3c_device_adc,
+ &s3c_device_ts,
&n30_button_device,
&n30_blue_led,
&n30_warning_led,
@@ -404,6 +414,8 @@ static struct platform_device *n35_devices[]
__initdata = {
&s3c_device_rtc,
&s3c_device_usbgadget,
&s3c_device_sdi,
+ &s3c_device_adc,
+ &s3c_device_ts,
&n35_button_device,
&n35_blue_led,
&n35_warning_led,
@@ -566,6 +578,7 @@ static void __init n30_init(void)
WARN_ON(gpio_request(S3C2410_GPG(4), "mmc power"));
s3c24xx_fb_set_platdata(&n30_fb_info);
+ s3c24xx_ts_set_platdata(&n30_ts_cfg);
s3c24xx_udc_set_platdata(&n30_udc_cfg);
s3c24xx_mci_set_platdata(&n30_mci_cfg);
s3c_i2c0_set_platdata(&n30_i2ccfg);
--
1.7.3.1
^ permalink raw reply related [flat|nested] 18+ messages in thread
* [PATCH 6/6] n35: Add LCD backlight regulation
2010-10-04 0:31 ` [PATCH 5/6] n30: Add touchscreen support for Ace n35 Jiří Pinkava
@ 2010-10-04 0:32 ` Jiří Pinkava
0 siblings, 0 replies; 18+ messages in thread
From: Jiří Pinkava @ 2010-10-04 0:32 UTC (permalink / raw)
To: linux-arm-kernel
Signed-off-by: Jiri Pinkava <jiri.pinkava@vscht.cz>
---
arch/arm/mach-s3c2410/mach-n30.c | 71
++++++++++++++++++++++++++++++++++++++
1 files changed, 71 insertions(+), 0 deletions(-)
diff --git a/arch/arm/mach-s3c2410/mach-n30.c
b/arch/arm/mach-s3c2410/mach-n30.c
index be5235d..4199143 100644
--- a/arch/arm/mach-s3c2410/mach-n30.c
+++ b/arch/arm/mach-s3c2410/mach-n30.c
@@ -23,6 +23,7 @@
#include <linux/input.h>
#include <linux/interrupt.h>
#include <linux/platform_device.h>
+#include <linux/pwm_backlight.h>
#include <linux/serial_core.h>
#include <linux/timer.h>
#include <linux/io.h>
@@ -369,6 +370,74 @@ static struct s3c2410fb_mach_info n30_fb_info
__initdata = {
.lpcsel = 0x06,
};
+static int n35_backlight_init(struct device *dev)
+{
+ int ret;
+
+ ret = gpio_request(S3C2410_GPB(0), "Backlight PWM output");
+ if (ret)
+ goto request_gpb0_fail;
+ ret = gpio_request(S3C2410_GPB(1), "Backlight power");
+ if (ret)
+ goto request_gpb1_fail;
+
+ /* set GPB0 as output of PWM timer */
+ gpio_set_value(S3C2410_GPB(0), 0);
+ s3c_gpio_setpull(S3C2410_GPB(0), S3C_GPIO_PULL_DOWN);
+ s3c_gpio_cfgpin(S3C2410_GPB(0), S3C2410_GPB0_TOUT0);
+
+ /* backlight power */
+ ret = gpio_direction_output(S3C2410_GPB(1), 1);
+ if (ret)
+ goto direction_gpb1_fail;
+ s3c_gpio_setpull(S3C2410_GPB(1), S3C_GPIO_PULL_UP);
+
+ return 0;
+
+direction_gpb1_fail:
+ gpio_free(S3C2410_GPB(1));
+request_gpb1_fail:
+ gpio_free(S3C2410_GPB(0));
+request_gpb0_fail:
+ return ret;
+}
+
+static int n35_backlight_notify(struct device *dev, int brightness)
+{
+ /* power off backlight, values less than 14 are useless */
+ gpio_set_value(S3C2410_GPB(1), brightness > 14 ? 1 : 0);
+ return (brightness > 14 ? brightness : 0);
+}
+
+static void n35_backlight_exit(struct device *dev)
+{
+ gpio_direction_output(S3C2410_GPB(0), 0);
+ gpio_free(S3C2410_GPB(0));
+
+ gpio_set_value(S3C2410_GPB(1), 0);
+ s3c_gpio_setpull(S3C2410_GPB(1), S3C_GPIO_PULL_UP);
+ gpio_free(S3C2410_GPB(1));
+}
+
+static struct platform_pwm_backlight_data backlight_data = {
+ .pwm_id = 0,
+ .max_brightness = 100,
+ .dft_brightness = 50,
+ .pwm_period_ns = 3*1000*1000,
+ .init = n35_backlight_init,
+ .notify = n35_backlight_notify,
+ .exit = n35_backlight_exit,
+};
+
+static struct platform_device n35_backlight = {
+ .name = "pwm-backlight",
+ .dev = {
+ .parent = &s3c_device_timer[0].dev,
+ .platform_data = &backlight_data,
+ },
+ .id = -1,
+};
+
static void n30_sdi_set_power(unsigned char power_mode, unsigned short
vdd)
{
switch (power_mode) {
@@ -416,6 +485,8 @@ static struct platform_device *n35_devices[]
__initdata = {
&s3c_device_sdi,
&s3c_device_adc,
&s3c_device_ts,
+ &s3c_device_timer[0],
+ &n35_backlight,
&n35_button_device,
&n35_blue_led,
&n35_warning_led,
--
1.7.3.1
^ permalink raw reply related [flat|nested] 18+ messages in thread
* [PATCH 0/6] - Acer n35 fixes and features
2010-10-04 0:23 [PATCH 0/6] - Acer n35 fixes and features Jiří Pinkava
2010-10-04 0:24 ` [PATCH 1/6] n35: fix key codes and types Jiří Pinkava
@ 2010-10-06 22:25 ` Ben Dooks
2010-10-10 23:43 ` Ben Dooks
` (6 subsequent siblings)
8 siblings, 0 replies; 18+ messages in thread
From: Ben Dooks @ 2010-10-06 22:25 UTC (permalink / raw)
To: linux-arm-kernel
On 04/10/10 01:23, Ji?? Pinkava wrote:
> This series fix some minor bugs on Acer n35 and add new features:
>
> * fix invalid key codes (typing error)
> * Replace hardcoded numbers by named constants in UART configuration
> * Fix MMC power management
> * Add touchscreen support
> * Add LCD backlight regulation
first pass looks ok, will try and ensure they're in a branch in the
next day or so.
^ permalink raw reply [flat|nested] 18+ messages in thread
* [PATCH 1/6] n35: fix key codes and types
2010-10-04 0:24 ` [PATCH 1/6] n35: fix key codes and types Jiří Pinkava
2010-10-04 0:25 ` [PATCH 2/6] n35: Update GPIO documentation for Acer n35 Jiří Pinkava
@ 2010-10-10 23:38 ` Ben Dooks
2010-10-13 7:49 ` Jiří Pinkava
1 sibling, 1 reply; 18+ messages in thread
From: Ben Dooks @ 2010-10-10 23:38 UTC (permalink / raw)
To: linux-arm-kernel
On 04/10/10 01:24, Ji?? Pinkava wrote:
A non-empty description would be helpful.
> Signed-off-by: Jiri Pinkava <jiri.pinkava@vscht.cz>
Hi, this doesn't apply to latest linux git.
Is there something this depends on, or does it need
to be re-done?
^ permalink raw reply [flat|nested] 18+ messages in thread
* [PATCH 0/6] - Acer n35 fixes and features
2010-10-04 0:23 [PATCH 0/6] - Acer n35 fixes and features Jiří Pinkava
2010-10-04 0:24 ` [PATCH 1/6] n35: fix key codes and types Jiří Pinkava
2010-10-06 22:25 ` [PATCH 0/6] - Acer n35 fixes and features Ben Dooks
@ 2010-10-10 23:43 ` Ben Dooks
2010-10-13 7:56 ` [PATCH 1/6] n35: fix key codes Jiri.Pinkava at vscht.cz
` (5 subsequent siblings)
8 siblings, 0 replies; 18+ messages in thread
From: Ben Dooks @ 2010-10-10 23:43 UTC (permalink / raw)
To: linux-arm-kernel
On 04/10/10 01:23, Ji?? Pinkava wrote:
> This series fix some minor bugs on Acer n35 and add new features:
>
> * fix invalid key codes (typing error)
> * Replace hardcoded numbers by named constants in UART configuration
> * Fix MMC power management
> * Add touchscreen support
> * Add LCD backlight regulation
Hi, could you repost with some more informative patch descriptions
please, and give pointers to any pre-requisities.
^ permalink raw reply [flat|nested] 18+ messages in thread
* [PATCH 1/6] n35: fix key codes and types
2010-10-10 23:38 ` [PATCH 1/6] n35: fix key codes and types Ben Dooks
@ 2010-10-13 7:49 ` Jiří Pinkava
0 siblings, 0 replies; 18+ messages in thread
From: Jiří Pinkava @ 2010-10-13 7:49 UTC (permalink / raw)
To: linux-arm-kernel
Dne 11.10.2010 01:38, Ben Dooks napsal(a):
> On 04/10/10 01:24, Ji?? Pinkava wrote:
>
> A non-empty description would be helpful.
>
>> Signed-off-by: Jiri Pinkava<jiri.pinkava@vscht.cz>
>
> Hi, this doesn't apply to latest linux git.
It is against latest linux git no extra pre-requisities, may be
something messed up by my email client, resending with more comments and
with git sedn-email.
>
> Is there something this depends on, or does it need
> to be re-done?
^ permalink raw reply [flat|nested] 18+ messages in thread
* [PATCH 1/6] n35: fix key codes
2010-10-04 0:23 [PATCH 0/6] - Acer n35 fixes and features Jiří Pinkava
` (2 preceding siblings ...)
2010-10-10 23:43 ` Ben Dooks
@ 2010-10-13 7:56 ` Jiri.Pinkava at vscht.cz
2010-10-13 7:56 ` [PATCH 2/6] n35: Update GPIO documentation for Acer n35 Jiri.Pinkava at vscht.cz
` (4 subsequent siblings)
8 siblings, 0 replies; 18+ messages in thread
From: Jiri.Pinkava at vscht.cz @ 2010-10-13 7:56 UTC (permalink / raw)
To: linux-arm-kernel
Power is ordinary button, marking as type EV_POWER is incorrect.
About KEY_DOWN, someone just copied the code and forgot to asociate proper
keycodes. (Descriptions are correct, keycodes are not.)
Signed-off-by: Jiri Pinkava <jiri.pinkava@vscht.cz>
---
arch/arm/mach-s3c2410/mach-n30.c | 5 ++---
1 files changed, 2 insertions(+), 3 deletions(-)
diff --git a/arch/arm/mach-s3c2410/mach-n30.c b/arch/arm/mach-s3c2410/mach-n30.c
index 41f299d..e732619 100644
--- a/arch/arm/mach-s3c2410/mach-n30.c
+++ b/arch/arm/mach-s3c2410/mach-n30.c
@@ -174,7 +174,6 @@ static struct gpio_keys_button n35_buttons[] = {
{
.gpio = S3C2410_GPF(0),
.code = KEY_POWER,
- .type = EV_PWR,
.desc = "Power",
.active_low = 0,
.wakeup = 1,
@@ -193,13 +192,13 @@ static struct gpio_keys_button n35_buttons[] = {
},
{
.gpio = S3C2410_GPG(6),
- .code = KEY_DOWN,
+ .code = KEY_LEFT,
.desc = "Joystick Left",
.active_low = 0,
},
{
.gpio = S3C2410_GPG(5),
- .code = KEY_DOWN,
+ .code = KEY_RIGHT,
.desc = "Joystick Right",
.active_low = 0,
},
--
1.7.3.1
^ permalink raw reply related [flat|nested] 18+ messages in thread
* [PATCH 2/6] n35: Update GPIO documentation for Acer n35
2010-10-04 0:23 [PATCH 0/6] - Acer n35 fixes and features Jiří Pinkava
` (3 preceding siblings ...)
2010-10-13 7:56 ` [PATCH 1/6] n35: fix key codes Jiri.Pinkava at vscht.cz
@ 2010-10-13 7:56 ` Jiri.Pinkava at vscht.cz
2010-10-13 7:56 ` [PATCH 3/6] n30: Clean up UARTs configuration Jiri.Pinkava at vscht.cz
` (3 subsequent siblings)
8 siblings, 0 replies; 18+ messages in thread
From: Jiri.Pinkava at vscht.cz @ 2010-10-13 7:56 UTC (permalink / raw)
To: linux-arm-kernel
More precise and detailed information about GPA12 on Acer n35.
Signed-off-by: Jiri Pinkava <jiri.pinkava@vscht.cz>
---
arch/arm/mach-s3c2410/mach-n30.c | 12 +++++-------
1 files changed, 5 insertions(+), 7 deletions(-)
diff --git a/arch/arm/mach-s3c2410/mach-n30.c b/arch/arm/mach-s3c2410/mach-n30.c
index e732619..abbb9b5 100644
--- a/arch/arm/mach-s3c2410/mach-n30.c
+++ b/arch/arm/mach-s3c2410/mach-n30.c
@@ -410,13 +410,11 @@ static struct s3c2410_platform_i2c __initdata n30_i2ccfg = {
static void __init n30_hwinit(void)
{
/* GPA0-11 special functions -- unknown what they do
- * GPA12 N30 special function -- unknown what it does
- * N35/PiN output -- unknown what it does
- *
- * A12 is nGCS1 on the N30 and an output on the N35/PiN. I
- * don't think it does anything useful on the N30, so I ought
- * to make it an output there too since it always driven to 0
- * as far as I can tell. */
+ * GPA12 N30 special function (nGCS1) -- unknown what it does
+ * PiN output -- unknown function
+ * N35 output -- turn on/off red led, 0 = normal operation,
+ * 1 = turn off red led at all. Note: GPD9 must be input or
+ * output with value set to 1 before setting GPA12 to 0. */
if (machine_is_n30())
__raw_writel(0x007fffff, S3C2410_GPACON);
if (machine_is_n35())
--
1.7.3.1
^ permalink raw reply related [flat|nested] 18+ messages in thread
* [PATCH 3/6] n30: Clean up UARTs configuration
2010-10-04 0:23 [PATCH 0/6] - Acer n35 fixes and features Jiří Pinkava
` (4 preceding siblings ...)
2010-10-13 7:56 ` [PATCH 2/6] n35: Update GPIO documentation for Acer n35 Jiri.Pinkava at vscht.cz
@ 2010-10-13 7:56 ` Jiri.Pinkava at vscht.cz
2010-10-13 7:56 ` [PATCH 4/6] n30: Fix MMC power management on Acer n30 / n35 Jiri.Pinkava at vscht.cz
` (2 subsequent siblings)
8 siblings, 0 replies; 18+ messages in thread
From: Jiri.Pinkava at vscht.cz @ 2010-10-13 7:56 UTC (permalink / raw)
To: linux-arm-kernel
Just replace numeric constatns with macros in style used in other platforms.
Define missing macros for UART register configuration.
Signed-off-by: Jiri Pinkava <jiri.pinkava@vscht.cz>
---
arch/arm/mach-s3c2410/mach-n30.c | 28 +++++++++++++++-------
arch/arm/plat-samsung/include/plat/regs-serial.h | 3 ++
2 files changed, 22 insertions(+), 9 deletions(-)
diff --git a/arch/arm/mach-s3c2410/mach-n30.c b/arch/arm/mach-s3c2410/mach-n30.c
index abbb9b5..895e1e9a 100644
--- a/arch/arm/mach-s3c2410/mach-n30.c
+++ b/arch/arm/mach-s3c2410/mach-n30.c
@@ -55,32 +55,42 @@ static struct map_desc n30_iodesc[] __initdata = {
/* nothing here yet */
};
+#define UCON (S3C2410_UCON_DEFAULT | \
+ S3C2443_UCON_RXERR_IRQEN)
+
+#define ULCON (S3C2410_LCON_CS8 | \
+ S3C2410_LCON_PNONE)
+
+#define UFCON (S3C2410_UFCON_FIFOMODE | \
+ S3C2410_UFCON_RXTRIG8 | \
+ S3C2410_UFCON_TXTRIG4)
+
static struct s3c2410_uartcfg n30_uartcfgs[] = {
/* Normal serial port */
[0] = {
.hwport = 0,
.flags = 0,
- .ucon = 0x2c5,
- .ulcon = 0x03,
- .ufcon = 0x51,
+ .ucon = UCON,
+ .ulcon = ULCON,
+ .ufcon = UFCON,
},
/* IR port */
[1] = {
.hwport = 1,
.flags = 0,
.uart_flags = UPF_CONS_FLOW,
- .ucon = 0x2c5,
- .ulcon = 0x43,
- .ufcon = 0x51,
+ .ucon = UCON,
+ .ulcon = ULCON | S3C2410_LCON_IRM,
+ .ufcon = UFCON,
},
/* On the N30 the bluetooth controller is connected here.
* On the N35 and variants the GPS receiver is connected here. */
[2] = {
.hwport = 2,
.flags = 0,
- .ucon = 0x2c5,
- .ulcon = 0x03,
- .ufcon = 0x51,
+ .ucon = UCON,
+ .ulcon = ULCON,
+ .ufcon = UFCON,
},
};
diff --git a/arch/arm/plat-samsung/include/plat/regs-serial.h b/arch/arm/plat-samsung/include/plat/regs-serial.h
index 788837e..c64beca 100644
--- a/arch/arm/plat-samsung/include/plat/regs-serial.h
+++ b/arch/arm/plat-samsung/include/plat/regs-serial.h
@@ -114,6 +114,9 @@
#define S3C2410_UFCON_FIFOMODE (1<<0)
#define S3C2410_UFCON_TXTRIG0 (0<<6)
+#define S3C2410_UFCON_TXTRIG4 (1<<6)
+#define S3C2410_UFCON_TXTRIG8 (2<<6)
+#define S3C2410_UFCON_TXTRIG12 (3<<6)
#define S3C2410_UFCON_RXTRIG8 (1<<4)
#define S3C2410_UFCON_RXTRIG12 (2<<4)
--
1.7.3.1
^ permalink raw reply related [flat|nested] 18+ messages in thread
* [PATCH 4/6] n30: Fix MMC power management on Acer n30 / n35
2010-10-04 0:23 [PATCH 0/6] - Acer n35 fixes and features Jiří Pinkava
` (5 preceding siblings ...)
2010-10-13 7:56 ` [PATCH 3/6] n30: Clean up UARTs configuration Jiri.Pinkava at vscht.cz
@ 2010-10-13 7:56 ` Jiri.Pinkava at vscht.cz
2010-10-13 7:56 ` [PATCH 5/6] n30: Add touchscreen support for " Jiri.Pinkava at vscht.cz
2010-10-13 7:56 ` [PATCH 6/6] n35: Add LCD backlight regulation on Acer n35 Jiri.Pinkava at vscht.cz
8 siblings, 0 replies; 18+ messages in thread
From: Jiri.Pinkava at vscht.cz @ 2010-10-13 7:56 UTC (permalink / raw)
To: linux-arm-kernel
Someone (me) messed this up. MMC works even in off state, but causes serious
data corruptions during write.
Signed-off-by: Jiri Pinkava <jiri.pinkava@vscht.cz>
---
arch/arm/mach-s3c2410/mach-n30.c | 4 ++--
1 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/arch/arm/mach-s3c2410/mach-n30.c b/arch/arm/mach-s3c2410/mach-n30.c
index 895e1e9a..ecc039a 100644
--- a/arch/arm/mach-s3c2410/mach-n30.c
+++ b/arch/arm/mach-s3c2410/mach-n30.c
@@ -366,11 +366,11 @@ static void n30_sdi_set_power(unsigned char power_mode, unsigned short vdd)
switch (power_mode) {
case MMC_POWER_ON:
case MMC_POWER_UP:
- gpio_set_value(S3C2410_GPG(4), 1);
+ gpio_set_value(S3C2410_GPG(4), 0);
break;
case MMC_POWER_OFF:
default:
- gpio_set_value(S3C2410_GPG(4), 0);
+ gpio_set_value(S3C2410_GPG(4), 1);
break;
}
}
--
1.7.3.1
^ permalink raw reply related [flat|nested] 18+ messages in thread
* [PATCH 5/6] n30: Add touchscreen support for Acer n30 / n35
2010-10-04 0:23 [PATCH 0/6] - Acer n35 fixes and features Jiří Pinkava
` (6 preceding siblings ...)
2010-10-13 7:56 ` [PATCH 4/6] n30: Fix MMC power management on Acer n30 / n35 Jiri.Pinkava at vscht.cz
@ 2010-10-13 7:56 ` Jiri.Pinkava at vscht.cz
2010-10-13 7:56 ` [PATCH 6/6] n35: Add LCD backlight regulation on Acer n35 Jiri.Pinkava at vscht.cz
8 siblings, 0 replies; 18+ messages in thread
From: Jiri.Pinkava at vscht.cz @ 2010-10-13 7:56 UTC (permalink / raw)
To: linux-arm-kernel
Signed-off-by: Jiri Pinkava <jiri.pinkava@vscht.cz>
---
arch/arm/mach-s3c2410/Kconfig | 1 +
arch/arm/mach-s3c2410/mach-n30.c | 13 +++++++++++++
2 files changed, 14 insertions(+), 0 deletions(-)
diff --git a/arch/arm/mach-s3c2410/Kconfig b/arch/arm/mach-s3c2410/Kconfig
index 7245a55..1d55349 100644
--- a/arch/arm/mach-s3c2410/Kconfig
+++ b/arch/arm/mach-s3c2410/Kconfig
@@ -100,6 +100,7 @@ config MACH_N30
select MACH_N35
select S3C_DEV_USB_HOST
select S3C_DEV_NAND
+ select S3C2410_SETUP_TS
help
Say Y here if you want suppt for the Acer N30, Acer N35,
Navman PiN570, Yakumo AlphaX or Airis NC05 PDAs.
diff --git a/arch/arm/mach-s3c2410/mach-n30.c b/arch/arm/mach-s3c2410/mach-n30.c
index ecc039a..be5235d 100644
--- a/arch/arm/mach-s3c2410/mach-n30.c
+++ b/arch/arm/mach-s3c2410/mach-n30.c
@@ -49,6 +49,7 @@
#include <plat/devs.h>
#include <plat/mci.h>
#include <plat/s3c2410.h>
+#include <plat/ts.h>
#include <plat/udc.h>
static struct map_desc n30_iodesc[] __initdata = {
@@ -116,6 +117,13 @@ static struct s3c2410_udc_mach_info n30_udc_cfg __initdata = {
.vbus_pin_inverted = 0,
};
+static struct s3c2410_ts_mach_info n30_ts_cfg __initdata = {
+ .delay = 16383,
+ .presc = 49,
+ .oversampling_shift = 3,
+ .cfg_gpio = s3c24xx_ts_cfg_gpio,
+};
+
static struct gpio_keys_button n30_buttons[] = {
{
.gpio = S3C2410_GPF(0),
@@ -391,6 +399,8 @@ static struct platform_device *n30_devices[] __initdata = {
&s3c_device_rtc,
&s3c_device_usbgadget,
&s3c_device_sdi,
+ &s3c_device_adc,
+ &s3c_device_ts,
&n30_button_device,
&n30_blue_led,
&n30_warning_led,
@@ -404,6 +414,8 @@ static struct platform_device *n35_devices[] __initdata = {
&s3c_device_rtc,
&s3c_device_usbgadget,
&s3c_device_sdi,
+ &s3c_device_adc,
+ &s3c_device_ts,
&n35_button_device,
&n35_blue_led,
&n35_warning_led,
@@ -566,6 +578,7 @@ static void __init n30_init(void)
WARN_ON(gpio_request(S3C2410_GPG(4), "mmc power"));
s3c24xx_fb_set_platdata(&n30_fb_info);
+ s3c24xx_ts_set_platdata(&n30_ts_cfg);
s3c24xx_udc_set_platdata(&n30_udc_cfg);
s3c24xx_mci_set_platdata(&n30_mci_cfg);
s3c_i2c0_set_platdata(&n30_i2ccfg);
--
1.7.3.1
^ permalink raw reply related [flat|nested] 18+ messages in thread
* [PATCH 6/6] n35: Add LCD backlight regulation on Acer n35
2010-10-04 0:23 [PATCH 0/6] - Acer n35 fixes and features Jiří Pinkava
` (7 preceding siblings ...)
2010-10-13 7:56 ` [PATCH 5/6] n30: Add touchscreen support for " Jiri.Pinkava at vscht.cz
@ 2010-10-13 7:56 ` Jiri.Pinkava at vscht.cz
8 siblings, 0 replies; 18+ messages in thread
From: Jiri.Pinkava at vscht.cz @ 2010-10-13 7:56 UTC (permalink / raw)
To: linux-arm-kernel
Signed-off-by: Jiri Pinkava <jiri.pinkava@vscht.cz>
---
arch/arm/mach-s3c2410/mach-n30.c | 71 ++++++++++++++++++++++++++++++++++++++
1 files changed, 71 insertions(+), 0 deletions(-)
diff --git a/arch/arm/mach-s3c2410/mach-n30.c b/arch/arm/mach-s3c2410/mach-n30.c
index be5235d..4199143 100644
--- a/arch/arm/mach-s3c2410/mach-n30.c
+++ b/arch/arm/mach-s3c2410/mach-n30.c
@@ -23,6 +23,7 @@
#include <linux/input.h>
#include <linux/interrupt.h>
#include <linux/platform_device.h>
+#include <linux/pwm_backlight.h>
#include <linux/serial_core.h>
#include <linux/timer.h>
#include <linux/io.h>
@@ -369,6 +370,74 @@ static struct s3c2410fb_mach_info n30_fb_info __initdata = {
.lpcsel = 0x06,
};
+static int n35_backlight_init(struct device *dev)
+{
+ int ret;
+
+ ret = gpio_request(S3C2410_GPB(0), "Backlight PWM output");
+ if (ret)
+ goto request_gpb0_fail;
+ ret = gpio_request(S3C2410_GPB(1), "Backlight power");
+ if (ret)
+ goto request_gpb1_fail;
+
+ /* set GPB0 as output of PWM timer */
+ gpio_set_value(S3C2410_GPB(0), 0);
+ s3c_gpio_setpull(S3C2410_GPB(0), S3C_GPIO_PULL_DOWN);
+ s3c_gpio_cfgpin(S3C2410_GPB(0), S3C2410_GPB0_TOUT0);
+
+ /* backlight power */
+ ret = gpio_direction_output(S3C2410_GPB(1), 1);
+ if (ret)
+ goto direction_gpb1_fail;
+ s3c_gpio_setpull(S3C2410_GPB(1), S3C_GPIO_PULL_UP);
+
+ return 0;
+
+direction_gpb1_fail:
+ gpio_free(S3C2410_GPB(1));
+request_gpb1_fail:
+ gpio_free(S3C2410_GPB(0));
+request_gpb0_fail:
+ return ret;
+}
+
+static int n35_backlight_notify(struct device *dev, int brightness)
+{
+ /* power off backlight, values less than 14 are useless */
+ gpio_set_value(S3C2410_GPB(1), brightness > 14 ? 1 : 0);
+ return (brightness > 14 ? brightness : 0);
+}
+
+static void n35_backlight_exit(struct device *dev)
+{
+ gpio_direction_output(S3C2410_GPB(0), 0);
+ gpio_free(S3C2410_GPB(0));
+
+ gpio_set_value(S3C2410_GPB(1), 0);
+ s3c_gpio_setpull(S3C2410_GPB(1), S3C_GPIO_PULL_UP);
+ gpio_free(S3C2410_GPB(1));
+}
+
+static struct platform_pwm_backlight_data backlight_data = {
+ .pwm_id = 0,
+ .max_brightness = 100,
+ .dft_brightness = 50,
+ .pwm_period_ns = 3*1000*1000,
+ .init = n35_backlight_init,
+ .notify = n35_backlight_notify,
+ .exit = n35_backlight_exit,
+};
+
+static struct platform_device n35_backlight = {
+ .name = "pwm-backlight",
+ .dev = {
+ .parent = &s3c_device_timer[0].dev,
+ .platform_data = &backlight_data,
+ },
+ .id = -1,
+};
+
static void n30_sdi_set_power(unsigned char power_mode, unsigned short vdd)
{
switch (power_mode) {
@@ -416,6 +485,8 @@ static struct platform_device *n35_devices[] __initdata = {
&s3c_device_sdi,
&s3c_device_adc,
&s3c_device_ts,
+ &s3c_device_timer[0],
+ &n35_backlight,
&n35_button_device,
&n35_blue_led,
&n35_warning_led,
--
1.7.3.1
^ permalink raw reply related [flat|nested] 18+ messages in thread
* [PATCH 4/6] n30: Fix MMC power management
2011-04-05 23:06 [PATCH 0/6] n35: Fixes and clean up for Acer n30/n35 jiri.pinkava at vscht.cz
@ 2011-04-05 23:06 ` jiri.pinkava at vscht.cz
0 siblings, 0 replies; 18+ messages in thread
From: jiri.pinkava at vscht.cz @ 2011-04-05 23:06 UTC (permalink / raw)
To: linux-arm-kernel
From: Jiri Pinkava <jiri.pinkava@vscht.cz>
On/off states were swapped. In off state voltage just drops low,
card still behaves like powered, but causes serious filesystem
corruptions during writing.
Signed-off-by: Jiri Pinkava <jiri.pinkava@vscht.cz>
---
arch/arm/mach-s3c2410/mach-n30.c | 4 ++--
1 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/arch/arm/mach-s3c2410/mach-n30.c b/arch/arm/mach-s3c2410/mach-n30.c
index d98d7b5..6396827 100644
--- a/arch/arm/mach-s3c2410/mach-n30.c
+++ b/arch/arm/mach-s3c2410/mach-n30.c
@@ -350,11 +350,11 @@ static void n30_sdi_set_power(unsigned char power_mode, unsigned short vdd)
switch (power_mode) {
case MMC_POWER_ON:
case MMC_POWER_UP:
- gpio_set_value(S3C2410_GPG(4), 1);
+ gpio_set_value(S3C2410_GPG(4), 0);
break;
case MMC_POWER_OFF:
default:
- gpio_set_value(S3C2410_GPG(4), 0);
+ gpio_set_value(S3C2410_GPG(4), 1);
break;
}
}
--
1.7.4.2
^ permalink raw reply related [flat|nested] 18+ messages in thread
end of thread, other threads:[~2011-04-05 23:06 UTC | newest]
Thread overview: 18+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2010-10-04 0:23 [PATCH 0/6] - Acer n35 fixes and features Jiří Pinkava
2010-10-04 0:24 ` [PATCH 1/6] n35: fix key codes and types Jiří Pinkava
2010-10-04 0:25 ` [PATCH 2/6] n35: Update GPIO documentation for Acer n35 Jiří Pinkava
2010-10-04 0:26 ` PATCH 3/6] n30: Clean up UARTs configuration Jiří Pinkava
2010-10-04 0:29 ` [PATCH 4/6] n30: Fix MMC power management Jiří Pinkava
2010-10-04 0:31 ` [PATCH 5/6] n30: Add touchscreen support for Ace n35 Jiří Pinkava
2010-10-04 0:32 ` [PATCH 6/6] n35: Add LCD backlight regulation Jiří Pinkava
2010-10-10 23:38 ` [PATCH 1/6] n35: fix key codes and types Ben Dooks
2010-10-13 7:49 ` Jiří Pinkava
2010-10-06 22:25 ` [PATCH 0/6] - Acer n35 fixes and features Ben Dooks
2010-10-10 23:43 ` Ben Dooks
2010-10-13 7:56 ` [PATCH 1/6] n35: fix key codes Jiri.Pinkava at vscht.cz
2010-10-13 7:56 ` [PATCH 2/6] n35: Update GPIO documentation for Acer n35 Jiri.Pinkava at vscht.cz
2010-10-13 7:56 ` [PATCH 3/6] n30: Clean up UARTs configuration Jiri.Pinkava at vscht.cz
2010-10-13 7:56 ` [PATCH 4/6] n30: Fix MMC power management on Acer n30 / n35 Jiri.Pinkava at vscht.cz
2010-10-13 7:56 ` [PATCH 5/6] n30: Add touchscreen support for " Jiri.Pinkava at vscht.cz
2010-10-13 7:56 ` [PATCH 6/6] n35: Add LCD backlight regulation on Acer n35 Jiri.Pinkava at vscht.cz
-- strict thread matches above, loose matches on Subject: below --
2011-04-05 23:06 [PATCH 0/6] n35: Fixes and clean up for Acer n30/n35 jiri.pinkava at vscht.cz
2011-04-05 23:06 ` [PATCH 4/6] n30: Fix MMC power management jiri.pinkava at vscht.cz
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.