Lines Matching +full:saradc +full:- +full:apb

1 // SPDX-License-Identifier:     GPL-2.0+
5 * Rockchip SARADC driver for U-Boot
110 if (channel != priv->active_channel) { in rockchip_saradc_channel_data()
112 return -EINVAL; in rockchip_saradc_channel_data()
116 writel(0x1, &priv->regs->end_int_st); in rockchip_saradc_channel_data()
118 *data = readl(&priv->regs->data0 + priv->active_channel); in rockchip_saradc_channel_data()
119 *data &= uc_pdata->data_mask; in rockchip_saradc_channel_data()
129 if (channel < 0 || channel >= priv->data->num_channels) { in rockchip_saradc_start_channel()
131 return -EINVAL; in rockchip_saradc_start_channel()
135 reset_assert(&priv->rst); in rockchip_saradc_start_channel()
137 reset_deassert(&priv->rst); in rockchip_saradc_start_channel()
139 writel(0x20, &priv->regs->t_pd_soc); in rockchip_saradc_start_channel()
140 writel(0xc, &priv->regs->t_das_soc); in rockchip_saradc_start_channel()
142 writel(val, &priv->regs->end_int_en); in rockchip_saradc_start_channel()
144 writel(val << 16 | val, &priv->regs->conv_con); in rockchip_saradc_start_channel()
148 priv->active_channel = channel; in rockchip_saradc_start_channel()
157 priv->active_channel = -1; in rockchip_saradc_stop()
169 ret = reset_get_by_name(dev, "saradc-apb", &priv->rst); in rockchip_saradc_probe()
180 ret = clk_set_rate(&clk, priv->data->clk_rate); in rockchip_saradc_probe()
187 priv->active_channel = -1; in rockchip_saradc_probe()
199 priv->regs = (struct rockchip_saradc_regs *)dev_read_addr(dev); in rockchip_saradc_ofdata_to_platdata()
200 if (priv->regs == (struct rockchip_saradc_regs *)FDT_ADDR_T_NONE) { in rockchip_saradc_ofdata_to_platdata()
201 pr_err("Dev: %s - can't get address!", dev->name); in rockchip_saradc_ofdata_to_platdata()
202 return -ENODATA; in rockchip_saradc_ofdata_to_platdata()
205 priv->data = data; in rockchip_saradc_ofdata_to_platdata()
206 uc_pdata->data_mask = (1 << priv->data->num_bits) - 1; in rockchip_saradc_ofdata_to_platdata()
207 uc_pdata->data_format = ADC_DATA_FORMAT_BIN; in rockchip_saradc_ofdata_to_platdata()
208 uc_pdata->data_timeout_us = SARADC_TIMEOUT / 5; in rockchip_saradc_ofdata_to_platdata()
209 uc_pdata->channel_mask = (1 << priv->data->num_channels) - 1; in rockchip_saradc_ofdata_to_platdata()
240 .compatible = "rockchip,rk3588-saradc",
244 .compatible = "rockchip,rk3528-saradc",
248 .compatible = "rockchip,rk3562-saradc",
252 .compatible = "rockchip,rv1106-saradc",