tscadc             37 drivers/mfd/ti_am335x_tscadc.c void am335x_tsc_se_set_cache(struct ti_tscadc_dev *tscadc, u32 val)
tscadc             41 drivers/mfd/ti_am335x_tscadc.c 	spin_lock_irqsave(&tscadc->reg_lock, flags);
tscadc             42 drivers/mfd/ti_am335x_tscadc.c 	tscadc->reg_se_cache |= val;
tscadc             43 drivers/mfd/ti_am335x_tscadc.c 	if (tscadc->adc_waiting)
tscadc             44 drivers/mfd/ti_am335x_tscadc.c 		wake_up(&tscadc->reg_se_wait);
tscadc             45 drivers/mfd/ti_am335x_tscadc.c 	else if (!tscadc->adc_in_use)
tscadc             46 drivers/mfd/ti_am335x_tscadc.c 		regmap_write(tscadc->regmap, REG_SE, tscadc->reg_se_cache);
tscadc             48 drivers/mfd/ti_am335x_tscadc.c 	spin_unlock_irqrestore(&tscadc->reg_lock, flags);
tscadc             52 drivers/mfd/ti_am335x_tscadc.c static void am335x_tscadc_need_adc(struct ti_tscadc_dev *tscadc)
tscadc             57 drivers/mfd/ti_am335x_tscadc.c 	regmap_read(tscadc->regmap, REG_ADCFSM, &reg);
tscadc             59 drivers/mfd/ti_am335x_tscadc.c 		tscadc->adc_waiting = true;
tscadc             60 drivers/mfd/ti_am335x_tscadc.c 		prepare_to_wait(&tscadc->reg_se_wait, &wait,
tscadc             62 drivers/mfd/ti_am335x_tscadc.c 		spin_unlock_irq(&tscadc->reg_lock);
tscadc             66 drivers/mfd/ti_am335x_tscadc.c 		spin_lock_irq(&tscadc->reg_lock);
tscadc             67 drivers/mfd/ti_am335x_tscadc.c 		finish_wait(&tscadc->reg_se_wait, &wait);
tscadc             73 drivers/mfd/ti_am335x_tscadc.c 		regmap_read(tscadc->regmap, REG_ADCFSM, &reg);
tscadc             75 drivers/mfd/ti_am335x_tscadc.c 		tscadc->adc_waiting = false;
tscadc             77 drivers/mfd/ti_am335x_tscadc.c 	tscadc->adc_in_use = true;
tscadc             80 drivers/mfd/ti_am335x_tscadc.c void am335x_tsc_se_set_once(struct ti_tscadc_dev *tscadc, u32 val)
tscadc             82 drivers/mfd/ti_am335x_tscadc.c 	spin_lock_irq(&tscadc->reg_lock);
tscadc             83 drivers/mfd/ti_am335x_tscadc.c 	am335x_tscadc_need_adc(tscadc);
tscadc             85 drivers/mfd/ti_am335x_tscadc.c 	regmap_write(tscadc->regmap, REG_SE, val);
tscadc             86 drivers/mfd/ti_am335x_tscadc.c 	spin_unlock_irq(&tscadc->reg_lock);
tscadc             90 drivers/mfd/ti_am335x_tscadc.c void am335x_tsc_se_adc_done(struct ti_tscadc_dev *tscadc)
tscadc             94 drivers/mfd/ti_am335x_tscadc.c 	spin_lock_irqsave(&tscadc->reg_lock, flags);
tscadc             95 drivers/mfd/ti_am335x_tscadc.c 	tscadc->adc_in_use = false;
tscadc             96 drivers/mfd/ti_am335x_tscadc.c 	regmap_write(tscadc->regmap, REG_SE, tscadc->reg_se_cache);
tscadc             97 drivers/mfd/ti_am335x_tscadc.c 	spin_unlock_irqrestore(&tscadc->reg_lock, flags);
tscadc            101 drivers/mfd/ti_am335x_tscadc.c void am335x_tsc_se_clr(struct ti_tscadc_dev *tscadc, u32 val)
tscadc            105 drivers/mfd/ti_am335x_tscadc.c 	spin_lock_irqsave(&tscadc->reg_lock, flags);
tscadc            106 drivers/mfd/ti_am335x_tscadc.c 	tscadc->reg_se_cache &= ~val;
tscadc            107 drivers/mfd/ti_am335x_tscadc.c 	regmap_write(tscadc->regmap, REG_SE, tscadc->reg_se_cache);
tscadc            108 drivers/mfd/ti_am335x_tscadc.c 	spin_unlock_irqrestore(&tscadc->reg_lock, flags);
tscadc            112 drivers/mfd/ti_am335x_tscadc.c static void tscadc_idle_config(struct ti_tscadc_dev *tscadc)
tscadc            119 drivers/mfd/ti_am335x_tscadc.c 	regmap_write(tscadc->regmap, REG_IDLECONFIG, idleconfig);
tscadc            124 drivers/mfd/ti_am335x_tscadc.c 	struct ti_tscadc_dev	*tscadc;
tscadc            171 drivers/mfd/ti_am335x_tscadc.c 	tscadc = devm_kzalloc(&pdev->dev, sizeof(*tscadc), GFP_KERNEL);
tscadc            172 drivers/mfd/ti_am335x_tscadc.c 	if (!tscadc)
tscadc            175 drivers/mfd/ti_am335x_tscadc.c 	tscadc->dev = &pdev->dev;
tscadc            182 drivers/mfd/ti_am335x_tscadc.c 		tscadc->irq = err;
tscadc            185 drivers/mfd/ti_am335x_tscadc.c 	tscadc->tscadc_phys_base = res->start;
tscadc            186 drivers/mfd/ti_am335x_tscadc.c 	tscadc->tscadc_base = devm_ioremap_resource(&pdev->dev, res);
tscadc            187 drivers/mfd/ti_am335x_tscadc.c 	if (IS_ERR(tscadc->tscadc_base))
tscadc            188 drivers/mfd/ti_am335x_tscadc.c 		return PTR_ERR(tscadc->tscadc_base);
tscadc            190 drivers/mfd/ti_am335x_tscadc.c 	tscadc->regmap = devm_regmap_init_mmio(&pdev->dev,
tscadc            191 drivers/mfd/ti_am335x_tscadc.c 			tscadc->tscadc_base, &tscadc_regmap_config);
tscadc            192 drivers/mfd/ti_am335x_tscadc.c 	if (IS_ERR(tscadc->regmap)) {
tscadc            194 drivers/mfd/ti_am335x_tscadc.c 		err = PTR_ERR(tscadc->regmap);
tscadc            198 drivers/mfd/ti_am335x_tscadc.c 	spin_lock_init(&tscadc->reg_lock);
tscadc            199 drivers/mfd/ti_am335x_tscadc.c 	init_waitqueue_head(&tscadc->reg_se_wait);
tscadc            219 drivers/mfd/ti_am335x_tscadc.c 	tscadc->clk_div = clock_rate / ADC_CLK;
tscadc            222 drivers/mfd/ti_am335x_tscadc.c 	tscadc->clk_div--;
tscadc            223 drivers/mfd/ti_am335x_tscadc.c 	regmap_write(tscadc->regmap, REG_CLKDIV, tscadc->clk_div);
tscadc            227 drivers/mfd/ti_am335x_tscadc.c 	regmap_write(tscadc->regmap, REG_CTRL, ctrl);
tscadc            231 drivers/mfd/ti_am335x_tscadc.c 		tscadc->tsc_wires = tsc_wires;
tscadc            236 drivers/mfd/ti_am335x_tscadc.c 		tscadc_idle_config(tscadc);
tscadc            241 drivers/mfd/ti_am335x_tscadc.c 	regmap_write(tscadc->regmap, REG_CTRL, ctrl);
tscadc            243 drivers/mfd/ti_am335x_tscadc.c 	tscadc->used_cells = 0;
tscadc            244 drivers/mfd/ti_am335x_tscadc.c 	tscadc->tsc_cell = -1;
tscadc            245 drivers/mfd/ti_am335x_tscadc.c 	tscadc->adc_cell = -1;
tscadc            249 drivers/mfd/ti_am335x_tscadc.c 		tscadc->tsc_cell = tscadc->used_cells;
tscadc            250 drivers/mfd/ti_am335x_tscadc.c 		cell = &tscadc->cells[tscadc->used_cells++];
tscadc            253 drivers/mfd/ti_am335x_tscadc.c 		cell->platform_data = &tscadc;
tscadc            254 drivers/mfd/ti_am335x_tscadc.c 		cell->pdata_size = sizeof(tscadc);
tscadc            259 drivers/mfd/ti_am335x_tscadc.c 		tscadc->adc_cell = tscadc->used_cells;
tscadc            260 drivers/mfd/ti_am335x_tscadc.c 		cell = &tscadc->cells[tscadc->used_cells++];
tscadc            263 drivers/mfd/ti_am335x_tscadc.c 		cell->platform_data = &tscadc;
tscadc            264 drivers/mfd/ti_am335x_tscadc.c 		cell->pdata_size = sizeof(tscadc);
tscadc            268 drivers/mfd/ti_am335x_tscadc.c 			      tscadc->cells, tscadc->used_cells, NULL,
tscadc            273 drivers/mfd/ti_am335x_tscadc.c 	platform_set_drvdata(pdev, tscadc);
tscadc            285 drivers/mfd/ti_am335x_tscadc.c 	struct ti_tscadc_dev	*tscadc = platform_get_drvdata(pdev);
tscadc            287 drivers/mfd/ti_am335x_tscadc.c 	regmap_write(tscadc->regmap, REG_SE, 0x00);
tscadc            292 drivers/mfd/ti_am335x_tscadc.c 	mfd_remove_devices(tscadc->dev);
tscadc            304 drivers/mfd/ti_am335x_tscadc.c 	struct ti_tscadc_dev	*tscadc = dev_get_drvdata(dev);
tscadc            306 drivers/mfd/ti_am335x_tscadc.c 	regmap_write(tscadc->regmap, REG_SE, 0x00);
tscadc            310 drivers/mfd/ti_am335x_tscadc.c 		regmap_read(tscadc->regmap, REG_CTRL, &ctrl);
tscadc            313 drivers/mfd/ti_am335x_tscadc.c 		regmap_write(tscadc->regmap, REG_CTRL, ctrl);
tscadc            322 drivers/mfd/ti_am335x_tscadc.c 	struct ti_tscadc_dev	*tscadc = dev_get_drvdata(dev);
tscadc            329 drivers/mfd/ti_am335x_tscadc.c 	regmap_write(tscadc->regmap, REG_CTRL, ctrl);
tscadc            331 drivers/mfd/ti_am335x_tscadc.c 	if (tscadc->tsc_cell != -1) {
tscadc            332 drivers/mfd/ti_am335x_tscadc.c 		if (tscadc->tsc_wires == 5)
tscadc            336 drivers/mfd/ti_am335x_tscadc.c 		tscadc_idle_config(tscadc);
tscadc            339 drivers/mfd/ti_am335x_tscadc.c 	regmap_write(tscadc->regmap, REG_CTRL, ctrl);
tscadc            341 drivers/mfd/ti_am335x_tscadc.c 	regmap_write(tscadc->regmap, REG_CLKDIV, tscadc->clk_div);