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: Tony Lindgren <tony@atomide.com>
This commit is contained in:
parent
3e7a318530
commit
5f0a2c6976
|
@ -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();
|
||||
|
|
|
@ -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
|
||||
|
||||
|
|
Loading…
Reference in New Issue