From c0a33c12b0805710338626e59f129afceee7996e Mon Sep 17 00:00:00 2001 From: Gabor Juhos Date: Mon, 19 Mar 2012 15:56:59 +0000 Subject: ar71xx: add platform data for the RB750 NAND driver git-svn-id: svn://svn.openwrt.org/openwrt/trunk@31022 3c298f89-4303-0410-b956-a3cf2f4a3e73 --- .../ar71xx/files/arch/mips/ath79/mach-rb750.c | 24 +++++++++++++++++----- 1 file changed, 19 insertions(+), 5 deletions(-) (limited to 'target/linux/ar71xx/files/arch/mips/ath79/mach-rb750.c') diff --git a/target/linux/ar71xx/files/arch/mips/ath79/mach-rb750.c b/target/linux/ar71xx/files/arch/mips/ath79/mach-rb750.c index 976617bb36..bcd961e1bd 100644 --- a/target/linux/ar71xx/files/arch/mips/ath79/mach-rb750.c +++ b/target/linux/ar71xx/files/arch/mips/ath79/mach-rb750.c @@ -1,5 +1,5 @@ /* - * MikroTik RouterBOARD 750 support + * MikroTik RouterBOARD 750/750GL support * * Copyright (C) 2010-2012 Gabor Juhos * @@ -59,9 +59,13 @@ static struct platform_device rb750_leds_device = { } }; +static struct rb7xx_nand_platform_data rb750_nand_data; static struct platform_device rb750_nand_device = { .name = "rb750-nand", .id = -1, + .dev = { + .platform_data = &rb750_nand_data, + } }; int rb750_latch_change(u32 mask_clr, u32 mask_set) @@ -113,19 +117,24 @@ unlock: } EXPORT_SYMBOL_GPL(rb750_latch_change); -void rb750_nand_pins_enable(void) +static void rb750_nand_enable_pins(void) { + rb750_latch_change(RB750_LVC573_LE, 0); ath79_gpio_function_setup(AR724X_GPIO_FUNC_JTAG_DISABLE, AR724X_GPIO_FUNC_SPI_EN); } -EXPORT_SYMBOL_GPL(rb750_nand_pins_enable); -void rb750_nand_pins_disable(void) +static void rb750_nand_disable_pins(void) { ath79_gpio_function_setup(AR724X_GPIO_FUNC_SPI_EN, AR724X_GPIO_FUNC_JTAG_DISABLE); + rb750_latch_change(0, RB750_LVC573_LE); +} + +static void rb750_nand_latch_change(u32 clear, u32 set) +{ + rb750_latch_change(clear, set); } -EXPORT_SYMBOL_GPL(rb750_nand_pins_disable); static void __init rb750_setup(void) { @@ -147,6 +156,11 @@ static void __init rb750_setup(void) ath79_register_eth(0); platform_device_register(&rb750_leds_device); + + rb750_nand_data.nce_line = RB750_NAND_NCE; + rb750_nand_data.enable_pins = rb750_nand_enable_pins; + rb750_nand_data.disable_pins = rb750_nand_disable_pins; + rb750_nand_data.latch_change = rb750_nand_latch_change; platform_device_register(&rb750_nand_device); } -- cgit v1.2.3