diff options
Diffstat (limited to 'arch/blackfin/mach-bf537/boards/tcm_bf537.c')
| -rw-r--r-- | arch/blackfin/mach-bf537/boards/tcm_bf537.c | 161 | 
1 files changed, 85 insertions, 76 deletions
diff --git a/arch/blackfin/mach-bf537/boards/tcm_bf537.c b/arch/blackfin/mach-bf537/boards/tcm_bf537.c index 31498add1a4..6b988ad653d 100644 --- a/arch/blackfin/mach-bf537/boards/tcm_bf537.c +++ b/arch/blackfin/mach-bf537/boards/tcm_bf537.c @@ -9,17 +9,19 @@  #include <linux/device.h>  #include <linux/etherdevice.h> +#include <linux/export.h>  #include <linux/platform_device.h>  #include <linux/mtd/mtd.h>  #include <linux/mtd/partitions.h>  #include <linux/mtd/physmap.h>  #include <linux/spi/spi.h>  #include <linux/spi/flash.h> -#if defined(CONFIG_USB_ISP1362_HCD) || defined(CONFIG_USB_ISP1362_HCD_MODULE) +#if IS_ENABLED(CONFIG_USB_ISP1362_HCD)  #include <linux/usb/isp1362.h>  #endif  #include <linux/ata_platform.h>  #include <linux/irq.h> +#include <linux/gpio.h>  #include <asm/dma.h>  #include <asm/bfin5xx_spi.h>  #include <asm/portmux.h> @@ -31,10 +33,10 @@   */  const char bfin_board_name[] = "Bluetechnix TCM BF537"; -#if defined(CONFIG_SPI_BFIN) || defined(CONFIG_SPI_BFIN_MODULE) +#if IS_ENABLED(CONFIG_SPI_BFIN5XX)  /* all SPI peripherals info goes here */ -#if defined(CONFIG_MTD_M25P80) || defined(CONFIG_MTD_M25P80_MODULE) +#if IS_ENABLED(CONFIG_MTD_M25P80)  static struct mtd_partition bfin_spi_flash_partitions[] = {  	{  		.name = "bootloader(spi)", @@ -62,34 +64,17 @@ static struct flash_platform_data bfin_spi_flash_data = {  /* SPI flash chip (m25p64) */  static struct bfin5xx_spi_chip spi_flash_chip_info = {  	.enable_dma = 0,         /* use dma transfer with this chip*/ -	.bits_per_word = 8,  };  #endif -#if defined(CONFIG_BFIN_SPI_ADC) || defined(CONFIG_BFIN_SPI_ADC_MODULE) -/* SPI ADC chip */ -static struct bfin5xx_spi_chip spi_adc_chip_info = { -	.enable_dma = 1,         /* use dma transfer with this chip*/ -	.bits_per_word = 16, -}; -#endif - -#if defined(CONFIG_SND_BF5XX_SOC_AD183X) || defined(CONFIG_SND_BF5XX_SOC_AD183X_MODULE) -static struct bfin5xx_spi_chip ad1836_spi_chip_info = { -	.enable_dma = 0, -	.bits_per_word = 16, -}; -#endif - -#if defined(CONFIG_MMC_SPI) || defined(CONFIG_MMC_SPI_MODULE) +#if IS_ENABLED(CONFIG_MMC_SPI)  static struct bfin5xx_spi_chip mmc_spi_chip_info = {  	.enable_dma = 0, -	.bits_per_word = 8,  };  #endif  static struct spi_board_info bfin_spi_board_info[] __initdata = { -#if defined(CONFIG_MTD_M25P80) || defined(CONFIG_MTD_M25P80_MODULE) +#if IS_ENABLED(CONFIG_MTD_M25P80)  	{  		/* the modalias must be the same as spi device driver name */  		.modalias = "m25p80", /* Name of spi_driver for this device */ @@ -102,28 +87,16 @@ static struct spi_board_info bfin_spi_board_info[] __initdata = {  	},  #endif -#if defined(CONFIG_BFIN_SPI_ADC) || defined(CONFIG_BFIN_SPI_ADC_MODULE) -	{ -		.modalias = "bfin_spi_adc", /* Name of spi_driver for this device */ -		.max_speed_hz = 6250000,     /* max spi clock (SCK) speed in HZ */ -		.bus_num = 0, /* Framework bus number */ -		.chip_select = 1, /* Framework chip select. */ -		.platform_data = NULL, /* No spi_driver specific config */ -		.controller_data = &spi_adc_chip_info, -	}, -#endif - -#if defined(CONFIG_SND_BF5XX_SOC_AD183X) || defined(CONFIG_SND_BF5XX_SOC_AD183X_MODULE) +#if IS_ENABLED(CONFIG_SND_BF5XX_SOC_AD183X)  	{  		.modalias = "ad183x",  		.max_speed_hz = 3125000,     /* max spi clock (SCK) speed in HZ */  		.bus_num = 0,  		.chip_select = 4, -		.controller_data = &ad1836_spi_chip_info,  	},  #endif -#if defined(CONFIG_MMC_SPI) || defined(CONFIG_MMC_SPI_MODULE) +#if IS_ENABLED(CONFIG_MMC_SPI)  	{  		.modalias = "mmc_spi",  		.max_speed_hz = 25000000,     /* max spi clock (SCK) speed in HZ */ @@ -172,20 +145,20 @@ static struct platform_device bfin_spi0_device = {  };  #endif  /* spi master and devices */ -#if defined(CONFIG_RTC_DRV_BFIN) || defined(CONFIG_RTC_DRV_BFIN_MODULE) +#if IS_ENABLED(CONFIG_RTC_DRV_BFIN)  static struct platform_device rtc_device = {  	.name = "rtc-bfin",  	.id   = -1,  };  #endif -#if defined(CONFIG_FB_HITACHI_TX09) || defined(CONFIG_FB_HITACHI_TX09_MODULE) +#if IS_ENABLED(CONFIG_FB_HITACHI_TX09)  static struct platform_device hitachi_fb_device = {  	.name = "hitachi-tx09",  };  #endif -#if defined(CONFIG_SMC91X) || defined(CONFIG_SMC91X_MODULE) +#if IS_ENABLED(CONFIG_SMC91X)  #include <linux/smc91x.h>  static struct smc91x_platdata smc91x_info = { @@ -217,7 +190,7 @@ static struct platform_device smc91x_device = {  };  #endif -#if defined(CONFIG_USB_ISP1362_HCD) || defined(CONFIG_USB_ISP1362_HCD_MODULE) +#if IS_ENABLED(CONFIG_USB_ISP1362_HCD)  static struct resource isp1362_hcd_resources[] = {  	{  		.start = 0x20308000, @@ -256,7 +229,7 @@ static struct platform_device isp1362_hcd_device = {  };  #endif -#if defined(CONFIG_USB_NET2272) || defined(CONFIG_USB_NET2272_MODULE) +#if IS_ENABLED(CONFIG_USB_NET2272)  static struct resource net2272_bfin_resources[] = {  	{  		.start = 0x20300000, @@ -277,7 +250,7 @@ static struct platform_device net2272_bfin_device = {  };  #endif -#if defined(CONFIG_MTD_GPIO_ADDR) || defined(CONFIG_MTD_GPIO_ADDR_MODULE) +#if IS_ENABLED(CONFIG_MTD_GPIO_ADDR)  static struct mtd_partition cm_partitions[] = {  	{  		.name   = "bootloader(nor)", @@ -326,7 +299,7 @@ static struct platform_device cm_flash_device = {  };  #endif -#if defined(CONFIG_SERIAL_BFIN) || defined(CONFIG_SERIAL_BFIN_MODULE) +#if IS_ENABLED(CONFIG_SERIAL_BFIN)  #ifdef CONFIG_SERIAL_BFIN_UART0  static struct resource bfin_uart0_resources[] = {  	{ @@ -335,8 +308,13 @@ static struct resource bfin_uart0_resources[] = {  		.flags = IORESOURCE_MEM,  	},  	{ +		.start = IRQ_UART0_TX, +		.end = IRQ_UART0_TX, +		.flags = IORESOURCE_IRQ, +	}, +	{  		.start = IRQ_UART0_RX, -		.end = IRQ_UART0_RX+1, +		.end = IRQ_UART0_RX,  		.flags = IORESOURCE_IRQ,  	},  	{ @@ -356,7 +334,7 @@ static struct resource bfin_uart0_resources[] = {  	},  }; -unsigned short bfin_uart0_peripherals[] = { +static unsigned short bfin_uart0_peripherals[] = {  	P_UART0_TX, P_UART0_RX, 0  }; @@ -378,8 +356,13 @@ static struct resource bfin_uart1_resources[] = {  		.flags = IORESOURCE_MEM,  	},  	{ +		.start = IRQ_UART1_TX, +		.end = IRQ_UART1_TX, +		.flags = IORESOURCE_IRQ, +	}, +	{  		.start = IRQ_UART1_RX, -		.end = IRQ_UART1_RX+1, +		.end = IRQ_UART1_RX,  		.flags = IORESOURCE_IRQ,  	},  	{ @@ -399,7 +382,7 @@ static struct resource bfin_uart1_resources[] = {  	},  }; -unsigned short bfin_uart1_peripherals[] = { +static unsigned short bfin_uart1_peripherals[] = {  	P_UART1_TX, P_UART1_RX, 0  }; @@ -415,7 +398,7 @@ static struct platform_device bfin_uart1_device = {  #endif  #endif -#if defined(CONFIG_BFIN_SIR) || defined(CONFIG_BFIN_SIR_MODULE) +#if IS_ENABLED(CONFIG_BFIN_SIR)  #ifdef CONFIG_BFIN_SIR0  static struct resource bfin_sir0_resources[] = {  	{ @@ -470,7 +453,9 @@ static struct platform_device bfin_sir1_device = {  #endif  #endif -#if defined(CONFIG_I2C_BLACKFIN_TWI) || defined(CONFIG_I2C_BLACKFIN_TWI_MODULE) +#if IS_ENABLED(CONFIG_I2C_BLACKFIN_TWI) +static const u16 bfin_twi0_pins[] = {P_TWI0_SCL, P_TWI0_SDA, 0}; +  static struct resource bfin_twi0_resource[] = {  	[0] = {  		.start = TWI0_REGBASE, @@ -489,10 +474,13 @@ static struct platform_device i2c_bfin_twi_device = {  	.id = 0,  	.num_resources = ARRAY_SIZE(bfin_twi0_resource),  	.resource = bfin_twi0_resource, +	.dev = { +		.platform_data = &bfin_twi0_pins, +	},  };  #endif -#if defined(CONFIG_SERIAL_BFIN_SPORT) || defined(CONFIG_SERIAL_BFIN_SPORT_MODULE) +#if IS_ENABLED(CONFIG_SERIAL_BFIN_SPORT)  #ifdef CONFIG_SERIAL_BFIN_SPORT0_UART  static struct resource bfin_sport0_uart_resources[] = {  	{ @@ -512,9 +500,9 @@ static struct resource bfin_sport0_uart_resources[] = {  	},  }; -unsigned short bfin_sport0_peripherals[] = { +static unsigned short bfin_sport0_peripherals[] = {  	P_SPORT0_TFS, P_SPORT0_DTPRI, P_SPORT0_TSCLK, P_SPORT0_RFS, -	P_SPORT0_DRPRI, P_SPORT0_RSCLK, P_SPORT0_DRSEC, P_SPORT0_DTSEC, 0 +	P_SPORT0_DRPRI, P_SPORT0_RSCLK, 0  };  static struct platform_device bfin_sport0_uart_device = { @@ -546,9 +534,9 @@ static struct resource bfin_sport1_uart_resources[] = {  	},  }; -unsigned short bfin_sport1_peripherals[] = { +static unsigned short bfin_sport1_peripherals[] = {  	P_SPORT1_TFS, P_SPORT1_DTPRI, P_SPORT1_TSCLK, P_SPORT1_RFS, -	P_SPORT1_DRPRI, P_SPORT1_RSCLK, P_SPORT1_DRSEC, P_SPORT1_DTSEC, 0 +	P_SPORT1_DRPRI, P_SPORT1_RSCLK, 0  };  static struct platform_device bfin_sport1_uart_device = { @@ -563,7 +551,7 @@ static struct platform_device bfin_sport1_uart_device = {  #endif  #endif -#if defined(CONFIG_BFIN_MAC) || defined(CONFIG_BFIN_MAC_MODULE) +#if IS_ENABLED(CONFIG_BFIN_MAC)  #include <linux/bfin_mac.h>  static const unsigned short bfin_mac_peripherals[] = P_MII0; @@ -596,12 +584,12 @@ static struct platform_device bfin_mac_device = {  };  #endif -#if defined(CONFIG_PATA_PLATFORM) || defined(CONFIG_PATA_PLATFORM_MODULE) +#if IS_ENABLED(CONFIG_PATA_PLATFORM)  #define PATA_INT	IRQ_PF14  static struct pata_platform_info bfin_pata_platform_data = {  	.ioport_shift = 2, -	.irq_type = IRQF_TRIGGER_HIGH | IRQF_DISABLED, +	.irq_type = IRQF_TRIGGER_HIGH,  };  static struct resource bfin_pata_resources[] = { @@ -664,15 +652,15 @@ static struct platform_device *cm_bf537_devices[] __initdata = {  	&bfin_dpmc, -#if defined(CONFIG_FB_HITACHI_TX09) || defined(CONFIG_FB_HITACHI_TX09_MODULE) +#if IS_ENABLED(CONFIG_FB_HITACHI_TX09)  	&hitachi_fb_device,  #endif -#if defined(CONFIG_RTC_DRV_BFIN) || defined(CONFIG_RTC_DRV_BFIN_MODULE) +#if IS_ENABLED(CONFIG_RTC_DRV_BFIN)  	&rtc_device,  #endif -#if defined(CONFIG_SERIAL_BFIN) || defined(CONFIG_SERIAL_BFIN_MODULE) +#if IS_ENABLED(CONFIG_SERIAL_BFIN)  #ifdef CONFIG_SERIAL_BFIN_UART0  	&bfin_uart0_device,  #endif @@ -681,7 +669,7 @@ static struct platform_device *cm_bf537_devices[] __initdata = {  #endif  #endif -#if defined(CONFIG_BFIN_SIR) || defined(CONFIG_BFIN_SIR_MODULE) +#if IS_ENABLED(CONFIG_BFIN_SIR)  #ifdef CONFIG_BFIN_SIR0  	&bfin_sir0_device,  #endif @@ -690,11 +678,11 @@ static struct platform_device *cm_bf537_devices[] __initdata = {  #endif  #endif -#if defined(CONFIG_I2C_BLACKFIN_TWI) || defined(CONFIG_I2C_BLACKFIN_TWI_MODULE) +#if IS_ENABLED(CONFIG_I2C_BLACKFIN_TWI)  	&i2c_bfin_twi_device,  #endif -#if defined(CONFIG_SERIAL_BFIN_SPORT) || defined(CONFIG_SERIAL_BFIN_SPORT_MODULE) +#if IS_ENABLED(CONFIG_SERIAL_BFIN_SPORT)  #ifdef CONFIG_SERIAL_BFIN_SPORT0_UART  	&bfin_sport0_uart_device,  #endif @@ -703,47 +691,69 @@ static struct platform_device *cm_bf537_devices[] __initdata = {  #endif  #endif -#if defined(CONFIG_USB_ISP1362_HCD) || defined(CONFIG_USB_ISP1362_HCD_MODULE) +#if IS_ENABLED(CONFIG_USB_ISP1362_HCD)  	&isp1362_hcd_device,  #endif -#if defined(CONFIG_SMC91X) || defined(CONFIG_SMC91X_MODULE) +#if IS_ENABLED(CONFIG_SMC91X)  	&smc91x_device,  #endif -#if defined(CONFIG_BFIN_MAC) || defined(CONFIG_BFIN_MAC_MODULE) +#if IS_ENABLED(CONFIG_BFIN_MAC)  	&bfin_mii_bus,  	&bfin_mac_device,  #endif -#if defined(CONFIG_USB_NET2272) || defined(CONFIG_USB_NET2272_MODULE) +#if IS_ENABLED(CONFIG_USB_NET2272)  	&net2272_bfin_device,  #endif -#if defined(CONFIG_SPI_BFIN) || defined(CONFIG_SPI_BFIN_MODULE) +#if IS_ENABLED(CONFIG_SPI_BFIN5XX)  	&bfin_spi0_device,  #endif -#if defined(CONFIG_PATA_PLATFORM) || defined(CONFIG_PATA_PLATFORM_MODULE) +#if IS_ENABLED(CONFIG_PATA_PLATFORM)  	&bfin_pata_device,  #endif -#if defined(CONFIG_MTD_GPIO_ADDR) || defined(CONFIG_MTD_GPIO_ADDR_MODULE) +#if IS_ENABLED(CONFIG_MTD_GPIO_ADDR)  	&cm_flash_device,  #endif  }; +static int __init net2272_init(void) +{ +#if IS_ENABLED(CONFIG_USB_NET2272) +	int ret; + +	ret = gpio_request(GPIO_PG14, "net2272"); +	if (ret) +		return ret; + +	/* Reset USB Chip, PG14 */ +	gpio_direction_output(GPIO_PG14, 0); +	mdelay(2); +	gpio_set_value(GPIO_PG14, 1); +#endif + +	return 0; +} +  static int __init tcm_bf537_init(void)  {  	printk(KERN_INFO "%s(): registering device resources\n", __func__);  	platform_add_devices(cm_bf537_devices, ARRAY_SIZE(cm_bf537_devices)); -#if defined(CONFIG_SPI_BFIN) || defined(CONFIG_SPI_BFIN_MODULE) +#if IS_ENABLED(CONFIG_SPI_BFIN5XX)  	spi_register_board_info(bfin_spi_board_info, ARRAY_SIZE(bfin_spi_board_info));  #endif -#if defined(CONFIG_PATA_PLATFORM) || defined(CONFIG_PATA_PLATFORM_MODULE) -	irq_desc[PATA_INT].status |= IRQ_NOAUTOEN; +#if IS_ENABLED(CONFIG_PATA_PLATFORM) +	irq_set_status_flags(PATA_INT, IRQ_NOAUTOEN);  #endif + +	if (net2272_init()) +		pr_warning("unable to configure net2272; it probably won't work\n"); +  	return 0;  } @@ -776,9 +786,8 @@ void __init native_machine_early_platform_add_devices(void)  		ARRAY_SIZE(cm_bf537_early_devices));  } -void bfin_get_ether_addr(char *addr) +int bfin_get_ether_addr(char *addr)  { -	random_ether_addr(addr); -	printk(KERN_WARNING "%s:%s: Setting Ethernet MAC to a random one\n", __FILE__, __func__); +	return 1;  }  EXPORT_SYMBOL(bfin_get_ether_addr);  | 
