Lines Matching refs:ebi
30 struct atmel_ebi *ebi;
82 atmel_smc_cs_conf_get(ebid->ebi->smc.regmap, conf->cs,
89 atmel_hsmc_cs_conf_get(ebid->ebi->smc.regmap, ebid->ebi->smc.layout,
114 unsigned int clk_rate = clk_get_rate(ebid->ebi->clk);
162 dev_err(ebid->ebi->dev,
274 dev_err(ebid->ebi->dev, "missing atmel,smc- properties in %pOF",
285 atmel_smc_cs_conf_apply(ebid->ebi->smc.regmap, conf->cs,
292 atmel_hsmc_cs_conf_apply(ebid->ebi->smc.regmap, ebid->ebi->smc.layout,
296 static int atmel_ebi_dev_setup(struct atmel_ebi *ebi, struct device_node *np,
299 const struct atmel_ebi_caps *caps = ebi->caps;
301 struct device *dev = ebi->dev;
317 !(ebi->caps->available_cs & BIT(cs))) {
331 ebid = devm_kzalloc(ebi->dev, struct_size(ebid, configs, numcs),
336 ebid->ebi = ebi;
360 if (ebi->caps->ebi_csa_offs && apply)
361 regmap_update_bits(ebi->regmap,
362 ebi->caps->ebi_csa_offs,
368 list_add_tail(&ebid->node, &ebi->devs);
454 .compatible = "atmel,at91sam9260-ebi",
458 .compatible = "atmel,at91sam9261-ebi",
470 .compatible = "atmel,at91sam9rl-ebi",
474 .compatible = "atmel,at91sam9g45-ebi",
478 .compatible = "atmel,at91sam9x5-ebi",
482 .compatible = "atmel,sama5d3-ebi",
486 .compatible = "microchip,sam9x60-ebi",
492 static int atmel_ebi_dev_disable(struct atmel_ebi *ebi, struct device_node *np)
494 struct device *dev = ebi->dev;
519 struct atmel_ebi *ebi;
528 ebi = devm_kzalloc(dev, sizeof(*ebi), GFP_KERNEL);
529 if (!ebi)
532 platform_set_drvdata(pdev, ebi);
534 INIT_LIST_HEAD(&ebi->devs);
535 ebi->caps = match->data;
536 ebi->dev = dev;
542 ebi->clk = clk;
546 ebi->smc.regmap = syscon_node_to_regmap(smc_np);
547 if (IS_ERR(ebi->smc.regmap)) {
548 ret = PTR_ERR(ebi->smc.regmap);
552 ebi->smc.layout = atmel_hsmc_get_reg_layout(smc_np);
553 if (IS_ERR(ebi->smc.layout)) {
554 ret = PTR_ERR(ebi->smc.layout);
558 ebi->smc.clk = of_clk_get(smc_np, 0);
559 if (IS_ERR(ebi->smc.clk)) {
560 if (PTR_ERR(ebi->smc.clk) != -ENOENT) {
561 ret = PTR_ERR(ebi->smc.clk);
565 ebi->smc.clk = NULL;
568 ret = clk_prepare_enable(ebi->smc.clk);
576 if (ebi->caps->ebi_csa_offs) {
577 ebi->regmap =
579 ebi->caps->regmap_name);
580 if (IS_ERR(ebi->regmap))
581 return PTR_ERR(ebi->regmap);
604 ret = atmel_ebi_dev_setup(ebi, child, reg_cells);
609 ret = atmel_ebi_dev_disable(ebi, child);
626 struct atmel_ebi *ebi = dev_get_drvdata(dev);
629 list_for_each_entry(ebid, &ebi->devs, node) {
633 ebid->ebi->caps->apply_config(ebid, &ebid->configs[i]);
643 .name = "atmel-ebi",