AW: driver using another driver

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 




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




[Index of Archives]     [Device Tree Compilter]     [Device Tree Spec]     [Linux Driver Backports]     [Video for Linux]     [Linux USB Devel]     [Linux PCI Devel]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [XFree86]     [Yosemite Backpacking]
  Powered by Linux