| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495 | /* * arch/arm/mach-ep93xx/vision_ep9307.c * Vision Engraving Systems EP9307 SoM support. * * Copyright (C) 2008-2011 Vision Engraving Systems * H Hartley Sweeten <hsweeten@visionengravers.com> * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or (at * your option) any later version. */#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt#include <linux/kernel.h>#include <linux/init.h>#include <linux/platform_device.h>#include <linux/irq.h>#include <linux/gpio.h>#include <linux/fb.h>#include <linux/io.h>#include <linux/mtd/partitions.h>#include <linux/i2c.h>#include <linux/i2c-gpio.h>#include <linux/i2c/pca953x.h>#include <linux/spi/spi.h>#include <linux/spi/flash.h>#include <linux/spi/mmc_spi.h>#include <linux/mmc/host.h>#include <mach/hardware.h>#include <linux/platform_data/video-ep93xx.h>#include <linux/platform_data/spi-ep93xx.h>#include <mach/gpio-ep93xx.h>#include <asm/hardware/vic.h>#include <asm/mach-types.h>#include <asm/mach/map.h>#include <asm/mach/arch.h>#include "soc.h"/************************************************************************* * Static I/O mappings for the FPGA *************************************************************************/#define VISION_PHYS_BASE	EP93XX_CS7_PHYS_BASE#define VISION_VIRT_BASE	0xfebff000static struct map_desc vision_io_desc[] __initdata = {	{		.virtual	= VISION_VIRT_BASE,		.pfn		= __phys_to_pfn(VISION_PHYS_BASE),		.length		= SZ_4K,		.type		= MT_DEVICE,	},};static void __init vision_map_io(void){	ep93xx_map_io();	iotable_init(vision_io_desc, ARRAY_SIZE(vision_io_desc));}/************************************************************************* * Ethernet *************************************************************************/static struct ep93xx_eth_data vision_eth_data __initdata = {	.phy_id		= 1,};/************************************************************************* * Framebuffer *************************************************************************/#define VISION_LCD_ENABLE	EP93XX_GPIO_LINE_EGPIO1static int vision_lcd_setup(struct platform_device *pdev){	int err;	err = gpio_request_one(VISION_LCD_ENABLE, GPIOF_INIT_HIGH,				dev_name(&pdev->dev));	if (err)		return err;	ep93xx_devcfg_clear_bits(EP93XX_SYSCON_DEVCFG_RAS |				 EP93XX_SYSCON_DEVCFG_RASONP3 |				 EP93XX_SYSCON_DEVCFG_EXVC);	return 0;}static void vision_lcd_teardown(struct platform_device *pdev){
 |