aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/iio
diff options
context:
space:
mode:
authorJosh Wu <josh.wu@atmel.com>2013-08-27 07:28:00 -0400
committerJonathan Cameron <jic23@kernel.org>2013-08-29 16:49:28 -0400
commit9120c0bea999cc26c3493486828d34138a7ac901 (patch)
tree36c7f48edfc9ca1b5e9a74186c4490faba7dd457 /drivers/iio
parente1811f97ba985fef3f703f55aeb5d23660c919ef (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.c11
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