diff options
author | Josh Wu <josh.wu@atmel.com> | 2013-08-27 07:28:00 -0400 |
---|---|---|
committer | Jonathan Cameron <jic23@kernel.org> | 2013-08-29 16:49:28 -0400 |
commit | 9120c0bea999cc26c3493486828d34138a7ac901 (patch) | |
tree | 36c7f48edfc9ca1b5e9a74186c4490faba7dd457 /drivers/iio | |
parent | e1811f97ba985fef3f703f55aeb5d23660c919ef (diff) |
iio: at91: Use different prescal, startup mask in MR for different IP
For at91 boards, there are different IPs for adc. Different IPs has different
STARTUP & PRESCAL mask in ADC_MR.
Signed-off-by: Josh Wu <josh.wu@atmel.com>
Acked-by: Maxime Ripard <maxime.ripard@free-electrons.com>
Signed-off-by: Jonathan Cameron <jic23@kernel.org>
Diffstat (limited to 'drivers/iio')
-rw-r--r-- | drivers/iio/adc/at91_adc.c | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/drivers/iio/adc/at91_adc.c b/drivers/iio/adc/at91_adc.c index ed5eebc93bb7..84be63bdf038 100644 --- a/drivers/iio/adc/at91_adc.c +++ b/drivers/iio/adc/at91_adc.c | |||
@@ -672,8 +672,8 @@ static int at91_adc_probe(struct platform_device *pdev) | |||
672 | shtim = round_up((st->sample_hold_time * adc_clk / | 672 | shtim = round_up((st->sample_hold_time * adc_clk / |
673 | 1000000) - 1, 1); | 673 | 1000000) - 1, 1); |
674 | 674 | ||
675 | reg = AT91_ADC_PRESCAL_(prsc) & AT91_ADC_PRESCAL; | 675 | reg = AT91_ADC_PRESCAL_(prsc) & st->registers->mr_prescal_mask; |
676 | reg |= AT91_ADC_STARTUP_(ticks) & AT91_ADC_STARTUP; | 676 | reg |= AT91_ADC_STARTUP_(ticks) & st->registers->mr_startup_mask; |
677 | if (st->low_res) | 677 | if (st->low_res) |
678 | reg |= AT91_ADC_LOWRES; | 678 | reg |= AT91_ADC_LOWRES; |
679 | if (st->sleep_mode) | 679 | if (st->sleep_mode) |
@@ -746,6 +746,8 @@ static struct at91_adc_caps at91sam9260_caps = { | |||
746 | .drdy_mask = AT91_ADC_DRDY, | 746 | .drdy_mask = AT91_ADC_DRDY, |
747 | .status_register = AT91_ADC_SR, | 747 | .status_register = AT91_ADC_SR, |
748 | .trigger_register = AT91_ADC_TRGR_9260, | 748 | .trigger_register = AT91_ADC_TRGR_9260, |
749 | .mr_prescal_mask = AT91_ADC_PRESCAL_9260, | ||
750 | .mr_startup_mask = AT91_ADC_STARTUP_9260, | ||
749 | }, | 751 | }, |
750 | }; | 752 | }; |
751 | 753 | ||
@@ -755,6 +757,8 @@ static struct at91_adc_caps at91sam9g45_caps = { | |||
755 | .drdy_mask = AT91_ADC_DRDY, | 757 | .drdy_mask = AT91_ADC_DRDY, |
756 | .status_register = AT91_ADC_SR, | 758 | .status_register = AT91_ADC_SR, |
757 | .trigger_register = AT91_ADC_TRGR_9G45, | 759 | .trigger_register = AT91_ADC_TRGR_9G45, |
760 | .mr_prescal_mask = AT91_ADC_PRESCAL_9G45, | ||
761 | .mr_startup_mask = AT91_ADC_STARTUP_9G45, | ||
758 | }, | 762 | }, |
759 | }; | 763 | }; |
760 | 764 | ||
@@ -764,6 +768,9 @@ static struct at91_adc_caps at91sam9x5_caps = { | |||
764 | .drdy_mask = AT91_ADC_SR_DRDY_9X5, | 768 | .drdy_mask = AT91_ADC_SR_DRDY_9X5, |
765 | .status_register = AT91_ADC_SR_9X5, | 769 | .status_register = AT91_ADC_SR_9X5, |
766 | .trigger_register = AT91_ADC_TRGR_9X5, | 770 | .trigger_register = AT91_ADC_TRGR_9X5, |
771 | /* prescal mask is same as 9G45 */ | ||
772 | .mr_prescal_mask = AT91_ADC_PRESCAL_9G45, | ||
773 | .mr_startup_mask = AT91_ADC_STARTUP_9X5, | ||
767 | }, | 774 | }, |
768 | }; | 775 | }; |
769 | 776 | ||