static inline void s3c_adc_select(struct adc_device *adc, struct s3c_adc_client *client) { unsigned con = readl(adc->regs + S3C2410_ADCCON); client->select_cb(client, 1); con &= ~S3C2410_ADCCON_MUXMASK; con &= ~S3C2410_ADCCON_STDBM; con &= ~S3C2410_ADCCON_STARTMASK; con |= S3C2410_ADCCON_PRSCEN; if (!client->is_ts) { if ((adc->cputype == TYPE_S5PV210) || (adc->cputype == TYPE_EXYNOS4412)) writel(S5PV210_ADCCON_SELMUX(client->channel), adc->regs + S5PV210_ADCMUX); else con |= S3C2410_ADCCON_SELMUX(client->channel); } writel(con, adc->regs + S3C2410_ADCCON); }
static inline void s3c_adc_select(struct adc_device *adc, struct s3c_adc_client *client) { unsigned con = readl(adc->regs + S3C2410_ADCCON); enum s3c_cpu_type cpu = platform_get_device_id(adc->pdev)->driver_data; client->select_cb(client, 1); con &= ~S3C2410_ADCCON_MUXMASK; con &= ~S3C2410_ADCCON_STDBM; con &= ~S3C2410_ADCCON_STARTMASK; con |= S3C2410_ADCCON_PRSCEN; if (!client->is_ts) { if (cpu >= TYPE_ADCV3) writel(S5PV210_ADCCON_SELMUX(client->channel), adc->regs + S5P_ADCMUX); else con |= S3C2410_ADCCON_SELMUX(client->channel); } writel(con, adc->regs + S3C2410_ADCCON); }