Commit 2ab5f39b authored by Jan Leupold's avatar Jan Leupold Committed by Jonathan Cameron

iio: adc: at91_adc: allow to use full range of startup time

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: default avatarJan Leupold <leupold@rsi-elektrotechnik.de>
[nicolas.ferre@atmel.com: change commit message, increase u16 to u32 for startup time]
Signed-off-by: default avatarNicolas Ferre <nicolas.ferre@atmel.com>
Acked-by: default avatarAlexandre Belloni <alexandre.belloni@free-electrons.com>
Cc: <Stable@vger.kernel.org>
Signed-off-by: default avatarJonathan Cameron <jic23@kernel.org>
parent adfa9698
...@@ -182,7 +182,7 @@ struct at91_adc_caps { ...@@ -182,7 +182,7 @@ struct at91_adc_caps {
u8 ts_pen_detect_sensitivity; u8 ts_pen_detect_sensitivity;
/* startup time calculate function */ /* 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; u8 num_channels;
struct at91_adc_reg_desc registers; struct at91_adc_reg_desc registers;
...@@ -201,7 +201,7 @@ struct at91_adc_state { ...@@ -201,7 +201,7 @@ struct at91_adc_state {
u8 num_channels; u8 num_channels;
void __iomem *reg_base; void __iomem *reg_base;
struct at91_adc_reg_desc *registers; struct at91_adc_reg_desc *registers;
u8 startup_time; u32 startup_time;
u8 sample_hold_time; u8 sample_hold_time;
bool sleep_mode; bool sleep_mode;
struct iio_trigger **trig; struct iio_trigger **trig;
...@@ -779,7 +779,7 @@ static int at91_adc_of_get_resolution(struct at91_adc_state *st, ...@@ -779,7 +779,7 @@ static int at91_adc_of_get_resolution(struct at91_adc_state *st,
return 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 * Number of ticks needed to cover the startup time of the ADC
...@@ -790,7 +790,7 @@ static u32 calc_startup_ticks_9260(u8 startup_time, u32 adc_clk_khz) ...@@ -790,7 +790,7 @@ static u32 calc_startup_ticks_9260(u8 startup_time, u32 adc_clk_khz)
return round_up((startup_time * adc_clk_khz / 1000) - 1, 8) / 8; 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: * For sama5d3x and at91sam9x5, the formula changes to:
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment