Several boards are using the built-in SPI controller of the AR71XX/AR724X/AR913X SoCs. This patch adds common platform_device and helper code to register it. Additionally, the patch registers the SPI bus on the PB44 board. Signed-off-by: Gabor Juhos <juhosg@openwrt.org> Cc: linux-mips@linux-mips.org Cc: Imre Kaloz <kaloz@openwrt.org> Cc: Luis R. Rodriguez <lrodriguez@atheros.com> Cc: Cliff Holden <Cliff.Holden@Atheros.com> Cc: Kathy Giori <Kathy.Giori@Atheros.com> Patchwork: https://patchwork.linux-mips.org/patch/1956/ Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
		
			
				
	
	
		
			38 lines
		
	
	
	
		
			1.1 KiB
			
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			38 lines
		
	
	
	
		
			1.1 KiB
			
		
	
	
	
		
			C
		
	
	
	
	
	
/*
 | 
						|
 *  Atheros AR71XX/AR724X/AR913X SPI controller device
 | 
						|
 *
 | 
						|
 *  Copyright (C) 2008-2010 Gabor Juhos <juhosg@openwrt.org>
 | 
						|
 *  Copyright (C) 2008 Imre Kaloz <kaloz@openwrt.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
 | 
						|
 *  by the Free Software Foundation.
 | 
						|
 */
 | 
						|
 | 
						|
#include <linux/platform_device.h>
 | 
						|
#include <asm/mach-ath79/ar71xx_regs.h>
 | 
						|
#include "dev-spi.h"
 | 
						|
 | 
						|
static struct resource ath79_spi_resources[] = {
 | 
						|
	{
 | 
						|
		.start	= AR71XX_SPI_BASE,
 | 
						|
		.end	= AR71XX_SPI_BASE + AR71XX_SPI_SIZE - 1,
 | 
						|
		.flags	= IORESOURCE_MEM,
 | 
						|
	},
 | 
						|
};
 | 
						|
 | 
						|
static struct platform_device ath79_spi_device = {
 | 
						|
	.name		= "ath79-spi",
 | 
						|
	.id		= -1,
 | 
						|
	.resource	= ath79_spi_resources,
 | 
						|
	.num_resources	= ARRAY_SIZE(ath79_spi_resources),
 | 
						|
};
 | 
						|
 | 
						|
void __init ath79_register_spi(struct ath79_spi_platform_data *pdata,
 | 
						|
			       struct spi_board_info const *info,
 | 
						|
			       unsigned n)
 | 
						|
{
 | 
						|
	spi_register_board_info(info, n);
 | 
						|
	ath79_spi_device.dev.platform_data = pdata;
 | 
						|
	platform_device_register(&ath79_spi_device);
 | 
						|
}
 |