iTOP-4412¿ª·¢°åÔõôÐ޸ĵçÔ´¹ÜÀíоƬµÄÊä³öµçѹ£¿
2014-06-05

iTOP-4412ºËÐİåʹÓõĵçÔ´¹ÜÀíоƬÊÇÈýÐÇרÃÅÕë¶Ô4412Ñз¢µÄS5M8767£¬S5M8767Ìṩ9·BUCKºÍ28·LDOÊä³ö£¬Ã¿Â·µçѹµÄ´óС¿ÉÒÔͨ¹ýÈí¼þ½øÐÐÉèÖá£
S5M8767µÄÇý¶¯Î»ÓÚÄں˵Ädrivers/regulator/s5m8767.cÎļþÖÐ,Exynos 4412´¦ÀíÆ÷ÊÇͨ¹ýI2C×ÜÏßÀ´¿ØÖÆS5M8767µÄ¡£S5M8767ÔÚϵͳÆô¶¯µÄ¹ý³ÌÖлá×¢²áµ½ÄÚºËÀïÃæµÄregulatorÄ£¿éÀïÃæ¡£
regulatorÄ£¿éÊÇÄÚºËÓÃÓÚ¿ØÖÆÏµÍ³ÖÐijЩÉ豸µÄµçѹ/µçÁ÷¹©Ó¦£¬ÔÚǶÈëʽϵͳ£¨ÓÈÆäÊÇÊÖ³ÖÉ豸£©ÖУ¬¿ØÖƺĵçÁ¿ºÜÖØÒª£¬ËüÖ±½ÓÓ°Ïìµ½µç³ØµÄÐøº½Ê±¼ä¡£ËùÒÔ£¬Èç¹ûϵͳÖÐijһ¸öÄ£¿éÔÝʱ²»Ê¹Ó㬾ͿÉÒÔͨ¹ýregulator¹Ø±ÕÆäµçÔ´£»»òÕß½µµÍÌṩ¸ø¸ÃÄ£¿éµÄµçѹ¡¢µçÁ÷´óСÀ´´ïµ½½µµÍ¹¦ºÄµÄÄ¿µÄ¡£ S5M8767Çý¶¯µÄÖ÷Òª×÷ÓþÍÊǵ÷ÓÃregulator_registerº¯ÊýÏòÄÚºË×¢²áregulator_devÉ豸£¬Ã¿¸öregulator_dev´ú±íÒ»¸öregulatorÉ豸£¬Äں˿ÉÒÔ·Ö±ð¿ØÖÆÃ¿¸öregulator¡£
ΪÁËʵÏÖS5m8767Çý¶¯»¹ÐèÒªÔÚÆ½Ì¨Ïà¹ØµÄ´úÂëÀﶨÒåregulator_init_data½á¹¹£¬regulator_init_dataÓÃÀ´½¨Á¢¸¸×Óregulator¡¢ÊܵçÄ£¿éÖ®¼äµÄÊ÷×´½á¹¹£¬ÒÔ¼°Ò»Ð©regulatorµÄ»ù±¾ÐÅÏ¢£¬±ÈÈçµçѹ´óСµÈ£¬ÏÂÃæÎÒÃÇÀ´¿´ÏÂregulator_init_data½á¹¹µÄ¶¨Ò壬´úÂëÔÚarch/arm/mach-exynos/mach-itop4412.cÀïÃæ£¬ÔÚÕâ¸öÎļþÀïʹÓúêREGULATOR_INIT¶¨ÒåÁË28¸öLDOµÄregulator_init_data½á¹¹£¬´úÂëÈçÏ£º #define REGULATOR_INIT(_ldo, _name, _min_uV, _max_uV, _always_on, _ops_mask,\
_disabled) \
static struct regulator_init_data s5m8767_##_ldo##_init_data = { \
.constraints = { \
.name = _name, \
.min_uV = _min_uV, \
.max_uV = _max_uV, \
.boot_on = _always_on, \
.apply_uV = 1, \
.valid_ops_mask = _ops_mask, \
.state_mem = { \
.disabled = _disabled, \
.enabled = !(_disabled), \
} \
}, \
.num_consumer_supplies = ARRAY_SIZE(s5m8767_##_ldo##_supply), \
.consumer_supplies = &s5m8767_##_ldo##_supply[0], \
}
ÉÏÃæµÄºê¶¨ÒåÖУ¬µÚÈý¸öºÍµÚËĸö²ÎÊýÖ¸¶¨ÁËLDOµÄµçѹ×îСֵºÍ×î´óÖµ£¬µÚÎå¸ö²ÎÊýÉèÖÃLDOÔÚϵͳ¿ªÊ¼ÔËÐÐʱÊÇÊä³ö»¹Êǹرյģ¨1ÊÇÊä³ö£¬0Êǹرգ©¡£
µÚÁù¸ö²ÎÊýÊÇLDO¾ßÓÐÄÄЩ¹¦ÄÜ£¬ÀýÈç¿ÉÒÔÐ޸ĵçѹ£¬µçÁ÷£¬¸Ä±ä״̬µÈµÈ£¬Í¨¹ýλÑÚÂëµÄ·½Ê½ÉèÖã¬µÚÆß¸ö²ÎÊýÊÇÉèÖÃÔÚÐÝÃßµÄʱºòÊÇ·ñÓÉPWRENÒý½Å¿ØÖÆËüµÄ¿ª¹Ø£¨1ÊÇÓÉPWREN¿ØÖÆ£¬0ÊDz»ÊÜPWREN¿ØÖÆ£©£¬ÐÝÃßµÄʱºòPWRENΪµÍµçƽ£¬LDO»á¹Ø±Õ£¬ÏµÍ³»½ÐÑ£¬PWRENΪ¸ßµçƽ£¬LDO»áÊä³ö¡£
ÀýÈçLDO2µÄ¶¨Ò壬ÈçÏ£º
REGULATOR_INIT(ldo2, "VDDQ_M12", 1500000, 1500000, 1,
REGULATOR_CHANGE_STATUS, 1)
¸ù¾Ý¶¨Ò壬¿ÉÒÔÖªµÀLDO2Êä³öµÄµçѹÊÇ1.5v£¬ÏµÍ³Æô¶¯µÄʱºò»áĬÈÏÊä³ö£¬ÏµÍ³ÐÝÃßµÄʱºò»á¹Ø±Õ¡£ÆäËûµÄLDOµÄÉèÖÃÔ­ÀíÓëLDO2ÊÇÒ»ÑùµÄ¡£
ϵͳÖÐBUCKµÄ¶¨Ò壬ÀýÈçBUCK1£º
static struct regulator_init_data s5m8767_buck1_data = {
.constraints = {
.name = "vdd_mif range",
.min_uV = 900000,
.max_uV = 1100000,
.valid_ops_mask = REGULATOR_CHANGE_VOLTAGE |
REGULATOR_CHANGE_STATUS,
.state_mem = {
.disabled = 1,
},
},
.num_consumer_supplies = 1,
.consumer_supplies = &s5m8767_buck1_consumer,
};
¸ù¾ÝÉÏÃæµÄ¶¨Ò壬¿ÉÒÔÖªµÀBUCK1µÄµçѹ·¶Î§ÔÚ0.9vµ½1.1v£¬Ëû¾ßÓпÉÒÔÐ޸ĵçѹ£¬ÐÞ¸Ä״̬µÄ¹¦ÄÜ£¨±äÁ¿valid_ops_mask£©¡£¿ÉÒÔʹÓú¯Êýregulator_set_voltageÐÞ¸ÄBUCK1µÄµçѹ¡£ÆäËû¼¸¸öBUCKµÄ¶¨ÒåÔ­ÀíºÍBUCK1ÊÇÒ»ÑùµÄ
Èç¹ûÎÒÃÇÏëÒªÐÞ¸Ä8767µÄij¸öLDOµÄÊä³öµçѹ£¬¾Í¿ÉÒÔͨ¹ýÐ޸ĶÔÓ¦LDOµÄregulator_init_data½á¹¹ÌåÀïÃæµÄµçѹֵÀ´ÊµÏÖ£¬ÐÞ¸ÄBUCKµÄµçѹ¿ÉÒÔʹÓú¯Êýregulator_set_voltageÀ´ÊµÏÖ¡£
×¢Ò⣺ÒòΪS5M8767µÄÿ¸öBUCKºÍLDO¶¼Óи÷×Թ涨µÄÊä³ö×î´óÖµ£¬Òò´ËÔÚÐÞ¸ÄÊä³öµçѹµÄʱºò£¬Ò»¶¨Òª²ÎÕÕS5M8767µÄdatasheet£¬È·±£Ð޸ĵĵçѹÔÚdatasheet¹æ¶¨µÄ·¶Î§ÄÚ¡£
  • ÍúÍú×Éѯ
  • µãÕâÀï¸øÎÒ·¢ÏûÏ¢
  • µç»°×Éѯ

  • 01085270716
XML 地图