Commit 5f0a2c69 authored by Tony Lindgren's avatar Tony Lindgren
Browse files

ARM: OMAP2+: Use pdata quirks for wl12xx legacy init



Let's use the platform data quirk support for wl12xx
and move the board specific code out of devices.c.

Signed-off-by: default avatarTony Lindgren <tony@atomide.com>
parent 3e7a3185
Loading
Loading
Loading
Loading
+0 −38
Original line number Diff line number Diff line
@@ -19,7 +19,6 @@
#include <linux/of.h>
#include <linux/pinctrl/machine.h>
#include <linux/platform_data/omap4-keypad.h>
#include <linux/wl12xx.h>
#include <linux/platform_data/mailbox-omap.h>

#include <asm/mach-types.h>
@@ -475,40 +474,6 @@ static void omap_init_vout(void)
static inline void omap_init_vout(void) {}
#endif

#if IS_ENABLED(CONFIG_WL12XX)

static struct wl12xx_platform_data wl12xx __initdata;

void __init omap_init_wl12xx_of(void)
{
	int ret;

	if (!of_have_populated_dt())
		return;

	if (of_machine_is_compatible("ti,omap4-sdp")) {
		wl12xx.board_ref_clock = WL12XX_REFCLOCK_26;
		wl12xx.board_tcxo_clock = WL12XX_TCXOCLOCK_26;
		wl12xx.irq = gpio_to_irq(53);
	} else if (of_machine_is_compatible("ti,omap4-panda")) {
		wl12xx.board_ref_clock = WL12XX_REFCLOCK_38;
		wl12xx.irq = gpio_to_irq(53);
	} else {
		return;
	}

	ret = wl12xx_set_platform_data(&wl12xx);
	if (ret) {
		pr_err("error setting wl12xx data: %d\n", ret);
		return;
	}
}
#else
static inline void omap_init_wl12xx_of(void)
{
}
#endif

/*-------------------------------------------------------------------------*/

static int __init omap2_init_devices(void)
@@ -531,9 +496,6 @@ static int __init omap2_init_devices(void)
		omap_init_sham();
		omap_init_aes();
		omap_init_rng();
	} else {
		/* These can be removed when bindings are done */
		omap_init_wl12xx_of();
	}
	omap_init_sti();
	omap_init_vout();
+33 −0
Original line number Diff line number Diff line
@@ -8,8 +8,10 @@
 * published by the Free Software Foundation.
 */
#include <linux/clk.h>
#include <linux/gpio.h>
#include <linux/init.h>
#include <linux/kernel.h>
#include <linux/wl12xx.h>

#include "common.h"
#include "common-board-devices.h"
@@ -34,16 +36,47 @@ static void __init __used legacy_init_ehci_clk(char *clkname)
		       __func__, clkname, ret);
}

#if IS_ENABLED(CONFIG_WL12XX)

static struct wl12xx_platform_data wl12xx __initdata;

static void __init __used legacy_init_wl12xx(unsigned ref_clock,
					     unsigned tcxo_clock,
					     int gpio)
{
	int res;

	wl12xx.board_ref_clock = ref_clock;
	wl12xx.board_tcxo_clock = tcxo_clock;
	wl12xx.irq = gpio_to_irq(gpio);

	res = wl12xx_set_platform_data(&wl12xx);
	if (res) {
		pr_err("error setting wl12xx data: %d\n", res);
		return;
	}
}
#else
static inline void legacy_init_wl12xx(unsigned ref_clock,
				      unsigned tcxo_clock,
				      int gpio)
{
}
#endif

#ifdef CONFIG_ARCH_OMAP4
static void __init omap4_sdp_legacy_init(void)
{
	omap_4430sdp_display_init_of();
	legacy_init_wl12xx(WL12XX_REFCLOCK_26,
			   WL12XX_TCXOCLOCK_26, 53);
}

static void __init omap4_panda_legacy_init(void)
{
	omap4_panda_display_init_of();
	legacy_init_ehci_clk("auxclk3_ck");
	legacy_init_wl12xx(WL12XX_REFCLOCK_38, 0, 53);
}
#endif