dm: gpio: Add a comment about not copying some drivers
authorSimon Glass <sjg@chromium.org>
Sun, 17 Sep 2017 22:54:52 +0000 (16:54 -0600)
committerSimon Glass <sjg@chromium.org>
Mon, 9 Oct 2017 02:41:08 +0000 (20:41 -0600)
These three drivers all use U_BOOT_DEVICE rather than device tree to
create devices, so have to do manual allocation of platform data. This is
not true for new platforms.

Add a more explicit comment so that people do not copy this approach with
new boards.

Signed-off-by: Simon Glass <sjg@chromium.org>
Reported-by: Adam Ford <aford173@gmail.com>
drivers/gpio/imx_rgpio2p.c
drivers/gpio/mxc_gpio.c
drivers/gpio/omap_gpio.c

index 5abc88ba5477fec5e044765b0e93cc4836d0f9a5..e60e9d2a0106f3563b2f56ce8fbe4686e01f25ca 100644 (file)
@@ -175,6 +175,11 @@ static int imx_rgpio2p_bind(struct udevice *dev)
         * When every board is converted to driver model and DT is supported,
         * this can be done by auto-alloc feature, but not using calloc
         * to alloc memory for platdata.
+        *
+        * For example imx_rgpio2p_plat uses platform data rather than device
+        * tree.
+        *
+        * NOTE: DO NOT COPY this code if you are using device tree.
         */
        plat = calloc(1, sizeof(*plat));
        if (!plat)
index 0eb6c600f1ef4f446c4280becdb05870f6544f1b..0c42bd6cecd9149d03d4576cab23c0bd035831a6 100644 (file)
@@ -311,6 +311,11 @@ static int mxc_gpio_bind(struct udevice *dev)
         * When every board is converted to driver model and DT is supported,
         * this can be done by auto-alloc feature, but not using calloc
         * to alloc memory for platdata.
+        *
+        * For example mxc_plat below uses platform data rather than device
+        * tree.
+        *
+        * NOTE: DO NOT COPY this code if you are using device tree.
         */
        plat = calloc(1, sizeof(*plat));
        if (!plat)
index b423e34ca4bfc4ad3d2a6e0aa42eebae2b8e4e90..1ab12f3f1e1cb13cd32207771d3f60bce951a189 100644 (file)
@@ -299,7 +299,7 @@ static int omap_gpio_probe(struct udevice *dev)
 
 static int omap_gpio_bind(struct udevice *dev)
 {
-       struct omap_gpio_platdata *plat = dev->platdata;
+       struct omap_gpio_platdata *plat = dev_get_platdata(dev);
        fdt_addr_t base_addr;
 
        if (plat)
@@ -314,6 +314,10 @@ static int omap_gpio_bind(struct udevice *dev)
        * When every board is converted to driver model and DT is
        * supported, this can be done by auto-alloc feature, but
        * not using calloc to alloc memory for platdata.
+       *
+       * For example am33xx_gpio uses platform data rather than device tree.
+       *
+       * NOTE: DO NOT COPY this code if you are using device tree.
        */
        plat = calloc(1, sizeof(*plat));
        if (!plat)