- 博客(36)
- 收藏
- 关注
原创 uboot nand 2gb fix
drivers/nand中的nand_init对于s3c6410来说#define CFG_NAND_BASE (0x70200010)之后是nand_init_chipnand->IO_ADDR_R = nand->IO_ADDR_W = (void __iomem *base_addr;取出地址,再下一步,board_nand_initK9G8G08(1块=128页=256K),在1G的MLC NAND上启动正常Device 0: NAND 2GiB 3,3V 8-bit, sec
2010-02-27 17:04:00 243
原创 uboot nand 2gb fix
drivers/nand中的nand_init对于s3c6410来说#define CFG_NAND_BASE (0x70200010)之后是nand_init_chipnand->IO_ADDR_R = nand->IO_ADDR_W = (void __iomem *base_addr;取出地址,再下一步,board_nand_initK9G8G08(1块=128页=256K),在1G的MLC NAND上启动正常Device 0: NAND 2GiB 3,3V 8-bit, sec
2010-02-27 17:04:00 315
原创 uboot中的TEXT_BASE
From http://student.csdn.net/space.php?uid=115191&do=blog&id=11079;都知道U-BOOT分为两个阶段,第一阶段是(~/cpu/arm920t/start.S中)在FLASH上运行(一般情况下),完成对硬件的初始化,包括看门狗,中断缓存等,并且负责把代码搬移到SDRAM中(在搬移的时候检查自身代码是否在SDRAM中),然后完成C程序运行所需要环境的建立,包括堆栈的初始化等,最后执行一句跳转指令: ldr pc, _start_arm
2010-02-27 13:05:00 1154
原创 uboot中的TEXT_BASE
From http://student.csdn.net/space.php?uid=115191&do=blog&id=11079;都知道U-BOOT分为两个阶段,第一阶段是(~/cpu/arm920t/start.S中)在FLASH上运行(一般情况下),完成对硬件的初始化,包括看门狗,中断缓存等,并且负责把代码搬移到SDRAM中(在搬移的时候检查自身代码是否在SDRAM中),然后完成C程序运行所需要环境的建立,包括堆栈的初始化等,最后执行一句跳转指令: ldr pc, _start_arm
2010-02-27 13:05:00 1049
原创 电源部分驱动(DS2786 + MAX8677C)
尚未完成DS2786中INITIAL_CAPACITY_SCALING_FACTOR的设置:初试化值是0x80
2010-02-26 21:44:00 434
原创 电源部分驱动(DS2786 + MAX8677C)
尚未完成DS2786中INITIAL_CAPACITY_SCALING_FACTOR的设置:初试化值是0x80
2010-02-26 21:44:00 481
原创 三星平台中打印寄存器
例子:#include #include #include static void gpio_status_report(void){ unsigned int value1, value2; value1 = readl(S3C64XX_GPKCON1); printk("S3C64XX_GPKCON1 ---->value 0x%x", value1); value2 = readl(S3C64XX_GPLCON); printk("S3C64XX_GPL
2010-02-26 20:07:00 341
原创 三星gpio的相关知识
三星gpio的input和output属于不同的function,一般用这两个来控制: s3c_gpio_setpull(S3C64XX_GPN(0), S3C_GPIO_PULL_UP); s3c_gpio_cfgpin(S3C64XX_GPN(0), S3C_GPIO_SFN(0));分析和先是用这两个来初始化,再用gpio_direction_output来设置高低。S3C好像不能用gpio_set_value。但据别人说可以,到底是否可以待以后观察。
2010-02-26 20:06:00 428
原创 三星的中断及GPIO口中断的申请
s3c_gpio_cfgpin(HdPhone_GpioPin, S3C_GPIO_SFN(2)); //配置GPIO11为外中断 s3c_gpio_setpull(HdPhone_GpioPin, S3C_GPIO_PULL_NONE); //不上拉也不下拉,硬件默认拉高 set_irq_type(HdPhone_EintPin, IRQ_TYPE_EDGE_BOTH); //插入跟拔出耳机都会触发中断 if(readl(S3C64XX_GPNDA
2010-02-26 20:05:00 402
原创 USB部分电源(主要是OTG部分)
OTG部分 VBUS出来,到充电保护电路,生成V_USB_VBUS V_USB_VBUS到MAX8677,给电池充电 另外,VBUS的供电切换电路: 平时VBUS是由POWER供给,当OTG插入的时候,6410拉高GPIO OTGDRV_VBUS,POWER路的VBUS被切断。
2010-02-26 17:56:00 394
原创 USB部分电源(主要是OTG部分)
OTG部分 VBUS出来,到充电保护电路,生成V_USB_VBUS V_USB_VBUS到MAX8677,给电池充电 另外,VBUS的供电切换电路: 平时VBUS是由POWER供给,当OTG插入的时候,6410拉高GPIO OTGDRV_VBUS,POWER路的VBUS被切断。
2010-02-26 17:56:00 519
原创 施密特触发器
from: http://hi.baidu.com/hieda/blog/item/c996d9cc5d1a8c1400e92877.html施密特触发器(Schmitt Trigger),简单的说就是具有滞后特性的数字传输门。(一)施密特触发器结构举例(二)施密特触发器具体分析(三)施密特触发器电路用途(四)施密特触发器相关部分总结(五)附:用555定时器构成施密特触发器 用555定时器构成多谐振荡器Sometimes an input signal to a di
2010-02-26 12:56:00 1255
原创 LCD LDO芯片
MP1530如图, VGH, VGL分别是15V和-10V,负责给LCD供电。VMAIN是step-up converter output,好像没有用到VGL的-10V又通过如下电路:生成VCOM电平,供给LCD。LCD的电路及工作员里不了解。MAX1779
2010-02-26 10:20:00 645
原创 GPIO申请与配置
if (id == 0) {// pwm_dbg(pwm, "[%s]: id == 0 ", __func__); //zhangq add if(gpio_is_valid(S3C64XX_GPF(14))) { ret = gpio_request(S3C64XX_GPF(14), "GPF"); if (ret) { printk(KERN_ERR "failed to request GPF for PWM-OUT 0"); } s3c_gpio_cfgpin(S
2010-02-25 15:40:00 508
原创 kernel里面的打印
#ifdef DEBUG_SENSORS#define prtkLsensorDbg(fmt, args...) printk("[%s]: "fmt"",__FUNCTION__, ##args)#else#define prtkLsensorDbg(...) #endif
2010-02-25 15:31:00 322
原创 s3c6410 clock分析
其中pll 包含两种: MPLL 主要应用于各种设备时钟的提供,将重点讨论 UPLL 应用于USB时钟频率应用,为48M 其中MPLL的设置主要依靠使用各种锁相环和分频器来改变输入原始的频率,经过锁相环之后可以提升频率,关于频率的选择主要依靠改变CPU寄存器实现,MPLLCON通过改变其中的参数设置即可 Mpll = (m * Fin) / (p * 2s) m = (MDIV + 8), p = (PDIV + 2), s = SDIV MPLL就是要得到的频率,我建议用参考手册给定的频率设置即可,标准之
2010-02-25 15:21:00 402
原创 backlight驱动
devs.c 或者 dev-device_type.c里面是放device的地方,在三星平台上。想在板子上面写个背光驱动,但是估计自己写的又是IOCTL之类,接口肯定不标准,先看看kernel里面有没有标准的接口。先在头文件里面看了相关的结构体:struct backlight_ops { /* Notify the backlight driver some property has changed */ int (*update_status)(struct backlight_device *); /
2010-02-25 10:56:00 655
原创 mid电源部分通路及开关机流程
POWER++++++ main power: 通过LDO将POWER装换成VDD_IO++++++ 另外一边通过LDO生成VDD_5V,给USB,喇叭外放供电++++++ 另外LCD的VDD_5V和VDD_15V都是由POWER直接供给的VDD_IOVDD_IO通过一系列的LDO,生成VDD_ARM, VDD_INT, VDD_MDDR, VDD_ALIVE, VDD_OTG, VDD_OTGI3P3VSUS由POWER_SUS通过LDO产生POWER_SUS是从8677c出来的,一般情况下保持常有的状态
2010-02-24 10:36:00 391
原创 困惑
疑问: i2c_register_board_info(0, i2c_devs0, ARRAY_SIZE(i2c_devs0)); i2c_register_board_info(1, i2c_devs1, ARRAY_SIZE(i2c_devs1));将设备从i2c_dev0移到i2c_devs1就可以成功probe ds2786了,这是为什么?i2c_register_board_info只是把设备加入到一个list里面去,而且只是0、1只是busnum而已。usb在
2010-02-23 22:18:00 378
原创 proc fs根目录下建子目录示例代码
static struct proc_dir_entry *chgDir; typedef struct { unsigned int channel; char *name; unsigned short low_ino;} chg_proc_entry_t;#define CHG_DEBUGE 0xffff#define CHG_ENABLE 0xfffe#define
2010-02-23 22:15:00 384
原创 ds2786 + wm9714 检测电量
没有搞懂,搞得好像ds2786是辅助wm9714检测电量的。 wm9714的SPK的电源是VBAT供给的,好像wm9714有个adc可以读出SPK引脚的电压值。
2010-02-23 22:12:00 472
原创 电源管理驱动
主要是注册一个power_supply_class的设备,这个设备有一些psp(property),具体这个类的设备是怎么与上层互动的没有仔细研究。
2010-02-23 22:06:00 366
原创 三星的中断及GPIO口中断的申请
s3c_gpio_cfgpin(HdPhone_GpioPin, S3C_GPIO_SFN(2)); //配置GPIO11为外中断 s3c_gpio_setpull(HdPhone_GpioPin, S3C_GPIO_PULL_NONE); //不上拉也不下拉,硬件默认拉高 set_irq_type(HdPhone_EintPin, IRQ_TYPE
2010-02-23 21:58:00 892
原创 三星gpio的相关知识
三星gpio的input和output属于不同的function,一般用这两个来控制: s3c_gpio_setpull(S3C64XX_GPN(0), S3C_GPIO_PULL_UP); s3c_gpio_cfgpin(S3C64XX_GPN(0), S3C_GPIO_SFN(0));分析和先是用这两个来初始化,再用gpio_direction_output来设置高
2010-02-23 21:56:00 564
原创 三星平台中打印寄存器
例子:#include #include #include static void gpio_status_report(void){ unsigned int value1, value2; value1 = readl(S3C64XX_GPKCON1); printk("S3C64XX_GPKCON1 ---->value
2010-02-23 21:34:00 480
原创 如何在根文件系统中使用modprobe
这几天在做4020的快速启动,本来想将网络模块化这样,能够将内核大概缩小0.5M(这个还是zImage),这样无论在uboot阶段搬运,还是在zImage段的解压缩,还是在最后的启动都可以大大减少linux的启动时间,然而这中间有个很重要的问题是怎样在nfs中实现modprobe的命令,我在原来的busybox1.10.4中敲入modprobe命令出现如下错误:/quick_s
2010-02-23 19:48:00 2641 1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人