static void exynos_adc_s3c64xx_start_conv(struct exynos_adc *info, unsigned long addr) { u32 con1; con1 = readl(ADC_V1_CON(info->regs)); con1 &= ~ADC_S3C2410_CON_SELMUX(0x7); con1 |= ADC_S3C2410_CON_SELMUX(addr); writel(con1 | ADC_CON_EN_START, ADC_V1_CON(info->regs)); }
static void exynos_adc_v1_start_conv(struct exynos_adc *info, unsigned long addr) { u32 con1; writel(addr, ADC_V1_MUX(info->regs)); con1 = readl(ADC_V1_CON(info->regs)); writel(con1 | ADC_CON_EN_START, ADC_V1_CON(info->regs)); }
static void exynos_adc_s3c2443_start_conv(struct exynos_adc *info, unsigned long addr) { u32 con1; /* Select channel for S3C2433 */ writel(addr, ADC_S3C2410_MUX(info->regs)); con1 = readl(ADC_V1_CON(info->regs)); writel(con1 | ADC_CON_EN_START, ADC_V1_CON(info->regs)); }
static void exynos_adc_v1_exit_hw(struct exynos_adc *info) { u32 con; if (info->data->needs_adc_phy) regmap_write(info->pmu_map, info->data->phy_offset, 0); con = readl(ADC_V1_CON(info->regs)); con |= ADC_V1_CON_STANDBY; writel(con, ADC_V1_CON(info->regs)); }
static void exynos_adc_v1_exit_hw(struct exynos_adc *info) { u32 con; if (info->data->needs_adc_phy) writel(0, info->enable_reg); con = readl(ADC_V1_CON(info->regs)); con |= ADC_V1_CON_STANDBY; writel(con, ADC_V1_CON(info->regs)); }
static void exynos_adc_s3c2416_start_conv(struct exynos_adc *info, unsigned long addr) { u32 con1; /* Enable 12 bit ADC resolution */ con1 = readl(ADC_V1_CON(info->regs)); con1 |= ADC_S3C2416_CON_RES_SEL; writel(con1, ADC_V1_CON(info->regs)); /* Select channel for S3C2416 */ writel(addr, ADC_S3C2410_MUX(info->regs)); con1 = readl(ADC_V1_CON(info->regs)); writel(con1 | ADC_CON_EN_START, ADC_V1_CON(info->regs)); }
static void exynos_adc_v1_init_hw(struct exynos_adc *info) { u32 con1; if (info->data->needs_adc_phy) writel(1, info->enable_reg); /* set default prescaler values and Enable prescaler */ con1 = ADC_V1_CON_PRSCLV(49) | ADC_V1_CON_PRSCEN; /* Enable 12-bit ADC resolution */ con1 |= ADC_V1_CON_RES; writel(con1, ADC_V1_CON(info->regs)); }
static void exynos_adc_v1_init_hw(struct exynos_adc *info) { u32 con1; if (info->data->needs_adc_phy) regmap_write(info->pmu_map, info->data->phy_offset, 1); /* set default prescaler values and Enable prescaler */ con1 = ADC_V1_CON_PRSCLV(49) | ADC_V1_CON_PRSCEN; /* Enable 12-bit ADC resolution */ con1 |= ADC_V1_CON_RES; writel(con1, ADC_V1_CON(info->regs)); /* set touchscreen delay */ writel(info->delay, ADC_V1_DLY(info->regs)); }