Hi Stefan, Am Donnerstag, 18. Dezember 2014, 14:43:01 schrieb Stefan Hengelein: > So you actually tested the code I removed in the patch? can you > provide a configuration that compiles that piece of code? Yep, one of my boards (Asus eeeReader DR-900) was actually able to transmit stuff via the libertas spi wifi driver using the s3c64xx-spi driver. The smdk2416 is currently the only board for the s3c2416 in the kernel. I don't know if it had actual spi devices connected, but if it had, a suitable diff would look something like the diff below. Of course hooking up spi devices would work the same in any out-of-tree board for the supported socs. For people reading along, the s3c24xx spi distribution is as follows: s3c2410, s3c2412, s3c2440: (I think) two s3c24xx-spi s3c2443: one s3c64xx-spi and one s3c24xx-spi s3c2416: one s3c64xx-spi s3c2450: two s3c64xx-spi Heiko ------------ 8< ------------ diff --git a/arch/arm/mach-s3c24xx/Kconfig b/arch/arm/mach-s3c24xx/Kconfig index 9eb2229..5210e5d 100644 --- a/arch/arm/mach-s3c24xx/Kconfig +++ b/arch/arm/mach-s3c24xx/Kconfig @@ -419,6 +419,8 @@ config MACH_SMDK2416 select S3C_DEV_HSMMC1 select S3C_DEV_NAND select S3C_DEV_USB_HOST + select S3C64XX_DEV_SPI0 + select S3C2443_SETUP_SPI help Say Y here if you are using an SMDK2416 diff --git a/arch/arm/mach-s3c24xx/mach-smdk2416.c b/arch/arm/mach-s3c24xx/mach-smdk2416.c index 86394f7..b6c6ff4 100644 --- a/arch/arm/mach-s3c24xx/mach-smdk2416.c +++ b/arch/arm/mach-s3c24xx/mach-smdk2416.c @@ -52,6 +52,9 @@ #include <linux/platform_data/s3c-hsudc.h> #include <plat/samsung-time.h> +#include <linux/spi/spi.h> +#include <linux/platform_data/spi-s3c64xx.h> + #include <plat/fb.h> #include "common.h" @@ -207,6 +210,26 @@ static struct s3c_sdhci_platdata smdk2416_hsmmc1_pdata __initdata = { .cd_type = S3C_SDHCI_CD_NONE, }; +struct s3c64xx_spi_csinfo libertas_cs_info = { + .fb_delay = 0, + .line = 128, /* gpio cs line */ +}; + + +static struct spi_board_info spi_board_info[] = { + { + .modalias = "libertas_spi", + .max_speed_hz = 1200000, + .bus_num = 0, + .irq = 12, /* some interrupt number */ + .chip_select = 0, + .mode = SPI_MODE_3, + .controller_data = &libertas_cs_info, +/* .platform_data = &foo1_pdata, */ + }, +}; + + static struct platform_device *smdk2416_devices[] __initdata = { &s3c_device_fb, &s3c_device_wdt, @@ -216,6 +239,7 @@ static struct platform_device *smdk2416_devices[] __initdata = { &s3c_device_hsmmc1, &s3c_device_usb_hsudc, &s3c2443_device_dma, + &s3c64xx_device_spi0, }; static void __init smdk2416_init_time(void) @@ -250,6 +274,9 @@ static void __init smdk2416_machine_init(void) gpio_request(S3C2410_GPB(1), "Display Reset"); gpio_direction_output(S3C2410_GPB(1), 1); + s3c64xx_spi0_set_platdata(NULL, 0, ARRAY_SIZE(spi_board_info)); + spi_register_board_info(spi_board_info, ARRAY_SIZE(spi_board_info)); + platform_add_devices(smdk2416_devices, ARRAY_SIZE(smdk2416_devices)); smdk_machine_init(); } diff --git a/arch/arm/mach-s3c24xx/setup-spi.c b/arch/arm/mach-s3c24xx/setup-spi.c index 3d47e02..d66c4e0 100644 --- a/arch/arm/mach-s3c24xx/setup-spi.c +++ b/arch/arm/mach-s3c24xx/setup-spi.c @@ -16,6 +16,7 @@ #include <mach/hardware.h> #include <mach/regs-gpio.h> +#include <mach/gpio-samsung.h> #ifdef CONFIG_S3C64XX_DEV_SPI0 int s3c64xx_spi0_cfg_gpio(void) -- To unsubscribe from this list: send the line "unsubscribe linux-samsung-soc" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html