Lines Matching refs:dev

29 amba_cs_uci_id_match(const struct amba_id *table, struct amba_device *dev)
41 ret = (dev->uci.devtype == uci->devtype) &&
42 ((dev->uci.devarch & uci->devarch_mask) == uci->devarch);
47 amba_lookup(const struct amba_id *table, struct amba_device *dev)
50 if (((dev->periphid & table->mask) == table->id) &&
51 ((dev->cid != CORESIGHT_CID) ||
52 (amba_cs_uci_id_match(table, dev))))
59 static int amba_match(struct device *dev, struct device_driver *drv)
61 struct amba_device *pcdev = to_amba_device(dev);
71 static int amba_uevent(struct device *dev, struct kobj_uevent_env *env)
73 struct amba_device *pcdev = to_amba_device(dev);
87 struct amba_device *dev = to_amba_device(_dev);
91 len = sprintf(buf, "%s\n", dev->driver_override);
100 struct amba_device *dev = to_amba_device(_dev);
116 old = dev->driver_override;
118 dev->driver_override = driver_override;
121 dev->driver_override = NULL;
135 struct amba_device *dev = to_amba_device(_dev); \
140 amba_attr_func(id, "%08x\n", dev->periphid);
141 amba_attr_func(irq0, "%u\n", dev->irq[0]);
142 amba_attr_func(irq1, "%u\n", dev->irq[1]);
144 (unsigned long long)dev->res.start, (unsigned long long)dev->res.end,
145 dev->res.flags);
161 static int amba_pm_runtime_suspend(struct device *dev)
163 struct amba_device *pcdev = to_amba_device(dev);
164 int ret = pm_generic_runtime_suspend(dev);
166 if (ret == 0 && dev->driver) {
167 if (pm_runtime_is_irq_safe(dev))
176 static int amba_pm_runtime_resume(struct device *dev)
178 struct amba_device *pcdev = to_amba_device(dev);
181 if (dev->driver) {
182 if (pm_runtime_is_irq_safe(dev))
191 return pm_generic_runtime_resume(dev);
236 pcdev->pclk = clk_get(&pcdev->dev, "apb_pclk");
257 static int amba_probe(struct device *dev)
259 struct amba_device *pcdev = to_amba_device(dev);
260 struct amba_driver *pcdrv = to_amba_driver(dev->driver);
265 ret = of_clk_set_defaults(dev->of_node, false);
269 ret = dev_pm_domain_attach(dev, true);
275 dev_pm_domain_detach(dev, true);
279 pm_runtime_get_noresume(dev);
280 pm_runtime_set_active(dev);
281 pm_runtime_enable(dev);
287 pm_runtime_disable(dev);
288 pm_runtime_set_suspended(dev);
289 pm_runtime_put_noidle(dev);
292 dev_pm_domain_detach(dev, true);
298 static int amba_remove(struct device *dev)
300 struct amba_device *pcdev = to_amba_device(dev);
301 struct amba_driver *drv = to_amba_driver(dev->driver);
303 pm_runtime_get_sync(dev);
306 pm_runtime_put_noidle(dev);
309 pm_runtime_disable(dev);
310 pm_runtime_set_suspended(dev);
311 pm_runtime_put_noidle(dev);
314 dev_pm_domain_detach(dev, true);
319 static void amba_shutdown(struct device *dev)
321 struct amba_driver *drv = to_amba_driver(dev->driver);
324 drv->shutdown(to_amba_device(dev));
362 static void amba_device_release(struct device *dev)
364 struct amba_device *d = to_amba_device(dev);
366 of_node_put(d->dev.of_node);
372 static int amba_device_try_add(struct amba_device *dev, struct resource *parent)
378 ret = request_resource(parent, &dev->res);
383 if (dev->periphid != 0)
390 size = resource_size(&dev->res);
391 tmp = ioremap(dev->res.start, size);
397 ret = dev_pm_domain_attach(&dev->dev, true);
403 ret = amba_get_enable_pclk(dev);
411 rstc = of_reset_control_array_get_optional_shared(dev->dev.of_node);
415 dev_err(&dev->dev, "can't get reset: %d\n",
437 dev->uci.devarch =
439 dev->uci.devtype =
443 amba_put_disable_pclk(dev);
446 dev->periphid = pid;
447 dev->cid = cid;
450 if (!dev->periphid)
455 dev_pm_domain_detach(&dev->dev, true);
461 ret = device_add(&dev->dev);
465 if (dev->irq[0])
466 ret = device_create_file(&dev->dev, &dev_attr_irq0);
467 if (ret == 0 && dev->irq[1])
468 ret = device_create_file(&dev->dev, &dev_attr_irq1);
472 device_unregister(&dev->dev);
475 release_resource(&dev->res);
480 amba_put_disable_pclk(dev);
482 dev_pm_domain_detach(&dev->dev, true);
496 struct amba_device *dev;
516 int ret = amba_device_try_add(ddev->dev, ddev->parent);
542 * @dev: AMBA device allocated by amba_device_alloc
549 int amba_device_add(struct amba_device *dev, struct resource *parent)
551 int ret = amba_device_try_add(dev, parent);
560 ddev->dev = dev;
583 struct amba_device *dev;
586 dev = amba_device_alloc(name, base, size);
587 if (!dev)
590 dev->dev.coherent_dma_mask = dma_mask;
591 dev->irq[0] = irq1;
592 dev->irq[1] = irq2;
593 dev->periphid = periphid;
594 dev->dev.platform_data = pdata;
595 dev->dev.parent = parent;
597 ret = amba_device_add(dev, resbase);
599 amba_device_put(dev);
603 return dev;
649 static void amba_device_initialize(struct amba_device *dev, const char *name)
651 device_initialize(&dev->dev);
653 dev_set_name(&dev->dev, "%s", name);
654 dev->dev.release = amba_device_release;
655 dev->dev.bus = &amba_bustype;
656 dev->dev.dma_mask = &dev->dev.coherent_dma_mask;
657 dev->dev.dma_parms = &dev->dma_parms;
658 dev->res.name = dev_name(&dev->dev);
673 struct amba_device *dev;
675 dev = kzalloc(sizeof(*dev), GFP_KERNEL);
676 if (dev) {
677 amba_device_initialize(dev, name);
678 dev->res.start = base;
679 dev->res.end = base + size - 1;
680 dev->res.flags = IORESOURCE_MEM;
683 return dev;
689 * @dev: AMBA device to register
696 int amba_device_register(struct amba_device *dev, struct resource *parent)
698 amba_device_initialize(dev, dev->dev.init_name);
699 dev->dev.init_name = NULL;
701 return amba_device_add(dev, parent);
706 * @dev: AMBA device to put
708 void amba_device_put(struct amba_device *dev)
710 put_device(&dev->dev);
716 * @dev: AMBA device to remove
725 void amba_device_unregister(struct amba_device *dev)
727 device_unregister(&dev->dev);
732 struct amba_device *dev;
739 static int amba_find_match(struct device *dev, void *data)
742 struct amba_device *pcdev = to_amba_device(dev);
747 r &= d->parent == dev->parent;
749 r &= strcmp(dev_name(dev), d->busid) == 0;
752 get_device(dev);
753 d->dev = pcdev;
779 data.dev = NULL;
787 return data.dev;
792 * @dev: amba_device structure for device
795 int amba_request_regions(struct amba_device *dev, const char *name)
801 name = dev->dev.driver->name;
803 size = resource_size(&dev->res);
805 if (!request_mem_region(dev->res.start, size, name))
813 * @dev: amba_device structure for device
817 void amba_release_regions(struct amba_device *dev)
821 size = resource_size(&dev->res);
822 release_mem_region(dev->res.start, size);