Lines Matching refs:data
94 struct aspeed_adc_data *data = iio_priv(indio_dev);
96 of_device_get_match_data(data->dev);
100 *val = readw(data->base + chan->address);
109 *val = clk_get_rate(data->clk_scaler->clk) /
122 struct aspeed_adc_data *data = iio_priv(indio_dev);
124 of_device_get_match_data(data->dev);
132 clk_set_rate(data->clk_scaler->clk,
155 struct aspeed_adc_data *data = iio_priv(indio_dev);
160 *readval = readl(data->base + reg);
174 struct aspeed_adc_data *data;
180 indio_dev = devm_iio_device_alloc(&pdev->dev, sizeof(*data));
184 data = iio_priv(indio_dev);
185 data->dev = &pdev->dev;
188 data->base = devm_platform_ioremap_resource(pdev, 0);
189 if (IS_ERR(data->base))
190 return PTR_ERR(data->base);
193 spin_lock_init(&data->clk_lock);
196 data->clk_prescaler = clk_hw_register_divider(
198 data->base + ASPEED_REG_CLOCK_CONTROL,
199 17, 15, 0, &data->clk_lock);
200 if (IS_ERR(data->clk_prescaler))
201 return PTR_ERR(data->clk_prescaler);
207 data->clk_scaler = clk_hw_register_divider(
210 data->base + ASPEED_REG_CLOCK_CONTROL,
211 0, 10, 0, &data->clk_lock);
212 if (IS_ERR(data->clk_scaler)) {
213 ret = PTR_ERR(data->clk_scaler);
217 data->rst = devm_reset_control_get_exclusive(&pdev->dev, NULL);
218 if (IS_ERR(data->rst)) {
221 ret = PTR_ERR(data->rst);
224 reset_control_deassert(data->rst);
231 data->base + ASPEED_REG_ENGINE_CONTROL);
234 ret = readl_poll_timeout(data->base + ASPEED_REG_ENGINE_CONTROL,
245 ret = clk_prepare_enable(data->clk_scaler->clk);
252 data->base + ASPEED_REG_ENGINE_CONTROL);
269 data->base + ASPEED_REG_ENGINE_CONTROL);
270 clk_disable_unprepare(data->clk_scaler->clk);
273 reset_control_assert(data->rst);
275 clk_hw_unregister_divider(data->clk_scaler);
277 clk_hw_unregister_divider(data->clk_prescaler);
284 struct aspeed_adc_data *data = iio_priv(indio_dev);
288 data->base + ASPEED_REG_ENGINE_CONTROL);
289 clk_disable_unprepare(data->clk_scaler->clk);
290 reset_control_assert(data->rst);
291 clk_hw_unregister_divider(data->clk_scaler);
292 clk_hw_unregister_divider(data->clk_prescaler);
313 { .compatible = "aspeed,ast2400-adc", .data = &ast2400_model_data },
314 { .compatible = "aspeed,ast2500-adc", .data = &ast2500_model_data },