日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 人文社科 > 生活经验 >内容正文

生活经验

学习《Linux设备模型浅析之设备篇》笔记(深挖一)

發(fā)布時(shí)間:2023/11/27 生活经验 20 豆豆
生活随笔 收集整理的這篇文章主要介紹了 学习《Linux设备模型浅析之设备篇》笔记(深挖一) 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

這篇文章既然說了是淺析,那就是跳過了一些東西,我們把這些跳過的東西給它盡可能的補(bǔ)回來


今天登陸 lxr.free-electrons.com 發(fā)現(xiàn)內(nèi)核版本已經(jīng)升級到3.15了,那以后都使用3.15的源碼


文件/arch/arm/mach-s3c64xx/mach-smdk6410.c

static void __init?smdk6410_machine_init(void)
{
? ? ? ? u32 cs1;

? ? ? ??s3c_i2c0_set_platdata(NULL);
? ? ? ??s3c_i2c1_set_platdata(NULL);
? ? ? ??s3c_fb_set_platdata(&smdk6410_lcd_pdata);
? ? ? ??s3c_hsotg_set_platdata(&smdk6410_hsotg_pdata);

? ? ? ??samsung_keypad_set_platdata(&smdk6410_keypad_data);

? ? ? ??s3c24xx_ts_set_platdata(NULL);

? ? ? ??/* configure nCS1 width to 16 bits */

? ? ? ??cs1 = __raw_readl(S3C64XX_SROM_BW) &?~(S3C64XX_SROM_BW__CS_MASK << S3C64XX_SROM_BW__NCS1__SHIFT);
? ? ? ??cs1 |= ((1 << S3C64XX_SROM_BW__DATAWIDTH__SHIFT) |(1 << S3C64XX_SROM_BW__WAITENABLE__SHIFT) |(1 << S3C64XX_SROM_BW__BYTEENABLE__SHIFT)) <<?S3C64XX_SROM_BW__NCS1__SHIFT;
? ? ? ??__raw_writel(cs1, S3C64XX_SROM_BW);

? ? ? ??/* set timing for nCS1 suitable for ethernet chip */

? ? ? ??__raw_writel((0 << S3C64XX_SROM_BCX__PMC__SHIFT) |?(6 << S3C64XX_SROM_BCX__TACP__SHIFT) |? ?(4 << S3C64XX_SROM_BCX__TCAH__SHIFT) |? (1 << S3C64XX_SROM_BCX__TCOH__SHIFT) |? (0xe << S3C64XX_SROM_BCX__TACC__SHIFT) |? ? ?(4 << S3C64XX_SROM_BCX__TCOS__SHIFT) |?(0 << S3C64XX_SROM_BCX__TACS__SHIFT), S3C64XX_SROM_BC1);

? ? ? ??gpio_request(S3C64XX_GPN(5), "LCD power");
? ? ? ??gpio_request(S3C64XX_GPF(13), "LCD power");

? ? ? ??i2c_register_board_info(0, i2c_devs0, ARRAY_SIZE(i2c_devs0));
? ? ? ??i2c_register_board_info(1, i2c_devs1, ARRAY_SIZE(i2c_devs1));

? ? ? ??s3c_ide_set_platdata(&smdk6410_ide_pdata);

? ? ? ??platform_add_devices
(smdk6410_devices, ARRAY_SIZE(smdk6410_devices));

? ? ? ??samsung_bl_set(&smdk6410_bl_gpio_info, &smdk6410_bl_data);
}


MACHINE_START(SMDK6410, "SMDK6410")
? ? ? ??/* Maintainer: Ben Dooks <ben-linux@fluff.org> */
? ? ? ??.atag_offset=0x100,

? ? ? ??.init_irq=s3c6410_init_irq,
? ? ? ??.map_io=smdk6410_map_io,
? ? ? ??.init_machine=
smdk6410_machine_init,
? ? ? ??.init_late=s3c64xx_init_late,
? ? ? ??.init_time=samsung_timer_init,
? ? ? ??.restart=s3c64xx_restart,
MACHINE_END


#define MACHINE_START(_type,_name) \
static const struct machine_desc __mach_desc_##_type \
?__used \
?__attribute__((__section__(".arch.info.init"))) = { \
.nr = MACH_TYPE_##_type, \
.name = _name,

#define MACHINE_END \
};

總結(jié)

以上是生活随笔為你收集整理的学习《Linux设备模型浅析之设备篇》笔记(深挖一)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。