Hello Sascha, thanks for your answer. We are using an imx35 cpu and our CPLD is in fact connected via weim (CS1). Though I created the following device node in our dts: &weim { pinctrl-names = "default"; status = "okay"; pld@1,0 { compatible = "roche,hbm-pld"; reg = <1 0x00000000 0x0001000>; fsl,weim-cs-timing = <0x0 0x0 0x0>; /* don't know what to put here */ }; }; And I turned the CPLD driver into a platform driver. But I don't get the resource in probe: res = platform_get_resource(pdev, IORESOURCE_MEM, 0) returns NULL. In our platform code we had: static struct resource hbm_pld_resource_data = { .start = 0xA8000000, .end = 0xA8000000 + 0x1000 - 1, .flags = IORESOURCE_MEM, }; And for the setting of CS1: __raw_writel((0x22 << 8), MX35_IO_ADDRESS(MX3x_WEIM_BASE_ADDR) + 0x10); __raw_writel(((0x0a << 28) | (0x06 << 12) | (0x03 << 8) | (0x04 << 4) | (0x01 << 0)), MX35_IO_ADDRESS(MX3x_WEIM_BASE_ADDR) + 0x14); Where do I put this in the device tree? Gruß Sebastian Priebe Telefon: +49 (0)621 685996-26 ========================================== CADCON Ingenieurgesellschaft mbH & Co. KG Geschaeftsfuehrer: Robert Bauer, Andreas Gundel Sitz der Gesellschaft: D-86368 Gersthofen Registergericht: Amtsgericht Augsburg HRA 14521 ========================================== -----Ursprüngliche Nachricht----- Von: Sascha Hauer [mailto:s.hauer@xxxxxxxxxxxxxx] Gesendet: Freitag, 1. August 2014 08:31 An: Priebe, Sebastian Cc: devicetree@xxxxxxxxxxxxxxx Betreff: Re: driver using another driver Hi Sebastian, On Wed, Jul 30, 2014 at 02:45:51PM +0000, Priebe, Sebastian wrote: > Hello, > > I am working on a project with an ARMv6 cpu and I am currently trying > to port our board file to a device tree. Our custom hardware has a > CPLD with is used by multiple driver. In the past we shared the CPLD > driver resource (struct resource...) among the drivers platform data > to be able to access the CPLD registers from all the drivers. The > CPLD driver allocated the resource, returned it to our platform code > and our platform code passed it to the other drivers. > In other words the CPLD driver is used by the other driver. > How can I achieve the same with a device tree? You can use a toplevel device node for your CPLD on which your toplevel driver matches. Call of_platform_populate() with this toplevel node to create the child devices. drivers/bus/ contains some examples, like drivers/bus/imx-weim.c. Sascha -- Pengutronix e.K. | | Industrial Linux Solutions | http://www.pengutronix.de/ | Peiner Str. 6-8, 31137 Hildesheim, Germany | Phone: +49-5121-206917-0 | Amtsgericht Hildesheim, HRA 2686 | Fax: +49-5121-206917-5555 | -- To unsubscribe from this list: send the line "unsubscribe devicetree" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html