| From 2ab5f39bc7825808e0fa1e7e5f0b23e174563467 Mon Sep 17 00:00:00 2001 |
| From: Jan Leupold <leupold@rsi-elektrotechnik.de> |
| Date: Wed, 17 Jun 2015 18:21:36 +0200 |
| Subject: iio: adc: at91_adc: allow to use full range of startup time |
| |
| From: Jan Leupold <leupold@rsi-elektrotechnik.de> |
| |
| commit 2ab5f39bc7825808e0fa1e7e5f0b23e174563467 upstream. |
| |
| The DT-Property "atmel,adc-startup-time" is stored in an u8 for a microsecond |
| value. When trying to increase the value of STARTUP in Register AT91_ADC_MR |
| some higher values can't be reached. |
| |
| Change the type in function parameter and private structure field from u8 to |
| u32. |
| |
| Signed-off-by: Jan Leupold <leupold@rsi-elektrotechnik.de> |
| [nicolas.ferre@atmel.com: change commit message, increase u16 to u32 for startup time] |
| Signed-off-by: Nicolas Ferre <nicolas.ferre@atmel.com> |
| Acked-by: Alexandre Belloni <alexandre.belloni@free-electrons.com> |
| Signed-off-by: Jonathan Cameron <jic23@kernel.org> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
| |
| --- |
| drivers/iio/adc/at91_adc.c | 8 ++++---- |
| 1 file changed, 4 insertions(+), 4 deletions(-) |
| |
| --- a/drivers/iio/adc/at91_adc.c |
| +++ b/drivers/iio/adc/at91_adc.c |
| @@ -58,7 +58,7 @@ struct at91_adc_caps { |
| u8 ts_pen_detect_sensitivity; |
| |
| /* startup time calculate function */ |
| - u32 (*calc_startup_ticks)(u8 startup_time, u32 adc_clk_khz); |
| + u32 (*calc_startup_ticks)(u32 startup_time, u32 adc_clk_khz); |
| |
| u8 num_channels; |
| struct at91_adc_reg_desc registers; |
| @@ -82,7 +82,7 @@ struct at91_adc_state { |
| u8 num_channels; |
| void __iomem *reg_base; |
| struct at91_adc_reg_desc *registers; |
| - u8 startup_time; |
| + u32 startup_time; |
| u8 sample_hold_time; |
| bool sleep_mode; |
| struct iio_trigger **trig; |
| @@ -590,7 +590,7 @@ ret: |
| return ret; |
| } |
| |
| -static u32 calc_startup_ticks_9260(u8 startup_time, u32 adc_clk_khz) |
| +static u32 calc_startup_ticks_9260(u32 startup_time, u32 adc_clk_khz) |
| { |
| /* |
| * Number of ticks needed to cover the startup time of the ADC |
| @@ -601,7 +601,7 @@ static u32 calc_startup_ticks_9260(u8 st |
| return round_up((startup_time * adc_clk_khz / 1000) - 1, 8) / 8; |
| } |
| |
| -static u32 calc_startup_ticks_9x5(u8 startup_time, u32 adc_clk_khz) |
| +static u32 calc_startup_ticks_9x5(u32 startup_time, u32 adc_clk_khz) |
| { |
| /* |
| * For sama5d3x and at91sam9x5, the formula changes to: |