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, ®); 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, ®); 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);