diff mbox

[05/15] ARM: at91: sam9m10g45ek: Add touchscreen support through at91_adc

Message ID 1394040940-18246-6-git-send-email-alexandre.belloni@free-electrons.com (mailing list archive)
State New, archived
Headers show

Commit Message

Alexandre Belloni March 5, 2014, 5:35 p.m. UTC
at91_adc now supports reading a touchscreen for ADCs without a TSMR register.
Enable touchscreen support through at91_adc. This allows to use both a
touchscreen and the remaining ADC channel at the same time.

Also, lower the clock for the ADC as it allows to have more stable reads and
this is the speed used by atmel_tsadcc.

Signed-off-by: Alexandre Belloni <alexandre.belloni@free-electrons.com>
---
 arch/arm/mach-at91/at91sam9g45.c        | 2 +-
 arch/arm/mach-at91/board-sam9m10g45ek.c | 1 +
 2 files changed, 2 insertions(+), 1 deletion(-)

Comments

Jonathan Cameron March 16, 2014, 6:18 p.m. UTC | #1
On 05/03/14 17:35, Alexandre Belloni wrote:
> at91_adc now supports reading a touchscreen for ADCs without a TSMR register.
> Enable touchscreen support through at91_adc. This allows to use both a
> touchscreen and the remaining ADC channel at the same time.
>
> Also, lower the clock for the ADC as it allows to have more stable reads and
> this is the speed used by atmel_tsadcc.
Are there any side effects on the adc read if that functionality was previously
being used?  I doubt it matters, but probably wants to be mentioned here if there
is.
>
> Signed-off-by: Alexandre Belloni <alexandre.belloni@free-electrons.com>
> ---
>   arch/arm/mach-at91/at91sam9g45.c        | 2 +-
>   arch/arm/mach-at91/board-sam9m10g45ek.c | 1 +
>   2 files changed, 2 insertions(+), 1 deletion(-)
>
> diff --git a/arch/arm/mach-at91/at91sam9g45.c b/arch/arm/mach-at91/at91sam9g45.c
> index 2f455ce35268..3c519a7a938f 100644
> --- a/arch/arm/mach-at91/at91sam9g45.c
> +++ b/arch/arm/mach-at91/at91sam9g45.c
> @@ -181,7 +181,7 @@ static struct clk vdec_clk = {
>   static struct clk adc_op_clk = {
>   	.name		= "adc_op_clk",
>   	.type		= CLK_TYPE_PERIPHERAL,
> -	.rate_hz	= 13200000,
> +	.rate_hz	= 300000,
>   };
>
>   /* AES/TDES/SHA clock - Only for sam9m11/sam9g56 */
> diff --git a/arch/arm/mach-at91/board-sam9m10g45ek.c b/arch/arm/mach-at91/board-sam9m10g45ek.c
> index ef39078c8ce2..4d775b796ce4 100644
> --- a/arch/arm/mach-at91/board-sam9m10g45ek.c
> +++ b/arch/arm/mach-at91/board-sam9m10g45ek.c
> @@ -315,6 +315,7 @@ static struct at91_adc_data ek_adc_data = {
>   	.channels_used = BIT(0) | BIT(1) | BIT(2) | BIT(3) | BIT(4) | BIT(5) | BIT(6) | BIT(7),
>   	.use_external_triggers = true,
>   	.vref = 3300,
> +	.touchscreen_type = ATMEL_ADC_TOUCHSCREEN_4WIRE,
>   };
>
>   /*
>
Alexandre Belloni March 16, 2014, 8 p.m. UTC | #2
On 16/03/2014 at 18:18:41 +0000, Jonathan Cameron wrote :
> On 05/03/14 17:35, Alexandre Belloni wrote:
> >at91_adc now supports reading a touchscreen for ADCs without a TSMR register.
> >Enable touchscreen support through at91_adc. This allows to use both a
> >touchscreen and the remaining ADC channel at the same time.
> >
> >Also, lower the clock for the ADC as it allows to have more stable reads and
> >this is the speed used by atmel_tsadcc.
> Are there any side effects on the adc read if that functionality was previously
> being used?  I doubt it matters, but probably wants to be mentioned here if there
> is.

Hum, it lowers the throughput rate but I really doubt anyone is trying
to achieve 440000 samples per second under linux ;) At that frequency,
we are still able to achieve 12958 samples per second so I guess this is
fine as from my experience, the CPU can't really keep up when reading
500 samples per seconds. I will include that in the commit log.

> >Signed-off-by: Alexandre Belloni <alexandre.belloni@free-electrons.com>
> >---
> >  arch/arm/mach-at91/at91sam9g45.c        | 2 +-
> >  arch/arm/mach-at91/board-sam9m10g45ek.c | 1 +
> >  2 files changed, 2 insertions(+), 1 deletion(-)
> >
> >diff --git a/arch/arm/mach-at91/at91sam9g45.c b/arch/arm/mach-at91/at91sam9g45.c
> >index 2f455ce35268..3c519a7a938f 100644
> >--- a/arch/arm/mach-at91/at91sam9g45.c
> >+++ b/arch/arm/mach-at91/at91sam9g45.c
> >@@ -181,7 +181,7 @@ static struct clk vdec_clk = {
> >  static struct clk adc_op_clk = {
> >  	.name		= "adc_op_clk",
> >  	.type		= CLK_TYPE_PERIPHERAL,
> >-	.rate_hz	= 13200000,
> >+	.rate_hz	= 300000,
> >  };
> >
> >  /* AES/TDES/SHA clock - Only for sam9m11/sam9g56 */
> >diff --git a/arch/arm/mach-at91/board-sam9m10g45ek.c b/arch/arm/mach-at91/board-sam9m10g45ek.c
> >index ef39078c8ce2..4d775b796ce4 100644
> >--- a/arch/arm/mach-at91/board-sam9m10g45ek.c
> >+++ b/arch/arm/mach-at91/board-sam9m10g45ek.c
> >@@ -315,6 +315,7 @@ static struct at91_adc_data ek_adc_data = {
> >  	.channels_used = BIT(0) | BIT(1) | BIT(2) | BIT(3) | BIT(4) | BIT(5) | BIT(6) | BIT(7),
> >  	.use_external_triggers = true,
> >  	.vref = 3300,
> >+	.touchscreen_type = ATMEL_ADC_TOUCHSCREEN_4WIRE,
> >  };
> >
> >  /*
> >
>
diff mbox

Patch

diff --git a/arch/arm/mach-at91/at91sam9g45.c b/arch/arm/mach-at91/at91sam9g45.c
index 2f455ce35268..3c519a7a938f 100644
--- a/arch/arm/mach-at91/at91sam9g45.c
+++ b/arch/arm/mach-at91/at91sam9g45.c
@@ -181,7 +181,7 @@  static struct clk vdec_clk = {
 static struct clk adc_op_clk = {
 	.name		= "adc_op_clk",
 	.type		= CLK_TYPE_PERIPHERAL,
-	.rate_hz	= 13200000,
+	.rate_hz	= 300000,
 };
 
 /* AES/TDES/SHA clock - Only for sam9m11/sam9g56 */
diff --git a/arch/arm/mach-at91/board-sam9m10g45ek.c b/arch/arm/mach-at91/board-sam9m10g45ek.c
index ef39078c8ce2..4d775b796ce4 100644
--- a/arch/arm/mach-at91/board-sam9m10g45ek.c
+++ b/arch/arm/mach-at91/board-sam9m10g45ek.c
@@ -315,6 +315,7 @@  static struct at91_adc_data ek_adc_data = {
 	.channels_used = BIT(0) | BIT(1) | BIT(2) | BIT(3) | BIT(4) | BIT(5) | BIT(6) | BIT(7),
 	.use_external_triggers = true,
 	.vref = 3300,
+	.touchscreen_type = ATMEL_ADC_TOUCHSCREEN_4WIRE,
 };
 
 /*