Update mach-dragino2.c from Dragino2 official repository. The patch should directly apply in trunk. -- ./p4u
From 31692b700b79499bf0510b5350253b4c619c49ba Mon Sep 17 00:00:00 2001 From: Pau Escrich <p...@dabax.net> Date: Mon, 11 Aug 2014 15:57:37 +0200 Subject: [PATCH] Update dragino2 GPIO definitions
Signed-off-by: Pau Escrich <p...@dabax.net> --- .../ar71xx/files/arch/mips/ath79/mach-dragino2.c | 105 +++++++++++++++++++-- 1 file changed, 99 insertions(+), 6 deletions(-) diff --git a/target/linux/ar71xx/files/arch/mips/ath79/mach-dragino2.c b/target/linux/ar71xx/files/arch/mips/ath79/mach-dragino2.c index 156fbe5..f6e0fd7 100644 --- a/target/linux/ar71xx/files/arch/mips/ath79/mach-dragino2.c +++ b/target/linux/ar71xx/files/arch/mips/ath79/mach-dragino2.c @@ -2,7 +2,7 @@ * DRAGINO V2 board support, based on Atheros AP121 board support * * Copyright (C) 2011-2012 Gabor Juhos <juh...@openwrt.org> - * Copyright (C) 2012 Elektra Wagenrad <elek...@villagetelco.org> + * Copyright (C) 2012-2013 Elektra Wagenrad <elek...@villagetelco.org> * * This program is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License version 2 as published @@ -21,13 +21,29 @@ #include "dev-usb.h" #include "dev-wmac.h" #include "machtypes.h" +// Added for SPI bitbanging support +#include <linux/spi/spi_gpio.h> +#include <linux/irq.h> +#include <linux/interrupt.h> +#include <linux/kernel.h> +#include <linux/init.h> +#include <linux/linkage.h> +#include <linux/platform_device.h> +#include <linux/types.h> +#include <linux/leds.h> +#include <linux/spi/spi.h> +#include <linux/spi/spidev.h> +#include <linux/spi/spi_bitbang.h> +#include <linux/gpio.h> + + #define DRAGINO2_GPIO_LED_WLAN 0 #define DRAGINO2_GPIO_LED_LAN 13 #define DRAGINO2_GPIO_LED_WAN 17 -/* - * The following GPIO is actually named "Router" on the board. + +/* The following GPIO is actually named "Router" on the board. * However, since the "Router" feature is not supported as of yet * we use it to display USB activity. */ @@ -44,6 +60,8 @@ #define DRAGINO2_CALDATA_OFFSET 0x1000 #define DRAGINO2_WMAC_MAC_OFFSET 0x1002 + + static struct gpio_led dragino2_leds_gpio[] __initdata = { { .name = "dragino2:red:lan", @@ -65,6 +83,8 @@ static struct gpio_led dragino2_leds_gpio[] __initdata = { .gpio = DRAGINO2_GPIO_LED_USB, .active_low = 0, }, + + }; static struct gpio_keys_button dragino2_gpio_keys[] __initdata = { @@ -86,9 +106,61 @@ static struct gpio_keys_button dragino2_gpio_keys[] __initdata = { } }; +/* Support for a second SPI Master with ID-number 1 + * by bitbanging GPIOs + * + * GPIO resources used by for the Si3217x-based FXS SPI slave module: + * + * CS (Chip select) for FXS board, SPI slave device #0, selected by GPIO_24 @Router_header_PIN12 + * FXS_RESET = GPIO 23 @Router_header_PIN9 + * FXS_INT = GPIO27 = @JTAG_header_PIN2 + * SCLK = GPIO_15 = @JTAG_header_PIN9 + * MOSI = GPIO_16 = @JTAG_header_PIN10 + * MISO = GPIO_26 = @JTAG_header_PIN1 +*/ + + +static struct spi_gpio_platform_data dragino2_20_spi_gpio_data = { +.sck = 15, +.mosi = 16, +.miso = 26, +.num_chipselect = 1 +}; + +static struct platform_device dragino2_spi_gpio_device = { + .name = "spi_gpio", + .id = 1, + .dev.platform_data = &dragino2_20_spi_gpio_data, +}; + + + +// WiP: Add SPI client support for the FXS module + +/*static struct si3217x_platform_data si3217x_info [] = { + { + .reset = 23, + }, +};*/ + +static struct spi_board_info si3217x_spi_info[] = { + { + .bus_num = 1, + .max_speed_hz = 10000000, + .modalias = "si3217x", + .chip_select = 0, + .controller_data = (void *) 24, + .mode = 3, + .irq = 27, + } +}; + + + static void __init dragino2_common_setup(void) { u8 *art = (u8 *) KSEG1ADDR(0x1fff0000); + u32 val; ath79_register_m25p80(NULL); ath79_register_wmac(art + DRAGINO2_CALDATA_OFFSET, @@ -99,19 +171,35 @@ static void __init dragino2_common_setup(void) ath79_register_mdio(0, 0x0); - /* Enable GPIO15 and GPIO16 and possibly GPIO26 and GPIO27 */ - ath79_gpio_function_disable(AR933X_GPIO_FUNC_ETH_SWITCH_LED2_EN | - AR933X_GPIO_FUNC_ETH_SWITCH_LED3_EN); + //Enable GPIO15 and GPIO16 + ath79_gpio_function_disable( + AR933X_GPIO_FUNC_ETH_SWITCH_LED2_EN | + AR933X_GPIO_FUNC_ETH_SWITCH_LED3_EN + ); /* LAN ports */ ath79_register_eth(1); /* WAN port */ ath79_register_eth(0); + + + /* Enable GPIO26 and GPIO27 */ + /* Read reset register */ + val = ath79_reset_rr(AR933X_RESET_REG_BOOTSTRAP); + + val |= AR933X_BOOTSTRAP_MDIO_GPIO_EN; + + /* Write reset register */ + ath79_reset_wr(AR933X_RESET_REG_BOOTSTRAP, val); } + + static void __init dragino2_setup(void) { + printk(KERN_INFO "In dragino2_setup()\n"); + dragino2_common_setup(); ath79_register_leds_gpio(-1, ARRAY_SIZE(dragino2_leds_gpio), @@ -120,8 +208,13 @@ static void __init dragino2_setup(void) ARRAY_SIZE(dragino2_gpio_keys), dragino2_gpio_keys); ath79_register_usb(); + + spi_register_board_info(si3217x_spi_info,ARRAY_SIZE(si3217x_spi_info)); + + platform_device_register(&dragino2_spi_gpio_device); } + MIPS_MACHINE(ATH79_MACH_DRAGINO2, "DRAGINO2", "Dragino Dragino v2", dragino2_setup); -- 2.0.1
signature.asc
Description: OpenPGP digital signature
_______________________________________________ openwrt-devel mailing list openwrt-devel@lists.openwrt.org https://lists.openwrt.org/cgi-bin/mailman/listinfo/openwrt-devel