[PATCH 2/4 v2] soc: qcom: add EBI2 driver
Arnd Bergmann
arnd at arndb.de
Mon Aug 29 06:20:07 PDT 2016
On Wednesday 24 August 2016, Linus Walleij wrote:
> +static void qcom_ebi2_setup_chipselect(struct device_node *np,
> + struct device *dev,
> + void __iomem *ebi2_base,
> + void __iomem *ebi2_xmem,
> + u32 csindex)
> +{
> + const struct cs_data *csd;
> + u32 slowcfg, fastcfg;
> + u32 val;
> + int ret;
> + int i;
> +
> + csd = &cs_info[csindex];
> + val = readl_relaxed(ebi2_base);
> + val |= csd->enable_mask;
> + writel_relaxed(val, ebi2_base);
> + dev_dbg(dev, "enabled CS%u\n", csindex);
better use readl/writel instead of *_relaxed() if it's not performance critical.
If you have a function that is worth optimizing with relaxed accessors, add a
comment about how your concluded that it's safe to do so.
> +static struct platform_driver qcom_ebi2_driver = {
> + .probe = qcom_ebi2_probe,
> + .driver = {
> + .name = "qcom-ebi2",
> + .of_match_table = qcom_ebi2_of_match,
> + },
> +};
> +builtin_platform_driver(qcom_ebi2_driver);
Why not allow this to be a loadable module?
Arnd
More information about the linux-arm-kernel
mailing list