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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? leds-evm.c

?? TI達芬奇 arm+dsp雙核平臺Davinci 6446 EVM板的linux下的 處理器平臺底層代碼
?? C
字號:
/* * <arch/arm/mach-davinci/leds-evm.c> * * LED support for TI DaVinci EVM * * 2006 (c) Texas Instruments, Inc. This file is licensed under * the terms of the GNU General Public License version 2. This program * is licensed "as is" without any warranty of any kind, whether express * or implied. */#include <linux/config.h>#include <linux/init.h>#include <linux/interrupt.h>#include <linux/types.h>#include <linux/i2c.h>#include <linux/errno.h>#include <asm/mach-types.h>#include <asm/hardware.h>#include <asm/leds.h>#include <asm/system.h>/* eight leds on a pcf8574a I2C gpio expander; 0 == ON, 1 == OFF *  - drivers can use leds_event(led_{green,amber,red,blue}_{on,off}) *  - userspace can do the same with /sys/devices/leds/leds0/event */#define	LED_DS8			(1 << 0)#define	LED_DS7			(1 << 1)#define	LED_DS6			(1 << 2)#define	LED_DS5			(1 << 3)#define	LED_DS4			(1 << 4)#define	LED_DS3			(1 << 5)#define	LED_DS2			(1 << 6)#define	LED_DS1			(1 << 7)#define LED_STATE_ENABLED	(1 << 8)#define LED_STATE_CLAIMED	(1 << 9)static u16	hw_led_state;static u8	leds_change;/* these leds use I2C not GPIO, so we can't change values * and remain "idle" ... so there's no "idle" LED. */#define	TIMER_LED		LED_DS8#define	GREEN_LED		LED_DS1#define	AMBER_LED		LED_DS2#define	RED_LED			LED_DS3#define	BLUE_LED		LED_DS4#define	APP_LEDS	(GREEN_LED | AMBER_LED | RED_LED | BLUE_LED)static DEFINE_RAW_SPINLOCK(lock);#define	EVM_I2C_ADDR	0x38#ifdef CONFIG_PREEMPT_RTstatic void pcf_work(unsigned long unused)#elsestatic void pcf_work(void *unused)#endif{	struct i2c_adapter	*adap;	int			err;	struct i2c_msg		msg;	adap = i2c_get_adapter(0);	if (!adap)		return;	for (;;) {		static u8	leds;		spin_lock_irq(&lock);		leds = (u8) hw_led_state;		err= leds_change;		leds_change = 0;		spin_unlock_irq(&lock);		if (!err)			break;		msg.addr = EVM_I2C_ADDR;		msg.flags = 0;		msg.len = 1;		msg.buf = &leds;		err = i2c_transfer(adap, &msg, 1);		if (err < 0)			pr_debug("LED: set to %02x, err %d\n", leds, err);	}}/* Under PREEMPT_RT, this code may be called from the timer interrupt * with is a real hard IRQ.  Therefore, workqueues cannot be used * because 'schedule_work()' can sleep.  OTOH, for non-RT, tasklets * cannot be used to call sleeping functions (such as i2c stack) */#ifdef CONFIG_PREEMPT_RTstatic DECLARE_TASKLET(work, pcf_work, 0);#define doit() tasklet_schedule(&work)#elsestatic DECLARE_WORK(work, pcf_work, NULL);#define doit() schedule_work(&work)#endifstatic void evm_leds_event(led_event_t evt){	unsigned long	flags;	u16		leds;	spin_lock_irqsave(&lock, flags);	if (!(hw_led_state & LED_STATE_ENABLED) && evt != led_start)		goto done;	leds = hw_led_state;	switch (evt) {	case led_start:		hw_led_state = LED_STATE_ENABLED | 0xff;		leds = 0;		break;	case led_halted:	case led_stop:		hw_led_state = 0xff;		// NOTE:  work may still be pending!!		break;	case led_claim:		hw_led_state |= LED_STATE_CLAIMED;		hw_led_state |= APP_LEDS;		break;	case led_release:		hw_led_state &= ~LED_STATE_CLAIMED;		hw_led_state |= APP_LEDS;		break;#ifdef	CONFIG_LEDS_TIMER	case led_timer:		hw_led_state ^= TIMER_LED;		break;#endif	/* actually all the LEDs are green */	case led_green_on:		if (leds & LED_STATE_CLAIMED)			hw_led_state &= ~GREEN_LED;		break;	case led_green_off:		if (leds & LED_STATE_CLAIMED)			hw_led_state |= GREEN_LED;		break;	case led_amber_on:		if (leds & LED_STATE_CLAIMED)			hw_led_state &= ~AMBER_LED;		break;	case led_amber_off:		if (leds & LED_STATE_CLAIMED)			hw_led_state |= AMBER_LED;		break;	case led_red_on:		if (leds & LED_STATE_CLAIMED)			hw_led_state &= ~RED_LED;		break;	case led_red_off:		if (leds & LED_STATE_CLAIMED)			hw_led_state |= RED_LED;		break;	case led_blue_on:		if (leds & LED_STATE_CLAIMED)			hw_led_state &= ~BLUE_LED;		break;	case led_blue_off:		if (leds & LED_STATE_CLAIMED)			hw_led_state |= BLUE_LED;		break;	default:		break;	}	leds ^= hw_led_state;	if (leds & 0xff) {		leds_change = (u8) leds;		doit();	}done:	spin_unlock_irqrestore(&lock, flags);}static int __init evm_leds_init(void){	if (!machine_is_davinci_evm())		return 0;	leds_event = evm_leds_event;	leds_event(led_start);	return 0;}/* i2c is subsys_initcall, davinci i2c is device_initcall; * this needs to follow both of them (sigh) */late_initcall(evm_leds_init);

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美久久久久久久久| 国产视频一区在线观看| 国产精品久久久久婷婷| 日本中文字幕一区二区有限公司| 成人黄色小视频| 日韩天堂在线观看| 天天爽夜夜爽夜夜爽精品视频| 高清视频一区二区| 日韩女优av电影| 尤物在线观看一区| 秋霞电影一区二区| 色综合天天综合在线视频| 欧美精品一区在线观看| 天天亚洲美女在线视频| 日韩欧美亚洲国产精品字幕久久久| 狠狠色丁香婷综合久久| 国产精品伦一区| 日韩欧美一区二区视频| 欧美军同video69gay| 久久99久久99小草精品免视看| 国产精品美女www爽爽爽| 国产69精品久久777的优势| 美腿丝袜亚洲一区| 亚洲一区二区三区在线播放| 亚洲靠逼com| 久久久久综合网| 欧美精品v日韩精品v韩国精品v| 国产乱对白刺激视频不卡| 日韩限制级电影在线观看| 国产精品一区二区男女羞羞无遮挡| 中文一区一区三区高中清不卡| 天涯成人国产亚洲精品一区av| 欧美日韩国产首页在线观看| 国产精品乱码久久久久久| 国产在线国偷精品产拍免费yy| 欧美一二三区在线观看| 麻豆精品视频在线| 精品国产乱码久久久久久久| 国产精品一二二区| 国产精品伦理在线| 91老师片黄在线观看| 一区二区三区在线视频观看| 在线观看日产精品| 亚洲成人免费影院| 欧美α欧美αv大片| 国产成人午夜视频| 亚洲色图一区二区| 欧美视频中文一区二区三区在线观看 | 亚洲综合免费观看高清完整版 | 国产精品久久久久一区二区三区| 成人91在线观看| 亚洲卡通欧美制服中文| 欧美精品1区2区3区| 国产精选一区二区三区| 最新不卡av在线| 制服丝袜在线91| 国产揄拍国内精品对白| 国产精品传媒视频| 欧美一区二区三区精品| 国产激情视频一区二区在线观看 | 国产精品自拍网站| 1024亚洲合集| 日韩精品一区二区三区蜜臀 | 美女视频黄频大全不卡视频在线播放| 日韩午夜激情视频| av在线一区二区三区| 日韩精品电影在线观看| 91精品国产一区二区人妖| 国产不卡视频在线观看| 亚洲成人一区在线| 国产精品视频一二| 91精品国产麻豆国产自产在线| 福利电影一区二区| 日韩不卡一区二区| 中文字幕亚洲区| 精品电影一区二区| 欧美在线观看视频一区二区三区| 国精产品一区一区三区mba桃花| 亚洲乱码中文字幕| 精品福利视频一区二区三区| 欧美日韩激情在线| 91美女蜜桃在线| 国产美女主播视频一区| 日本不卡的三区四区五区| 亚洲日本电影在线| 欧美国产国产综合| 精品噜噜噜噜久久久久久久久试看| 91丨porny丨蝌蚪视频| 国产一本一道久久香蕉| 麻豆精品一区二区综合av| 亚洲高清不卡在线| 亚洲柠檬福利资源导航| 国产精品视频一二三| 亚洲精品一区二区三区蜜桃下载 | 99re成人精品视频| 处破女av一区二区| 国产成人精品一区二区三区四区 | 中文字幕一区二区三区在线播放| 日韩精品一区二区三区在线| 欧美亚洲国产怡红院影院| 色香蕉久久蜜桃| 日本二三区不卡| 91在线视频播放| 97久久精品人人做人人爽50路| 成人av先锋影音| 国产91精品露脸国语对白| 国产高清不卡一区二区| 国产精品自拍av| 国产精品1024| www.欧美亚洲| 91免费版在线| 欧美亚洲丝袜传媒另类| 欧美在线视频你懂得| 欧美日韩视频在线观看一区二区三区 | av亚洲精华国产精华| 懂色av一区二区三区免费看| 成人午夜精品一区二区三区| 国产69精品久久777的优势| 成人一区在线观看| 成人av免费在线| 91精品91久久久中77777| 欧美午夜片在线观看| 3d动漫精品啪啪1区2区免费| 日韩精品一区二区三区在线观看| 欧美xxxx老人做受| 国产精品麻豆视频| 一区二区不卡在线视频 午夜欧美不卡在 | 中文字幕免费不卡在线| 亚洲欧美一区二区视频| 亚洲一卡二卡三卡四卡无卡久久| 视频一区视频二区中文| 久久er99精品| 粉嫩嫩av羞羞动漫久久久| 色屁屁一区二区| 3d动漫精品啪啪1区2区免费| 久久亚洲一级片| 亚洲欧美日韩精品久久久久| 日韩高清在线观看| 国产98色在线|日韩| 在线观看一区日韩| 精品国产一区二区三区久久久蜜月 | 亚洲成人av在线电影| 久久精品二区亚洲w码| 国产69精品久久99不卡| 欧美日韩激情一区二区三区| 国产日产欧美一区| 亚洲成人av一区二区| 国产成人免费视频网站高清观看视频| 91在线视频播放| 精品福利一二区| 一区二区在线观看视频| 精品一区二区三区日韩| 色诱亚洲精品久久久久久| 日韩欧美一级二级三级久久久| 国产精品欧美经典| 奇米色777欧美一区二区| 91在线精品一区二区| 精品女同一区二区| 亚洲与欧洲av电影| 国产成人精品影视| 日韩视频免费观看高清完整版在线观看 | 国产精品久久久一本精品| 日韩成人午夜精品| 91免费视频网| 国产亚洲1区2区3区| 日韩国产精品久久久久久亚洲| 欧美人体做爰大胆视频| www精品美女久久久tv| 丝袜美腿亚洲综合| 在线区一区二视频| 国产精品区一区二区三| 精品系列免费在线观看| 欧美日本一区二区三区四区| 亚洲欧美日韩系列| 成人黄色在线看| 久久久久国产精品人| 黄色日韩网站视频| 欧美一级生活片| 丝袜美腿一区二区三区| 欧美性一二三区| 亚洲精品欧美激情| 成人av资源网站| 中文字幕在线视频一区| 粉嫩一区二区三区在线看| 久久精品欧美日韩| 国内外成人在线| 久久影视一区二区| 国产中文一区二区三区| 久久综合久久综合久久综合| 久久精品久久综合| 91精品国产福利在线观看 | 91精品国产综合久久国产大片 | 国产精品无码永久免费888| 看国产成人h片视频| 日韩一区二区三| 日本不卡免费在线视频| 欧美成人女星排名| 激情文学综合丁香| 久久久久88色偷偷免费| 风间由美一区二区av101|