Browse Source

dm: gpio: Add a comment about not copying some drivers

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>
Simon Glass 7 years ago
parent
commit
4d68604189
3 changed files with 15 additions and 1 deletions
  1. 5 0
      drivers/gpio/imx_rgpio2p.c
  2. 5 0
      drivers/gpio/mxc_gpio.c
  3. 5 1
      drivers/gpio/omap_gpio.c

+ 5 - 0
drivers/gpio/imx_rgpio2p.c

@@ -175,6 +175,11 @@ static int imx_rgpio2p_bind(struct udevice *dev)
 	 * When every board is converted to driver model and DT is supported,
 	 * When every board is converted to driver model and DT is supported,
 	 * this can be done by auto-alloc feature, but not using calloc
 	 * this can be done by auto-alloc feature, but not using calloc
 	 * to alloc memory for platdata.
 	 * 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));
 	plat = calloc(1, sizeof(*plat));
 	if (!plat)
 	if (!plat)

+ 5 - 0
drivers/gpio/mxc_gpio.c

@@ -311,6 +311,11 @@ static int mxc_gpio_bind(struct udevice *dev)
 	 * When every board is converted to driver model and DT is supported,
 	 * When every board is converted to driver model and DT is supported,
 	 * this can be done by auto-alloc feature, but not using calloc
 	 * this can be done by auto-alloc feature, but not using calloc
 	 * to alloc memory for platdata.
 	 * 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));
 	plat = calloc(1, sizeof(*plat));
 	if (!plat)
 	if (!plat)

+ 5 - 1
drivers/gpio/omap_gpio.c

@@ -299,7 +299,7 @@ static int omap_gpio_probe(struct udevice *dev)
 
 
 static int omap_gpio_bind(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;
 	fdt_addr_t base_addr;
 
 
 	if (plat)
 	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
 	* When every board is converted to driver model and DT is
 	* supported, this can be done by auto-alloc feature, but
 	* supported, this can be done by auto-alloc feature, but
 	* not using calloc to alloc memory for platdata.
 	* 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));
 	plat = calloc(1, sizeof(*plat));
 	if (!plat)
 	if (!plat)