亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? pcm990-baseboard.c

?? trident tm5600的linux驅(qū)動
?? C
字號:
/* *  arch/arm/mach-pxa/pcm990-baseboard.c *  Support for the Phytec phyCORE-PXA270 Development Platform (PCM-990). * *  Refer *   http://www.phytec.com/products/rdk/ARM-XScale/phyCORE-XScale-PXA270.html *  for additional hardware info * *  Author:	Juergen Kilb *  Created:	April 05, 2005 *  Copyright:	Phytec Messtechnik GmbH *  e-Mail:	armlinux@phytec.de * *  based on Intel Mainstone Board * *  Copyright 2007 Juergen Beisert @ Pengutronix (j.beisert@pengutronix.de) * *  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/irq.h>#include <linux/platform_device.h>#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 27)#include <linux/ide.h>#endif#include <linux/i2c.h>#include <linux/pwm_backlight.h>#include <media/soc_camera.h>#include <asm/gpio.h>#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 27)#include <asm/arch/i2c.h>#include <asm/arch/camera.h>#else#include <mach/i2c.h>#include <mach/camera.h>#endif#include <asm/mach/map.h>#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 27)#include <asm/arch/pxa-regs.h>#include <asm/arch/audio.h>#include <asm/arch/mmc.h>#include <asm/arch/ohci.h>#include <asm/arch/pcm990_baseboard.h>#include <asm/arch/pxafb.h>#include <asm/arch/mfp-pxa27x.h>#else#include <mach/pxa-regs.h>#include <mach/audio.h>#include <mach/mmc.h>#include <mach/ohci.h>#include <mach/pcm990_baseboard.h>#include <mach/pxafb.h>#include <mach/mfp-pxa27x.h>#endif#include "devices.h"#include "generic.h"static unsigned long pcm990_pin_config[] __initdata = {	/* MMC */	GPIO32_MMC_CLK,	GPIO112_MMC_CMD,	GPIO92_MMC_DAT_0,	GPIO109_MMC_DAT_1,	GPIO110_MMC_DAT_2,	GPIO111_MMC_DAT_3,	/* USB */	GPIO88_USBH1_PWR,	GPIO89_USBH1_PEN,	/* PWM0 */	GPIO16_PWM0_OUT,};/* * pcm990_lcd_power - control power supply to the LCD * @on: 0 = switch off, 1 = switch on * * Called by the pxafb driver */#ifndef CONFIG_PCM990_DISPLAY_NONEstatic void pcm990_lcd_power(int on, struct fb_var_screeninfo *var){	if (on) {		/* enable LCD-Latches		 * power on LCD		 */		__PCM990_CTRL_REG(PCM990_CTRL_PHYS + PCM990_CTRL_REG3) =			PCM990_CTRL_LCDPWR + PCM990_CTRL_LCDON;	} else {		/* disable LCD-Latches		 * power off LCD		 */		__PCM990_CTRL_REG(PCM990_CTRL_PHYS + PCM990_CTRL_REG3) = 0x00;	}}#endif#if defined(CONFIG_PCM990_DISPLAY_SHARP)static struct pxafb_mode_info fb_info_sharp_lq084v1dg21 = {	.pixclock		= 28000,	.xres			= 640,	.yres			= 480,	.bpp			= 16,	.hsync_len		= 20,	.left_margin		= 103,	.right_margin		= 47,	.vsync_len		= 6,	.upper_margin		= 28,	.lower_margin		= 5,	.sync			= 0,	.cmap_greyscale		= 0,};static struct pxafb_mach_info pcm990_fbinfo __initdata = {	.modes			= &fb_info_sharp_lq084v1dg21,	.num_modes		= 1,	.lccr0			= LCCR0_PAS,	.lccr3			= LCCR3_PCP,	.pxafb_lcd_power	= pcm990_lcd_power,};#elif defined(CONFIG_PCM990_DISPLAY_NEC)struct pxafb_mode_info fb_info_nec_nl6448bc20_18d = {	.pixclock		= 39720,	.xres			= 640,	.yres			= 480,	.bpp			= 16,	.hsync_len		= 32,	.left_margin		= 16,	.right_margin		= 48,	.vsync_len		= 2,	.upper_margin		= 12,	.lower_margin		= 17,	.sync			= 0,	.cmap_greyscale		= 0,};static struct pxafb_mach_info pcm990_fbinfo __initdata = {	.modes			= &fb_info_nec_nl6448bc20_18d,	.num_modes		= 1,	.lccr0			= LCCR0_Act,	.lccr3			= LCCR3_PixFlEdg,	.pxafb_lcd_power	= pcm990_lcd_power,};#endifstatic struct platform_pwm_backlight_data pcm990_backlight_data = {	.pwm_id		= 0,	.max_brightness	= 1023,	.dft_brightness	= 1023,	.pwm_period_ns	= 78770,};static struct platform_device pcm990_backlight_device = {	.name		= "pwm-backlight",	.dev		= {		.parent = &pxa27x_device_pwm0.dev,		.platform_data = &pcm990_backlight_data,	},};/* * The PCM-990 development baseboard uses PCM-027's hardware in the * following way: * * - LCD support is in use *  - GPIO16 is output for back light on/off with PWM *  - GPIO58 ... GPIO73 are outputs for display data *  - GPIO74 is output output for LCDFCLK *  - GPIO75 is output for LCDLCLK *  - GPIO76 is output for LCDPCLK *  - GPIO77 is output for LCDBIAS * - MMC support is in use *  - GPIO32 is output for MMCCLK *  - GPIO92 is MMDAT0 *  - GPIO109 is MMDAT1 *  - GPIO110 is MMCS0 *  - GPIO111 is MMCS1 *  - GPIO112 is MMCMD * - IDE/CF card is in use *  - GPIO48 is output /POE *  - GPIO49 is output /PWE *  - GPIO50 is output /PIOR *  - GPIO51 is output /PIOW *  - GPIO54 is output /PCE2 *  - GPIO55 is output /PREG *  - GPIO56 is input /PWAIT *  - GPIO57 is output /PIOS16 *  - GPIO79 is output PSKTSEL *  - GPIO85 is output /PCE1 * - FFUART is in use *  - GPIO34 is input FFRXD *  - GPIO35 is input FFCTS *  - GPIO36 is input FFDCD *  - GPIO37 is input FFDSR *  - GPIO38 is input FFRI *  - GPIO39 is output FFTXD *  - GPIO40 is output FFDTR *  - GPIO41 is output FFRTS * - BTUART is in use *  - GPIO42 is input BTRXD *  - GPIO43 is output BTTXD *  - GPIO44 is input BTCTS *  - GPIO45 is output BTRTS * - IRUART is in use *  - GPIO46 is input STDRXD *  - GPIO47 is output STDTXD * - AC97 is in use*) *  - GPIO28 is input AC97CLK *  - GPIO29 is input AC97DatIn *  - GPIO30 is output AC97DatO *  - GPIO31 is output AC97SYNC *  - GPIO113 is output AC97_RESET * - SSP is in use *  - GPIO23 is output SSPSCLK *  - GPIO24 is output chip select to Max7301 *  - GPIO25 is output SSPTXD *  - GPIO26 is input SSPRXD *  - GPIO27 is input for Max7301 IRQ *  - GPIO53 is input SSPSYSCLK * - SSP3 is in use *  - GPIO81 is output SSPTXD3 *  - GPIO82 is input SSPRXD3 *  - GPIO83 is output SSPSFRM *  - GPIO84 is output SSPCLK3 * * Otherwise claimed GPIOs: * GPIO1 -> IRQ from user switch * GPIO9 -> IRQ from power management * GPIO10 -> IRQ from WML9712 AC97 controller * GPIO11 -> IRQ from IDE controller * GPIO12 -> IRQ from CF controller * GPIO13 -> IRQ from CF controller * GPIO14 -> GPIO free * GPIO15 -> /CS1 selects baseboard's Control CPLD (U7, 16 bit wide data path) * GPIO19 -> GPIO free * GPIO20 -> /SDCS2 * GPIO21 -> /CS3 PC card socket select * GPIO33 -> /CS5  network controller select * GPIO78 -> /CS2  (16 bit wide data path) * GPIO80 -> /CS4  (16 bit wide data path) * GPIO86 -> GPIO free * GPIO87 -> GPIO free * GPIO90 -> LED0 on CPU module * GPIO91 -> LED1 on CPI module * GPIO117 -> SCL * GPIO118 -> SDA */static unsigned long pcm990_irq_enabled;static void pcm990_mask_ack_irq(unsigned int irq){	int pcm990_irq = (irq - PCM027_IRQ(0));	PCM990_INTMSKENA = (pcm990_irq_enabled &= ~(1 << pcm990_irq));}static void pcm990_unmask_irq(unsigned int irq){	int pcm990_irq = (irq - PCM027_IRQ(0));	/* the irq can be acknowledged only if deasserted, so it's done here */	PCM990_INTSETCLR |= 1 << pcm990_irq;	PCM990_INTMSKENA  = (pcm990_irq_enabled |= (1 << pcm990_irq));}static struct irq_chip pcm990_irq_chip = {	.mask_ack	= pcm990_mask_ack_irq,	.unmask		= pcm990_unmask_irq,};static void pcm990_irq_handler(unsigned int irq, struct irq_desc *desc){	unsigned long pending = (~PCM990_INTSETCLR) & pcm990_irq_enabled;	do {		GEDR(PCM990_CTRL_INT_IRQ_GPIO) =					GPIO_bit(PCM990_CTRL_INT_IRQ_GPIO);		if (likely(pending)) {			irq = PCM027_IRQ(0) + __ffs(pending);			generic_handle_irq(irq);		}		pending = (~PCM990_INTSETCLR) & pcm990_irq_enabled;	} while (pending);}static void __init pcm990_init_irq(void){	int irq;	/* setup extra PCM990 irqs */	for (irq = PCM027_IRQ(0); irq <= PCM027_IRQ(3); irq++) {		set_irq_chip(irq, &pcm990_irq_chip);		set_irq_handler(irq, handle_level_irq);		set_irq_flags(irq, IRQF_VALID | IRQF_PROBE);	}	PCM990_INTMSKENA = 0x00;	/* disable all Interrupts */	PCM990_INTSETCLR = 0xFF;	set_irq_chained_handler(PCM990_CTRL_INT_IRQ, pcm990_irq_handler);	set_irq_type(PCM990_CTRL_INT_IRQ, PCM990_CTRL_INT_IRQ_EDGE);}static int pcm990_mci_init(struct device *dev, irq_handler_t mci_detect_int,			void *data){	int err;	err = request_irq(PCM027_MMCDET_IRQ, mci_detect_int, IRQF_DISABLED,			     "MMC card detect", data);	if (err)		printk(KERN_ERR "pcm990_mci_init: MMC/SD: can't request MMC "				"card detect IRQ\n");	return err;}static void pcm990_mci_setpower(struct device *dev, unsigned int vdd){	struct pxamci_platform_data *p_d = dev->platform_data;	if ((1 << vdd) & p_d->ocr_mask)		__PCM990_CTRL_REG(PCM990_CTRL_PHYS + PCM990_CTRL_REG5) =						PCM990_CTRL_MMC2PWR;	else		__PCM990_CTRL_REG(PCM990_CTRL_PHYS + PCM990_CTRL_REG5) =						~PCM990_CTRL_MMC2PWR;}static void pcm990_mci_exit(struct device *dev, void *data){	free_irq(PCM027_MMCDET_IRQ, data);}#define MSECS_PER_JIFFY (1000/HZ)static struct pxamci_platform_data pcm990_mci_platform_data = {	.detect_delay	= 250 / MSECS_PER_JIFFY,	.ocr_mask	= MMC_VDD_32_33 | MMC_VDD_33_34,	.init 		= pcm990_mci_init,	.setpower 	= pcm990_mci_setpower,	.exit		= pcm990_mci_exit,};static struct pxaohci_platform_data pcm990_ohci_platform_data = {	.port_mode	= PMM_PERPORT_MODE,	.flags		= ENABLE_PORT1 | POWER_CONTROL_LOW | POWER_SENSE_LOW,	.power_on_delay	= 10,};/* * PXA27x Camera specific stuff */#if defined(CONFIG_VIDEO_PXA27x) || defined(CONFIG_VIDEO_PXA27x_MODULE)static unsigned long pcm990_camera_pin_config[] = {	/* CIF */	GPIO98_CIF_DD_0,	GPIO105_CIF_DD_1,	GPIO104_CIF_DD_2,	GPIO103_CIF_DD_3,	GPIO95_CIF_DD_4,	GPIO94_CIF_DD_5,	GPIO93_CIF_DD_6,	GPIO108_CIF_DD_7,	GPIO107_CIF_DD_8,	GPIO106_CIF_DD_9,	GPIO42_CIF_MCLK,	GPIO45_CIF_PCLK,	GPIO43_CIF_FV,	GPIO44_CIF_LV,};static int pcm990_pxacamera_init(struct device *dev){	pxa2xx_mfp_config(ARRAY_AND_SIZE(pcm990_camera_pin_config));	return 0;}/* * CICR4: PCLK_EN:	Pixel clock is supplied by the sensor *	MCLK_EN:	Master clock is generated by PXA *	PCP:		Data sampled on the falling edge of pixel clock */struct pxacamera_platform_data pcm990_pxacamera_platform_data = {	.init	= pcm990_pxacamera_init,	.flags  = PXA_CAMERA_MASTER | PXA_CAMERA_DATAWIDTH_8 | PXA_CAMERA_DATAWIDTH_10 |		PXA_CAMERA_PCLK_EN | PXA_CAMERA_MCLK_EN/* | PXA_CAMERA_PCP*/,	.mclk_10khz = 1000,};#include <linux/i2c/pca953x.h>static struct pca953x_platform_data pca9536_data = {	.gpio_base	= NR_BUILTIN_GPIO + 1,};static struct soc_camera_link iclink[] = {	{		.bus_id	= 0, /* Must match with the camera ID above */		.gpio	= NR_BUILTIN_GPIO + 1,	}, {		.bus_id	= 0, /* Must match with the camera ID above */	}};/* Board I2C devices. */static struct i2c_board_info __initdata pcm990_i2c_devices[] = {	{		/* Must initialize before the camera(s) */		I2C_BOARD_INFO("pca9536", 0x41),		.platform_data = &pca9536_data,	}, {		I2C_BOARD_INFO("mt9v022", 0x48),		.platform_data = &iclink[0], /* With extender */	}, {		I2C_BOARD_INFO("mt9m001", 0x5d),		.platform_data = &iclink[0], /* With extender */	},};#endif /* CONFIG_VIDEO_PXA27x ||CONFIG_VIDEO_PXA27x_MODULE *//* * enable generic access to the base board control CPLDs U6 and U7 */static struct map_desc pcm990_io_desc[] __initdata = {	{		.virtual	= PCM990_CTRL_BASE,		.pfn		= __phys_to_pfn(PCM990_CTRL_PHYS),		.length		= PCM990_CTRL_SIZE,		.type		= MT_DEVICE	/* CPLD */	}, {		.virtual	= PCM990_CF_PLD_BASE,		.pfn		= __phys_to_pfn(PCM990_CF_PLD_PHYS),		.length		= PCM990_CF_PLD_SIZE,		.type		= MT_DEVICE	/* CPLD */	}};/* * system init for baseboard usage. Will be called by pcm027 init. * * Add platform devices present on this baseboard and init * them from CPU side as far as required to use them later on */void __init pcm990_baseboard_init(void){	pxa2xx_mfp_config(ARRAY_AND_SIZE(pcm990_pin_config));	/* register CPLD access */	iotable_init(ARRAY_AND_SIZE(pcm990_io_desc));	/* register CPLD's IRQ controller */	pcm990_init_irq();#ifndef CONFIG_PCM990_DISPLAY_NONE	set_pxa_fb_info(&pcm990_fbinfo);#endif	platform_device_register(&pcm990_backlight_device);	/* MMC */	pxa_set_mci_info(&pcm990_mci_platform_data);	/* USB host */	pxa_set_ohci_info(&pcm990_ohci_platform_data);	pxa_set_i2c_info(NULL);	pxa_set_ac97_info(NULL);#if defined(CONFIG_VIDEO_PXA27x) || defined(CONFIG_VIDEO_PXA27x_MODULE)	pxa_set_camera_info(&pcm990_pxacamera_platform_data);	i2c_register_board_info(0, ARRAY_AND_SIZE(pcm990_i2c_devices));#endif	printk(KERN_INFO "PCM-990 Evaluation baseboard initialized\n");}

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日本大胆欧美人术艺术动态| 色久综合一二码| 欧美一级淫片007| 视频一区欧美精品| 欧美中文字幕一区| 亚洲风情在线资源站| 一本久久精品一区二区| 亚洲精品国产精华液| 欧美中文字幕一区二区三区| 亚洲一区二区三区小说| 欧洲精品在线观看| 亚洲午夜电影在线观看| 欧美日韩情趣电影| 国产精品传媒视频| www.亚洲人| 午夜精品福利一区二区蜜股av| 欧美日韩国产一二三| 日韩av电影天堂| 国产目拍亚洲精品99久久精品| 成人黄色网址在线观看| 亚洲欧美aⅴ...| 3d动漫精品啪啪一区二区竹菊| 日韩vs国产vs欧美| 久久久精品国产99久久精品芒果 | 亚洲女与黑人做爰| 欧美日韩国产系列| 日本欧美久久久久免费播放网| 欧美激情中文不卡| 欧美日韩成人在线一区| 国产91丝袜在线播放九色| 一区二区三区波多野结衣在线观看| 欧美一级二级三级乱码| 99在线热播精品免费| 九色porny丨国产精品| 亚洲精品成人天堂一二三| 精品美女一区二区三区| 欧美偷拍一区二区| www.在线成人| 国产精品综合在线视频| 免费看精品久久片| 亚洲成人中文在线| 亚洲国产精品成人综合| 6080午夜不卡| 91精品国产色综合久久久蜜香臀| 99视频精品全部免费在线| 国产一区二区主播在线| 午夜伦欧美伦电影理论片| 亚洲免费观看高清完整版在线观看熊 | 一本色道久久综合亚洲精品按摩| 韩国v欧美v亚洲v日本v| 人人狠狠综合久久亚洲| 夜夜夜精品看看| 香蕉av福利精品导航 | 精品不卡在线视频| 久久美女艺术照精彩视频福利播放| 7777女厕盗摄久久久| 欧美一区二区网站| 日韩欧美亚洲国产精品字幕久久久| 91精品欧美福利在线观看| 3d动漫精品啪啪1区2区免费| 日韩一区二区三区在线视频| 欧美一级爆毛片| 久久婷婷国产综合精品青草| 国产欧美日韩一区二区三区在线观看| 国产日韩在线不卡| 中文字幕在线一区免费| 亚洲欧美偷拍三级| 三级欧美韩日大片在线看| 五月综合激情婷婷六月色窝| 麻豆极品一区二区三区| 成人av网站在线观看| 欧美亚州韩日在线看免费版国语版| 欧美日本视频在线| 中文字幕免费在线观看视频一区| 一区二区三区美女视频| 国产伦精品一区二区三区视频青涩 | 亚洲欧美偷拍三级| 婷婷成人综合网| 国产精品主播直播| 9191国产精品| 亚洲人123区| 成人夜色视频网站在线观看| 色悠久久久久综合欧美99| 精品国产人成亚洲区| 亚洲国产精品自拍| 99视频精品在线| 欧美激情一区不卡| 免费人成在线不卡| 欧美日韩精品是欧美日韩精品| 国产精品午夜春色av| 激情综合五月婷婷| 欧美精品777| 三级欧美在线一区| 日本韩国欧美一区| 国产精品进线69影院| 国产在线播放一区三区四| 欧美精选一区二区| 亚洲高清免费视频| 欧美日韩国产首页在线观看| 一区二区三区在线观看动漫| 色诱视频网站一区| 亚洲综合免费观看高清完整版 | 精品国产乱码久久久久久牛牛 | 亚洲日本在线看| 91视频xxxx| 亚洲成人免费视频| 6080yy午夜一二三区久久| 一区二区高清在线| 日本高清免费不卡视频| 婷婷亚洲久悠悠色悠在线播放 | 日韩午夜精品电影| 久久99国产精品久久99果冻传媒| 精品电影一区二区三区| 国产经典欧美精品| 亚洲一区二区三区国产| 日韩欧美在线网站| 成人午夜又粗又硬又大| 亚洲综合激情网| 2014亚洲片线观看视频免费| av成人动漫在线观看| 日韩二区三区在线观看| 亚洲精品在线电影| 91在线国内视频| 亚洲二区在线视频| 国产清纯白嫩初高生在线观看91 | 欧美日韩免费观看一区二区三区 | 国产在线日韩欧美| 亚洲精品第1页| 久久综合色婷婷| 日本精品视频一区二区| 国产美女一区二区| 亚洲国产三级在线| 国产精品不卡在线观看| 精品国产免费一区二区三区四区| 色婷婷亚洲婷婷| 99在线精品观看| 成人福利视频在线看| 日本aⅴ亚洲精品中文乱码| 中文字幕一区二区视频| 久久久久国产精品人| 欧美变态口味重另类| 欧美日韩一区久久| 欧美日韩情趣电影| 欧美三级日韩三级| 欧美在线免费观看亚洲| 91色九色蝌蚪| 欧美性淫爽ww久久久久无| 91国偷自产一区二区三区成为亚洲经典 | 26uuu国产在线精品一区二区| 欧美日韩久久久一区| 欧美老女人第四色| 欧美日韩精品欧美日韩精品一| 在线免费观看一区| 91精品国产综合久久久蜜臀图片| 在线观看日韩电影| 在线观看日韩高清av| 欧美精品电影在线播放| 欧美日本一道本| 精品国产伦理网| 国产人久久人人人人爽| 国产精品激情偷乱一区二区∴| 亚洲自拍都市欧美小说| 日本欧美久久久久免费播放网| 蜜乳av一区二区| 成人黄色免费短视频| 欧美日韩国产片| 欧美一区二区三区爱爱| 国产欧美一二三区| 亚洲一二三四在线观看| 国产在线视视频有精品| 欧美性生活影院| 久久青草国产手机看片福利盒子| 亚洲人123区| 成人综合在线观看| 在线国产亚洲欧美| 国产欧美日产一区| 日韩电影在线一区二区三区| 国产成人自拍网| 日韩一二三区视频| 亚洲欧美aⅴ...| 成人三级伦理片| 日韩三级免费观看| 亚洲资源在线观看| 93久久精品日日躁夜夜躁欧美| 欧美一区二区三区小说| 亚洲欧美激情视频在线观看一区二区三区| 日本视频一区二区| 欧美日韩在线直播| 一区二区成人在线| 在线这里只有精品| 亚洲欧洲美洲综合色网| 国产精品一卡二卡在线观看| 欧美一区二区视频在线观看2022| 亚洲人吸女人奶水| 91福利精品视频| 亚洲欧洲性图库| 99免费精品视频| 亚洲免费电影在线| 精品视频一区三区九区| 亚洲第一福利视频在线|