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

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

?? leds-evm.c

?? TI達芬奇典型實例 初學者可以由此進行更深入的學習!
?? 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一区二区三区免费野_久草精品视频
jlzzjlzz亚洲女人18| 日韩欧美黄色影院| 日韩精品最新网址| 国产精品成人午夜| 久久国产麻豆精品| 欧美少妇一区二区| 成人免费视频在线观看| 捆绑调教一区二区三区| 51午夜精品国产| 亚洲男人的天堂av| 成人av网站在线观看免费| 2020国产精品自拍| 美国十次综合导航| 在线成人小视频| 亚洲一区影音先锋| 日本二三区不卡| 中文字幕一区二区三区四区不卡 | 精品国产乱码久久久久久图片| 亚洲色图.com| av网站免费线看精品| 亚洲国产电影在线观看| 国产乱对白刺激视频不卡| 日韩欧美亚洲另类制服综合在线| 性久久久久久久久| 欧美午夜电影在线播放| 一区二区久久久| 日本韩国欧美在线| 亚洲免费伊人电影| 日本韩国欧美一区二区三区| 亚洲人成网站影音先锋播放| 99精品国产视频| 亚洲欧洲美洲综合色网| 色老汉av一区二区三区| 一区二区三区精品视频在线| 色香蕉久久蜜桃| 亚洲国产一二三| 欧美精品高清视频| 久久机这里只有精品| 久久久亚洲精品石原莉奈 | 精品国产污网站| 麻豆久久久久久久| 久久久国产一区二区三区四区小说| 狠狠色狠狠色综合| 国产精品美女视频| 91在线视频网址| 亚洲国产精品天堂| 51精品视频一区二区三区| 日本vs亚洲vs韩国一区三区二区| 日韩欧美中文一区| 国产九色sp调教91| 亚洲免费在线看| 欧美精品一卡二卡| 国产剧情在线观看一区二区| 中文字幕av一区 二区| 日本大香伊一区二区三区| 亚洲午夜精品久久久久久久久| 91精品国产综合久久久久久漫画 | 国产99精品视频| 中文字幕一区二区三区不卡在线| 欧美性一二三区| 精品一区二区三区在线播放视频| 国产精品美女久久久久av爽李琼| 欧美综合亚洲图片综合区| 麻豆精品视频在线| 国产精品久久久久久妇女6080| 欧美午夜精品久久久久久超碰| 久久国产人妖系列| 亚洲天堂网中文字| 欧美tickling网站挠脚心| 91亚洲精华国产精华精华液| 天天综合色天天综合| 国产精品午夜在线| 欧美一区二区精品久久911| 成人av资源在线观看| 日韩在线一区二区三区| 国产精品久久久爽爽爽麻豆色哟哟| 精品婷婷伊人一区三区三| 国产精品一线二线三线| 午夜精品一区在线观看| 国产精品美女久久久久久| 欧美一区二区三区在线观看 | 国产精品99久久久久久久vr| 亚洲人成网站精品片在线观看| 欧美大片一区二区| 欧美自拍偷拍一区| 不卡的av电影| 国产美女久久久久| 日日夜夜精品视频免费| 一区二区三区在线视频免费观看| 国产欧美一区二区三区鸳鸯浴| 欧美日本韩国一区| 一本大道久久a久久综合婷婷| 激情综合亚洲精品| 日韩高清国产一区在线| 亚洲图片欧美视频| 最近中文字幕一区二区三区| 久久精品欧美日韩| 26uuu成人网一区二区三区| 3d动漫精品啪啪一区二区竹菊| 色老汉av一区二区三区| 97se亚洲国产综合自在线 | 日本韩国精品一区二区在线观看| 高清不卡在线观看| 国产精品资源在线| 狠狠色丁香婷婷综合| 奇米四色…亚洲| 视频一区二区不卡| 日本免费新一区视频| 亚洲一卡二卡三卡四卡| 一区二区三区欧美| 亚洲麻豆国产自偷在线| 亚洲视频一区二区在线观看| 中文字幕久久午夜不卡| 国产精品电影院| 亚洲欧美另类久久久精品2019| 中文字幕在线观看一区二区| 国产精品拍天天在线| 1000精品久久久久久久久| 亚洲三级小视频| 亚洲国产精品久久久久婷婷884| 亚洲成av人片一区二区梦乃| 午夜精品国产更新| 久久精品国产亚洲aⅴ | 日韩—二三区免费观看av| 午夜精品久久久久久不卡8050| 日韩影院精彩在线| 久久精品国产秦先生| 国产乱妇无码大片在线观看| 福利视频网站一区二区三区| 成人激情动漫在线观看| 一本一本大道香蕉久在线精品| 欧洲中文字幕精品| 91精品麻豆日日躁夜夜躁| 久久亚洲二区三区| 中文字幕在线不卡一区二区三区| 一区二区不卡在线视频 午夜欧美不卡在| 亚洲美女视频在线| 喷水一区二区三区| 国产福利视频一区二区三区| 99久久精品一区| 91麻豆精品国产综合久久久久久 | 成人午夜在线免费| 欧美亚洲尤物久久| 日韩美一区二区三区| 国产精品欧美综合在线| 亚洲午夜激情av| 国产精品自拍在线| 欧美日韩亚洲综合在线| 久久嫩草精品久久久久| 一区二区三区在线视频观看| 麻豆一区二区99久久久久| 91在线免费播放| 日韩欧美区一区二| 亚洲精品videosex极品| 美女网站一区二区| 色94色欧美sute亚洲线路一久 | 麻豆成人久久精品二区三区红 | 中文字幕亚洲在| 日本系列欧美系列| 99热精品国产| 精品嫩草影院久久| 亚洲一区二区三区四区不卡| 国产91在线|亚洲| 在线播放视频一区| 亚洲欧美一区二区三区极速播放| 麻豆成人免费电影| 欧美剧情片在线观看| 亚洲卡通动漫在线| 国产精品一区二区久激情瑜伽| 欧美久久久久免费| 亚洲色图另类专区| 波多野结衣中文字幕一区| 欧美精品一区二区在线观看| 香蕉久久一区二区不卡无毒影院| 风间由美一区二区av101| 日韩一区二区免费电影| 亚洲午夜私人影院| 91视视频在线观看入口直接观看www | 欧美日韩电影在线| 亚洲精品乱码久久久久久日本蜜臀| 狠狠色丁香久久婷婷综合_中| 欧美日韩日日骚| 一区二区三区四区中文字幕| av电影天堂一区二区在线| 久久尤物电影视频在线观看| 蜜臀av性久久久久av蜜臀妖精| 欧美日韩一区二区在线观看| 日韩一区中文字幕| 福利视频网站一区二区三区| 精品成人免费观看| 蜜桃久久久久久久| 日韩一区二区三区在线观看| 日日夜夜免费精品| 欧美精品日日鲁夜夜添| 亚洲一二三四区| 欧美日韩国产首页在线观看| 亚洲成人免费影院| 这里是久久伊人| 秋霞午夜鲁丝一区二区老狼| 欧美一区二区三区四区久久 |