Commit 4cec8cd7 authored by Linus Walleij's avatar Linus Walleij Committed by Olof Johansson
Browse files

ARM: nomadik: move hog code to use DT hogs



Instead of introducing a board-specific DT node for biasing the
MMC/SD and SATA ports, use the new device tree hogs.

Signed-off-by: default avatarLinus Walleij <linus.walleij@linaro.org>
Signed-off-by: default avatarOlof Johansson <olof@lixom.net>
parent 28d250c4
Loading
Loading
Loading
Loading
+10 −8
Original line number Diff line number Diff line
@@ -131,6 +131,16 @@
				#gpio-cells = <2>;
				interrupt-controller;
				#interrupt-cells = <2>;
				/*
				 * This will turn off SATA so that MMC/SD
				 * can thrive
				 */
				mmcsd-gpio {
					gpio-hog;
					gpios = <2 0x0>;
					output-low;
					line-name = "SATA EN";
				};
			};
		};
	};
@@ -141,12 +151,4 @@
			wp-gpios = <&stmpe_gpio44 18 GPIO_ACTIVE_HIGH>;
		};
	};

	/* Custom board node with GPIO pins to active etc */
	usb-s8815 {
		/* This will turn off SATA so that MMC/SD can thrive */
		mmcsd-gpio {
			gpios = <&stmpe_gpio44 2 0x1>;
		};
	};
};
+10 −8
Original line number Diff line number Diff line
@@ -19,6 +19,16 @@
		serial1 = &uart1;
	};

	gpio3: gpio@101e7000 {
		/* This hog will bias the MMC/SD card detect line */
		mmcsd-gpio {
			gpio-hog;
			gpios = <16 0x0>;
			output-low;
			line-name = "card detect bias";
		};
	};

	src@101e0000 {
		/* These chrystal drivers are not used on this board */
		disable-sxtalo;
@@ -109,14 +119,6 @@
		};
	};

	/* Custom board node with GPIO pins to active etc */
	usb-s8815 {
		/* This will bias the MMC/SD card detect line */
		mmcsd-gpio {
			gpios = <&gpio3 16 0x1>;
		};
	};

	/* The user LED on the board is set up to be used for heartbeat */
	leds {
		compatible = "gpio-leds";
+0 −36
Original line number Diff line number Diff line
@@ -26,10 +26,8 @@
#include <linux/irq.h>
#include <linux/dma-mapping.h>
#include <linux/of_irq.h>
#include <linux/of_gpio.h>
#include <linux/of_address.h>
#include <linux/of_platform.h>
#include <linux/gpio.h>

#include <asm/mach/arch.h>
#include <asm/mach/map.h>
@@ -109,40 +107,6 @@ static void cpu8815_restart(enum reboot_mode mode, const char *cmd)
	writel(1, srcbase + 0x18);
}

/*
 * This GPIO pin turns on a line that is used to detect card insertion
 * on this board.
 */
static int __init cpu8815_mmcsd_init(void)
{
	struct device_node *cdbias;
	int gpio, err;

	cdbias = of_find_node_by_path("/usb-s8815/mmcsd-gpio");
	if (!cdbias) {
		pr_info("could not find MMC/SD card detect bias node\n");
		return 0;
	}
	gpio = of_get_gpio(cdbias, 0);
	if (gpio < 0) {
		pr_info("could not obtain MMC/SD card detect bias GPIO\n");
		return 0;
	}
	err = gpio_request(gpio, "card detect bias");
	if (err) {
		pr_info("failed to request card detect bias GPIO %d\n", gpio);
		return -ENODEV;
	}
	err = gpio_direction_output(gpio, 0);
	if (err){
		pr_info("failed to set GPIO %d as output, low\n", gpio);
		return err;
	}
	pr_info("enabled USB-S8815 CD bias GPIO %d, low\n", gpio);
	return 0;
}
device_initcall(cpu8815_mmcsd_init);

static const char * cpu8815_board_compat[] = {
	"st,nomadik-nhk-15",
	"calaosystems,usb-s8815",