summaryrefslogtreecommitdiff
path: root/tools
diff options
context:
space:
mode:
authorzhiguo.ping <zhiguo.ping@mediatek.com>2016-08-19 11:36:14 +0800
committerDengwei Xu <dengwei.xu@mediatek.com>2018-01-03 16:18:33 +0800
commite2a41c7edc72ecbcda3172f7d2607d3e3a2770e6 (patch)
tree0b8ed9d2b4a9d5f52f9b553f01950c943fd3719c /tools
parent4a66f79b776261fcb5c32a01c85942e986b2de9b (diff)
downloadmediatek-e2a41c7edc72ecbcda3172f7d2607d3e3a2770e6.tar.gz
[ALPS02860760] dct: support whitney
[Detail] [Solution] Change-Id: Ifc6098666566575c44cbd47476ca9681e432b991 Signed-off-by: zhiguo.ping <zhiguo.ping@mediatek.com> CR-Id: ALPS02860760 Feature: Tools
Diffstat (limited to 'tools')
-rwxr-xr-xtools/dct/DrvGen.py23
-rw-r--r--tools/dct/config/PMIC_MT6350PMUMP.cmp79
-rw-r--r--tools/dct/config/PMIC_MT6355PMUMP.cmp38
-rw-r--r--tools/dct/config/YuSu.cmp88
-rwxr-xr-xtools/dct/data/EintData.py8
-rwxr-xr-xtools/dct/data/I2cData.py1
-rwxr-xr-xtools/dct/data/KpdData.py37
-rwxr-xr-xtools/dct/data/Md1EintData.py2
-rwxr-xr-xtools/dct/data/PmicData.py2
-rwxr-xr-xtools/dct/data/PowerData.py1
-rwxr-xr-xtools/dct/obj/ChipObj.py53
-rwxr-xr-xtools/dct/obj/ClkObj.py107
-rwxr-xr-xtools/dct/obj/EintObj.py26
-rwxr-xr-xtools/dct/obj/GpioObj.py24
-rwxr-xr-xtools/dct/obj/I2cObj.py26
-rwxr-xr-xtools/dct/obj/KpdObj.py102
-rwxr-xr-xtools/dct/obj/Md1EintObj.py42
-rwxr-xr-xtools/dct/obj/PmicObj.py6
-rwxr-xr-xtools/dct/obj/PowerObj.py3
-rwxr-xr-xtools/dct/utility/version.py4
20 files changed, 562 insertions, 110 deletions
diff --git a/tools/dct/DrvGen.py b/tools/dct/DrvGen.py
index 5c3dbd308081..33387f5224a8 100755
--- a/tools/dct/DrvGen.py
+++ b/tools/dct/DrvGen.py
@@ -4,6 +4,7 @@
import os, sys
import getopt
import traceback
+import subprocess
import xml.dom.minidom
sys.path.append('.')
@@ -13,6 +14,8 @@ from obj.ChipObj import ChipObj
from obj.ChipObj import Everest
from obj.ChipObj import Olympus
from obj.ChipObj import KiboPlus
+from obj.ChipObj import Rushmore
+from obj.ChipObj import Whitney
from utility.util import LogLevel
from utility.util import log
@@ -29,7 +32,7 @@ log_path : where to store the log files
paras : parameter for generate wanted file
'''
-def is_oldDws(path):
+def is_oldDws(path, gen_spec):
if not os.path.exists(path):
log(LogLevel.error, 'Can not find %s' %(path))
sys.exit(-1)
@@ -42,7 +45,8 @@ def is_oldDws(path):
log(LogLevel.warn, 'Please use old DCT UI to gen all files!')
return True
old_dct = os.path.join(sys.path[0], 'old_dct', 'DrvGen')
- if os.execl(old_dct, dws_path, gen_path, log_path, gen_spec[0]):
+ cmd = old_dct + ' ' + dws_path + ' ' + gen_path + ' ' + log_path + ' ' + gen_spec[0]
+ if 0 == subprocess.call(cmd, shell=True):
return True
else:
log(LogLevel.error, '%s format error!' %(dws_path))
@@ -108,10 +112,11 @@ if __name__ == '__main__':
log(LogLevel.error, 'Can not find "%s", log path not exist!' %(log_path))
sys.exit(-1)
- if is_oldDws(dws_path):
+ if is_oldDws(dws_path, gen_spec):
sys.exit(0)
chipId = ChipObj.get_chipId(dws_path)
+ log(LogLevel.info, 'chip id: %s' %(chipId))
chipObj = None
if cmp(chipId, 'MT6797') == 0:
chipObj = Everest(dws_path, gen_path)
@@ -119,6 +124,10 @@ if __name__ == '__main__':
chipObj = Olympus(dws_path, gen_path)
elif cmp(chipId, 'KIBOPLUS') == 0:
chipObj = KiboPlus(dws_path, gen_path)
+ elif cmp(chipId, 'MT6570') == 0:
+ chipObj = Rushmore(dws_path, gen_path)
+ elif cmp(chipId, 'MT6799') == 0:
+ chipObj = Whitney(dws_path, gen_path)
else:
chipObj = ChipObj(dws_path, gen_path)
@@ -132,11 +141,3 @@ if __name__ == '__main__':
sys.exit(0)
-
-
-
-
-
-
-
-
diff --git a/tools/dct/config/PMIC_MT6350PMUMP.cmp b/tools/dct/config/PMIC_MT6350PMUMP.cmp
new file mode 100644
index 000000000000..006921590511
--- /dev/null
+++ b/tools/dct/config/PMIC_MT6350PMUMP.cmp
@@ -0,0 +1,79 @@
+[PMIC_TABLE]
+CHIP = MT6350
+NUM_LDO = 18
+FUNCTION = pmic_set_register_value
+LDO_APPNAME_DEFAULT = MT65XX_POWER_NONE
+INCLUDE_HEADER = linux/types.h:mach/mt_typedefs.h:mach/upmu_common.h:mach/upmu_hw.h:mach/mt_pm_ldo.h
+
+
+[LDO_NAME1]
+LDO_NAME=VMC
+PARAMETER_NAME = PMIC_RG_VMC_EN
+
+[LDO_NAME2]
+LDO_NAME=VMCH
+PARAMETER_NAME = PMIC_RG_VMCH_EN
+
+[LDO_NAME3]
+LDO_NAME=VEMC_3V3
+PARAMETER_NAME = PMIC_RG_VEMC_3V3_EN
+
+[LDO_NAME4]
+LDO_NAME=VGP1
+PARAMETER_NAME = PMIC_RG_VGP1_EN
+
+[LDO_NAME5]
+LDO_NAME=VGP2
+PARAMETER_NAME = PMIC_RG_VGP2_EN
+
+[LDO_NAME6]
+LDO_NAME=VGP3
+PARAMETER_NAME = PMIC_RG_VGP3_EN
+
+[LDO_NAME7]
+LDO_NAME=VCN_1V8
+PARAMETER_NAME = PMIC_RG_VCN_1V8_EN
+
+[LDO_NAME8]
+LDO_NAME=VSIM1
+PARAMETER_NAME = PMIC_RG_VSIM1_EN
+
+[LDO_NAME9]
+LDO_NAME=VSIM2
+PARAMETER_NAME = PMIC_RG_VSIM2_EN
+
+[LDO_NAME10]
+LDO_NAME=VCAMAF
+PARAMETER_NAME = PMIC_RG_VCAM_AF_EN
+
+[LDO_NAME11]
+LDO_NAME=VIBR
+PARAMETER_NAME = PMIC_RG_VIBR_EN
+
+[LDO_NAME12]
+LDO_NAME=VM
+PARAMETER_NAME = PMIC_RG_VM_EN
+
+[LDO_NAME13]
+LDO_NAME=VRF18
+PARAMETER_NAME = PMIC_RG_VRF18_EN
+
+[LDO_NAME14]
+LDO_NAME=VCAMD
+PARAMETER_NAME = PMIC_RG_VCAMD_EN
+
+[LDO_NAME15]
+LDO_NAME=VCAMIO
+PARAMETER_NAME = PMIC_RG_VCAM_IO_EN
+
+[LDO_NAME16]
+LDO_NAME=VCAMA
+PARAMETER_NAME = PMIC_RG_VCAMA_EN
+
+[LDO_NAME17]
+LDO_NAME=VCN33_WIFI
+PARAMETER_NAME = PMIC_RG_VCN33_EN_WIFI
+
+[LDO_NAME18]
+LDO_NAME=VCN28
+PARAMETER_NAME = PMIC_RG_VCN28_EN
diff --git a/tools/dct/config/PMIC_MT6355PMUMP.cmp b/tools/dct/config/PMIC_MT6355PMUMP.cmp
new file mode 100644
index 000000000000..847578400fc1
--- /dev/null
+++ b/tools/dct/config/PMIC_MT6355PMUMP.cmp
@@ -0,0 +1,38 @@
+[PMIC_TABLE]
+CHIP = MT6355
+NUM_LDO = 8
+FUNCTION = pmic_set_register_value
+LDO_APPNAME_DEFAULT = MT65XX_POWER_NONE
+INCLUDE_HEADER = linux/types.h:mach/mt_typedefs.h:mach/upmu_common.h:mach/upmu_hw.h:mach/mt_pm_ldo.h
+
+[LDO_NAME1]
+LDO_NAME = VCAMA1
+PARAMETER_NAME = PMIC_RG_LDO_VCAMA1_EN
+
+[LDO_NAME2]
+LDO_NAME = VCAMA2
+PARAMETER_NAME = PMIC_RG_LDO_VCAMA2_EN
+
+[LDO_NAME3]
+LDO_NAME = VSIM1
+PARAMETER_NAME = PMIC_RG_LDO_VSIM1_EN
+
+[LDO_NAME4]
+LDO_NAME = VSIM2
+PARAMETER_NAME = PMIC_RG_LDO_VSIM2_EN
+
+[LDO_NAME5]
+LDO_NAME = VCAMD1
+PARAMETER_NAME = PMIC_RG_LDO_VCAMD1_EN
+
+[LDO_NAME6]
+LDO_NAME = VCAMD2
+PARAMETER_NAME = PMIC_RG_LDO_VCAMD2_EN
+
+[LDO_NAME7]
+LDO_NAME = VCAMIO
+PARAMETER_NAME = PMIC_RG_LDO_VCAMIO_EN
+
+[LDO_NAME8]
+LDO_NAME = VLDO28
+PARAMETER_NAME = PMIC_RG_LDO_VLDO28_EN_AF
diff --git a/tools/dct/config/YuSu.cmp b/tools/dct/config/YuSu.cmp
index f61854674d09..0a80a65aaf5c 100644
--- a/tools/dct/config/YuSu.cmp
+++ b/tools/dct/config/YuSu.cmp
@@ -94,7 +94,14 @@ MT6351_PMIC
MT6353_PMIC
MT6335_PMIC
MT6337_PMIC
+MT6350_PMIC
RT1711H_PD
+VPROC_BUCK
+RT1711_PD_CTRL
+RT9750_CHR_1
+RT9750_CHR_2
+MT6355_PMIC
+RT5081_PMU_EINT
[GPIO_variables]
GPIO_AST_RST_PIN
@@ -780,6 +787,30 @@ GPIO_RT9465_EINT_PIN
GPIO_MT6336_EINT_PIN
GPIO_EINT_RAMDUMP_PIN
GPIO_SIM3_HOT_PLUG
+GPIO_VPROC_BUCK_EINT_PIN
+GPIO_MT6632_TSF_PIN
+GPIO_RT1711_EINT_PIN
+GPIO_RT9750_EINT_1
+GPIO_RT9750_EINT_2
+GPIO_CAMERA_CMMCLK1_PIN
+GPIO_MSDC3_DSL
+GPIO_MT6380_PMU_EN
+GPIO_WLC_PAV_PIN
+GPIO_RT9750_EN_PIN
+GPIO_MT6380_RSTB_PIN
+GPIO_MT6632_STRAP_PIN
+GPIO_SPI1_CS_PIN
+GPIO_SPI1_MOSI_PIN
+GPIO_SPI1_MISO_PIN
+GPIO_SPI1_CK_PIN
+GPIO_SPI3_CS_PIN
+GPIO_SPI3_MOSI_PIN
+GPIO_SPI3_MISO_PIN
+GPIO_SPI3_CK_PIN
+GPIO_SPI9_CS_PIN
+GPIO_SPI9_MOSI_PIN
+GPIO_SPI9_MISO_PIN
+GPIO_SPI9_CK_PIN
[GPIO_MODE_EINT_WHITE_LIST]
DSI_TE
@@ -836,15 +867,17 @@ GPIO_RF_CONTROL1
GPIO_SIM3_HOT_PLUG
[SLAVE_DEVICE]
+ALSPS
+BAROMETER
+BUCK_BOOST
CAMERA_MAIN
CAMERA_MAIN_AF
-CAMERA_MAIN_TWO
CAMERA_MAIN_HW
+CAMERA_MAIN_TWO
CAMERA_SUB
CAMERA_SUB_AF
-CAMERA_MAIN_TWO_AF
-VPROC_BUCK
-VGPU_BUCK
+CAP_TOUCH
+CHARGEPUMP
EXT_BOOST
EXT_BUCK
EXT_BUCK2
@@ -852,34 +885,40 @@ EXT_BUCK3
EXT_BUCK_LP4
EXT_BUCK_LP4X
EXT_BUCK_SRAM
+EXT_DISP
+EXT_SPEAKER_AMP
EXT_VBAT_BOOST
-CHARGEPUMP
-SW_CHARGER
-SLAVE_CHARGER
-SWITHING_CHARGER
-SWITCHING_CHARGER_TI
-SWITCHING_CHARGER_RT
-CAP_TOUCH
-MSENSOR
-MHL
GSENSOR
-PRESSURE
-ALSPS
GYRO
-TEMPER
+HUMIDITY
+I2C_LCD_BIAS
+MHL
+MSENSOR
+NFC
+PRESSURE
+SLAVE_CHARGER
+SPEAKER_AMP
STROBE_MAIN
STROBE_MAIN_2
STROBE_SUB
STROBE_SUB_2
-NFC
-EXT_SPEAKER_AMP
-EXT_DISP
-I2C_LCD_BIAS
-BUCK_BOOST
-SPEAKER_AMP
+SW_CHARGER
+SWITHING_CHARGER
+TEMPER
USB_TYPE_C
-BAROMETER
-HUMIDITY
+VGPU_BUCK
+VPROC_BUCK
+DIRECT_CHARGER_1
+DIRECT_CHARGER_2
+SMART_PA
+DP_SWITCH
+DP_TRANS
+DP_SWITCH_TRANS
+MHL_TRANS
+MHL_SWITCH
+BYPASS_BOOST
+TYPEC_PD
+RT5081_PMU
[Key_definition]
HOME = 102
@@ -985,4 +1024,3 @@ BAROMETER_VDD
BAROMETER_VIO
MEMORY_CARD_VDD
-
diff --git a/tools/dct/data/EintData.py b/tools/dct/data/EintData.py
index 7172828bacb4..79f1c53ef7e5 100755
--- a/tools/dct/data/EintData.py
+++ b/tools/dct/data/EintData.py
@@ -52,6 +52,10 @@ class EintData:
EintData._map_table = map
@staticmethod
+ def get_mapTable():
+ return EintData._map_table
+
+ @staticmethod
def get_modeName(gpio_num, mode_idx):
key = 'gpio%s' %(gpio_num)
@@ -73,8 +77,8 @@ class EintData:
EintData._mode_map = map
@staticmethod
- def get_mapTable():
- return EintData._map_table
+ def get_modeMap():
+ return EintData._mode_map
@staticmethod
def get_gpioNum(num):
diff --git a/tools/dct/data/I2cData.py b/tools/dct/data/I2cData.py
index e7027316931f..b4858ea06f3c 100755
--- a/tools/dct/data/I2cData.py
+++ b/tools/dct/data/I2cData.py
@@ -48,4 +48,3 @@ class I2cData:
-
diff --git a/tools/dct/data/KpdData.py b/tools/dct/data/KpdData.py
index 5ea7a7cf217d..445b22773529 100755
--- a/tools/dct/data/KpdData.py
+++ b/tools/dct/data/KpdData.py
@@ -4,6 +4,8 @@
class KpdData:
_row = -1
_col = -1
+ _row_ext = -1
+ _col_ext = -1
_gpioNum = -1
_util = ''
_homeKey = ''
@@ -11,6 +13,7 @@ class KpdData:
_pressTime = -1
_dinHigh = False
_matrix = []
+ _matrix_ext = []
_useEint = False
_downloadKeys = []
_keyValueMap = {}
@@ -37,10 +40,34 @@ class KpdData:
return KpdData._col
@staticmethod
+ def set_row_ext(row):
+ KpdData._row_ext = row
+
+ @staticmethod
+ def get_row_ext():
+ return KpdData._row_ext
+
+ @staticmethod
+ def set_col_ext(col):
+ KpdData._col_ext = col
+
+ @staticmethod
+ def get_col_ext():
+ return KpdData._col_ext
+
+ @staticmethod
def set_matrix(matrix):
KpdData._matrix = matrix
@staticmethod
+ def set_matrix_ext(matrix):
+ KpdData._matrix_ext = matrix
+
+ @staticmethod
+ def get_matrix_ext():
+ return KpdData._matrix_ext
+
+ @staticmethod
def get_matrix():
return KpdData._matrix
@@ -108,4 +135,14 @@ class KpdData:
def set_keyType(keyType):
KpdData._keyType = keyType
+ @staticmethod
+ def get_keyType():
+ return KpdData._keyType
+
+ @staticmethod
+ def get_keyVal(key):
+ if key in KpdData._keyValueMap.keys():
+ return KpdData._keyValueMap[key]
+
+ return 0
diff --git a/tools/dct/data/Md1EintData.py b/tools/dct/data/Md1EintData.py
index 8c695ff8fba9..e6819451d9ee 100755
--- a/tools/dct/data/Md1EintData.py
+++ b/tools/dct/data/Md1EintData.py
@@ -47,4 +47,4 @@ class Md1EintData(EintData):
EintData.set_polarity(self, polarity)
def get_polarity(self):
- return EintData.get_polarity(self)
+ return EintData.get_polarity(self) \ No newline at end of file
diff --git a/tools/dct/data/PmicData.py b/tools/dct/data/PmicData.py
index 6bfd0574eb70..3797493b2d92 100755
--- a/tools/dct/data/PmicData.py
+++ b/tools/dct/data/PmicData.py
@@ -24,4 +24,4 @@ class PmicData:
self.__nameList = name_list
def get_nameList(self):
- return self.__nameList
+ return self.__nameList \ No newline at end of file
diff --git a/tools/dct/data/PowerData.py b/tools/dct/data/PowerData.py
index 9ae0842efe67..b8ac9c9edc3a 100755
--- a/tools/dct/data/PowerData.py
+++ b/tools/dct/data/PowerData.py
@@ -13,4 +13,3 @@ class PowerData:
-
diff --git a/tools/dct/obj/ChipObj.py b/tools/dct/obj/ChipObj.py
index 8196c6424a7b..828d02cb00ee 100755
--- a/tools/dct/obj/ChipObj.py
+++ b/tools/dct/obj/ChipObj.py
@@ -5,11 +5,13 @@ import os, sys
import xml.dom.minidom
from GpioObj import GpioObj
+from GpioObj import GpioObj_whitney
from EintObj import EintObj
from AdcObj import AdcObj
from ClkObj import ClkObj
from ClkObj import ClkObj_Everest
from ClkObj import ClkObj_Olympus
+from ClkObj import ClkObj_Rushmore
from I2cObj import I2cObj
from PmicObj import PmicObj
from Md1EintObj import Md1EintObj
@@ -21,10 +23,10 @@ from utility.util import log
from utility.util import LogLevel
para_map = {'adc':['adc_h', 'adc_dtsi'],\
- 'clk':['clk_h', 'clk_dtsi'],\
+ 'clk':['clk_buf_h', 'clk_buf_dtsi'],\
'eint':['eint_h', 'eint_dtsi'],\
'gpio':['gpio_usage_h', 'gpio_boot_h', 'gpio_dtsi', 'scp_gpio_usage_h', 'pinfunc_h', \
- 'pinctrl_h', 'gpio_usage_mapping_dtsi', 'gpio_usage_mapping_dtsi'],\
+ 'pinctrl_h', 'gpio_usage_mapping_dtsi'],\
'i2c':['i2c_h', 'i2c_dtsi'],\
'md1_eint':['md1_eint_h', 'md1_eint_dtsi'],\
'kpd':['kpd_h', 'kpd_dtsi'],\
@@ -58,6 +60,9 @@ class ChipObj:
self.__objs[tag] = obj
+ def refresh_eintGpioMap(self):
+ self.__objs['eint'].set_gpioObj(self.__objs['gpio'])
+
def append_obj(self, tag, obj):
if tag in self.__objs.keys():
return False
@@ -131,11 +136,15 @@ class ChipObj:
def gen_spec(self, paras):
- if cmp(paras[0], 'cust_dtsi') == 0:
- self.gen_custDtsi()
- return True
+ # if cmp(paras[0], 'cust_dtsi') == 0:
+ # self.gen_custDtsi()
+ # return True
for para in paras:
+ if cmp(para, 'cust_dtsi') == 0:
+ self.gen_custDtsi()
+ continue
+
idx = 0
name = ''
if para.strip() != '':
@@ -151,8 +160,8 @@ class ChipObj:
obj.gen_spec(para)
log(LogLevel.info, 'Generate %s file successfully!' %(para))
else:
- log(LogLevel.error, '%s can not be recognized!' %(para))
- sys.exit(-1)
+ log(LogLevel.warn, '%s can not be recognized!' %(para))
+ # sys.exit(-1)
return True
@@ -210,6 +219,7 @@ class Olympus(ChipObj):
def generate(self, paras):
return ChipObj.generate(self, paras)
+
class KiboPlus(ChipObj):
def __init__(self, dws_path, gen_path):
ChipObj.__init__(self, dws_path, gen_path)
@@ -226,5 +236,34 @@ class KiboPlus(ChipObj):
return ChipObj.generate(self, paras)
+class Rushmore(ChipObj):
+ def __init__(self, dws_path, gen_path):
+ ChipObj.__init__(self, dws_path, gen_path)
+
+ def init_objs(self):
+ ChipObj.init_objs(self)
+ ChipObj.replace_obj(self, 'clk', ClkObj_Rushmore())
+
+ def parse(self):
+ return ChipObj.parse(self)
+
+ def generate(self, paras):
+ return ChipObj.generate(self, paras)
+
+class Whitney(ChipObj):
+ def __init__(self, dws_path, gen_path):
+ ChipObj.__init__(self, dws_path, gen_path)
+
+ def init_objs(self):
+ ChipObj.init_objs(self)
+ ChipObj.replace_obj(self, 'gpio', GpioObj_whitney())
+ ChipObj.refresh_eintGpioMap(self)
+
+ def parse(self):
+ log(LogLevel.info, 'Whitney parse')
+ return ChipObj.parse(self)
+
+ def generate(self, paras):
+ return ChipObj.generate(self, paras)
diff --git a/tools/dct/obj/ClkObj.py b/tools/dct/obj/ClkObj.py
index 69143cad9a6a..7324017ad099 100755
--- a/tools/dct/obj/ClkObj.py
+++ b/tools/dct/obj/ClkObj.py
@@ -34,6 +34,9 @@ class ClkObj(ModuleObj):
key = re.findall(r'\D+', node.nodeName)[0].upper() + self.__suffix + '%s' %(re.findall(r'\d+', node.nodeName)[0])
+ if key not in ModuleObj.get_data(self):
+ continue;
+
data = ModuleObj.get_data(self)[key]
if len(varNode):
@@ -222,7 +225,9 @@ class ClkObj_Everest(ClkObj):
gen_str += '''\n'''
gen_str += '''&rf_clock_buffer_ctrl {\n'''
- gen_str += '''\tmediatek,clkbuf-quantity = <%d>;\n''' %(ClkData._count)
+ gen_str += '''\tmediatek,clkbuf-quantity = <%d>;\n''' %(len(ModuleObj.get_data(self))-ClkData._count)
+ msg = 'rf clk buff count : %d' %(len(ModuleObj.get_data(self))-ClkData._count)
+ log(LogLevel.info, msg)
gen_str += '''\tmediatek,clkbuf-config = <'''
#sorted_list = sorted(ModuleObj.get_data(self).keys())
@@ -232,7 +237,7 @@ class ClkObj_Everest(ClkObj):
if key.find(self.__rf) != -1:
gen_str += '''%d ''' %(ClkData._varList.index(value.get_varName()))
- gen_str.rstrip()
+ gen_str = gen_str.rstrip()
gen_str += '''>;\n'''
gen_str += '''\tmediatek,clkbuf-driving-current = <'''
@@ -332,7 +337,105 @@ class ClkObj_Olympus(ClkObj_Everest):
return gen_str
+class ClkObj_Rushmore(ClkObj):
+
+ def __init__(self):
+ ClkObj.__init__(self)
+ self.__suffix = '_BUF'
+
+ def parse(self, node):
+ ClkObj.parse(self, node)
+
+ def get_cfgInfo(self):
+ cp = ConfigParser.ConfigParser(allow_no_value=True)
+ cp.read(ModuleObj.get_figPath())
+
+ count = string.atoi(cp.get('CLK_BUF', 'CLK_BUF_COUNT'))
+ self.__count = count
+
+ def read(self, node):
+ nodes = node.childNodes
+ for node in nodes:
+ if node.nodeType == xml.dom.Node.ELEMENT_NODE:
+ if node.nodeName == 'count':
+ continue
+
+ varNode = node.getElementsByTagName('varName')
+ curNode = node.getElementsByTagName('current')
+
+ key = re.findall(r'\D+', node.nodeName)[0].upper() + self.__suffix + '%s' %(re.findall(r'\d+', node.nodeName)[0])
+ data = ClkData()
+ if len(varNode):
+ data.set_varName(varNode[0].childNodes[0].nodeValue)
+
+ #if len(curNode):
+ #data.set_current(curNode[0].childNodes[0].nodeValue)
+
+ ModuleObj.set_data(self, key, data)
+
+ return True
+
+ def fill_hFile(self):
+ gen_str = '''typedef enum {\n'''
+ gen_str += '''\tCLOCK_BUFFER_DISABLE,\n'''
+ gen_str += '''\tCLOCK_BUFFER_SW_CONTROL,\n'''
+ gen_str += '''\tCLOCK_BUFFER_HW_CONTROL\n'''
+ gen_str += '''} MTK_CLK_BUF_STATUS;\n'''
+ gen_str += '''\n'''
+ gen_str += '''typedef enum {\n'''
+ gen_str += '''\tCLK_BUF_DRIVING_CURR_AUTO_K = -1,\n'''
+ gen_str += '''\tCLK_BUF_DRIVING_CURR_0,\n'''
+ gen_str += '''\tCLK_BUF_DRIVING_CURR_1,\n'''
+ gen_str += '''\tCLK_BUF_DRIVING_CURR_2,\n'''
+ gen_str += '''\tCLK_BUF_DRIVING_CURR_3\n'''
+ gen_str += '''} MTK_CLK_BUF_DRIVING_CURR;\n'''
+ gen_str += '''\n'''
+
+
+ for key in sorted_key(ModuleObj.get_data(self).keys()):
+ value = ModuleObj.get_data(self)[key]
+ if key.find('RF') != -1:
+ gen_str += '''#define %s_STATUS\t\t\t\tCLOCK_BUFFER_%s\n''' %(key[3:], value.get_varName())
+
+ gen_str += '''\n'''
+
+ for key in sorted_key(ModuleObj.get_data(self).keys()):
+ if key.find('RF') != -1:
+ continue
+ value = ModuleObj.get_data(self)[key]
+ idx = value.get_curList().index(value.get_current())
+ if cmp(value.get_curList()[0], DEFAULT_AUTOK) == 0:
+ idx -= 1
+
+ if idx >= 0:
+ gen_str += '''#define %s_DRIVING_CURR\t\tCLK_BUF_DRIVING_CURR_%d\n''' %(key, idx)
+ else:
+ gen_str += '''#define %s_DRIVING_CURR\t\tCLK_BUF_DRIVING_CURR_AUTO_K\n''' %(key)
+
+ gen_str += '''\n'''
+
+ return gen_str
+
+ def fill_dtsiFile(self):
+ gen_str = '''&rf_clock_buffer_ctrl {\n'''
+ gen_str += '''\tmediatek,clkbuf-quantity = <%d>;\n''' %(self.__count)
+ gen_str += '''\tmediatek,clkbuf-config = <'''
+
+ #sorted_list = sorted(ModuleObj.get_data(self).keys())
+ for key in sorted_key(ModuleObj.get_data(self).keys()):
+ if key.find('RF') == -1:
+ continue
+ value = ModuleObj.get_data(self)[key]
+ gen_str += '''%d ''' %(ClkData._varList.index(value.get_varName()))
+
+ gen_str = gen_str.rstrip()
+ gen_str += '''>;\n'''
+
+ gen_str += '''\tstatus = \"okay\";\n'''
+ gen_str += '''};\n'''
+
+ return gen_str
diff --git a/tools/dct/obj/EintObj.py b/tools/dct/obj/EintObj.py
index 52213b0f9188..5f069dc9f3eb 100755
--- a/tools/dct/obj/EintObj.py
+++ b/tools/dct/obj/EintObj.py
@@ -22,6 +22,10 @@ class EintObj(ModuleObj):
ModuleObj.__init__(self, 'cust_eint.h', 'cust_eint.dtsi')
self.__gpio_obj = gpio_obj
self.__count = 0
+ self.__map_count = 0
+
+ def set_gpioObj(self, gpio_obj):
+ self.__gpio_obj = gpio_obj
def read(self, node):
nodes = node.childNodes
@@ -85,6 +89,9 @@ class EintObj(ModuleObj):
EintData.set_mapTable(map)
EintData.set_modeMap(mode_map)
+ if cp.has_option('EINT', 'EINT_MAP_COUNT'):
+ self.__map_count = string.atoi(cp.get('EINT', 'EINT_MAP_COUNT'))
+
if cp.has_option('EINT', 'INTERNAL_EINT'):
info = cp.get('EINT', 'INTERNAL_EINT')
str_list = info.split(':')
@@ -170,15 +177,14 @@ class EintObj(ModuleObj):
def fill_mappingTable(self):
gen_str = '''&eintc {\n'''
count = 0
- for i in range(0, string.atoi(self.__count)):
- if EintData.get_gpioNum(i) >= 0:
- count += 1
-
- #for value in EintData.get_mapTable().values():
- #if value != -1:
- #count += 1
- count += len(EintData._int_eint)
+ if self.__map_count == 0:
+ for i in range(0, string.atoi(self.__count)):
+ if EintData.get_gpioNum(i) >= 0:
+ count += 1
+ count += len(EintData._int_eint)
+ else:
+ count = self.__map_count
gen_str += '''\tmediatek,mapping_table_entry = <%d>;\n''' %(count)
gen_str += '''\t\t\t/* <gpio_pin, eint_pin> */\n'''
@@ -221,8 +227,8 @@ class EintObj(ModuleObj):
def refGpio(self, eint_num, flag):
gpio_vec= []
- gpio_num = EintData.get_gpioNum(string.atoi(eint_num))
+ gpio_num = EintData.get_gpioNum(string.atoi(eint_num))
if gpio_num >= 0:
gpio_vec.append(gpio_num)
if flag:
@@ -285,3 +291,5 @@ class EintObj(ModuleObj):
gen_str += '''\n'''
return gen_str
+
+
diff --git a/tools/dct/obj/GpioObj.py b/tools/dct/obj/GpioObj.py
index b306ad1363b3..219559382f2b 100755
--- a/tools/dct/obj/GpioObj.py
+++ b/tools/dct/obj/GpioObj.py
@@ -15,6 +15,8 @@ from ModuleObj import ModuleObj
import ChipObj
from utility.util import compare
from utility.util import sorted_key
+from utility.util import log
+from utility.util import LogLevel
class GpioObj(ModuleObj):
def __init__(self):
@@ -82,6 +84,9 @@ class GpioObj(ModuleObj):
smtNode = node.getElementsByTagName('smt')
iesNode = node.getElementsByTagName('ies')
+ num = string.atoi(node.nodeName[4:])
+ if num >= len(ModuleObj.get_data(self)):
+ break
data = ModuleObj.get_data(self)[node.nodeName]
if len(eintNode):
@@ -284,9 +289,10 @@ class GpioObj(ModuleObj):
gen_str += '''//Configuration for %s\n''' %(key.upper())
mode_name = GpioData.get_modeName(key, value.get_defMode())
+ val = ''
if mode_name != '':
flag = False
- val = ''
+ #val = ''
if mode_name.find('//') != -1:
flag = True
@@ -562,4 +568,20 @@ class GpioObj(ModuleObj):
gen_str += '''};\n'''
return gen_str
+class GpioObj_whitney(GpioObj):
+ def __init__(self):
+ GpioObj.__init__(self)
+
+ def parse(self, node):
+ log(LogLevel.info, 'GpioObj_whitney parse')
+ GpioObj.parse(self, node)
+
+ def gen_files(self):
+ GpioObj.gen_files(self)
+
+ def gen_spec(self, para):
+ GpioObj.gen_spec(self, para)
+
+ def is_i2cPadPin(self, name):
+ return False
diff --git a/tools/dct/obj/I2cObj.py b/tools/dct/obj/I2cObj.py
index cc40f8f7e127..700670673ac1 100755
--- a/tools/dct/obj/I2cObj.py
+++ b/tools/dct/obj/I2cObj.py
@@ -17,6 +17,7 @@ class I2cObj(ModuleObj):
def __init__(self):
ModuleObj.__init__(self, 'cust_i2c.h', 'cust_i2c.dtsi')
self.__busList = []
+ self.__bBusEnable = True
def get_cfgInfo(self):
cp = ConfigParser.ConfigParser(allow_no_value=True)
@@ -25,6 +26,11 @@ class I2cObj(ModuleObj):
I2cData._i2c_count = string.atoi(cp.get('I2C', 'I2C_COUNT'))
I2cData._channel_count = string.atoi(cp.get('I2C', 'CHANNEL_COUNT'))
+ if cp.has_option('Chip Type', 'I2C_BUS'):
+ flag = cp.get('Chip Type', 'I2C_BUS')
+ if flag == '0':
+ self.__bBusEnable = False
+
def read(self, node):
nodes = node.childNodes
for node in nodes:
@@ -95,18 +101,22 @@ class I2cObj(ModuleObj):
def fill_dtsiFile(self):
gen_str = ''
for i in range(0, I2cData._channel_count):
+ if i >= len(self.__busList):
+ break;
gen_str += '''&i2c%d {\n''' %(i)
gen_str += '''\t#address-cells = <1>;\n'''
gen_str += '''\t#size-cells = <0>;\n'''
- gen_str += '''\tclock-frequency = <%d>;\n''' %(string.atoi(self.__busList[i].get_speed()) * 1000)
- temp_str = ''
- if cmp(self.__busList[i].get_enable(), 'false') == 0:
- temp_str = 'use-open-drain'
- elif cmp(self.__busList[i].get_enable(), 'true') == 0:
- temp_str = 'use-push-pull'
- gen_str += '''\tmediatek,%s;\n''' %(temp_str)
+ if self.__bBusEnable:
+ gen_str += '''\tclock-frequency = <%d>;\n''' %(string.atoi(self.__busList[i].get_speed()) * 1000)
+ temp_str = ''
+
+ if cmp(self.__busList[i].get_enable(), 'false') == 0:
+ temp_str = 'use-open-drain'
+ elif cmp(self.__busList[i].get_enable(), 'true') == 0:
+ temp_str = 'use-push-pull'
+ gen_str += '''\tmediatek,%s;\n''' %(temp_str)
for key in sorted_key(ModuleObj.get_data(self).keys()):
value = ModuleObj.get_data(self)[key]
@@ -120,4 +130,4 @@ class I2cObj(ModuleObj):
gen_str += '''};\n\n'''
- return gen_str
+ return gen_str \ No newline at end of file
diff --git a/tools/dct/obj/KpdObj.py b/tools/dct/obj/KpdObj.py
index 356499834f8e..618a276cc327 100755
--- a/tools/dct/obj/KpdObj.py
+++ b/tools/dct/obj/KpdObj.py
@@ -27,6 +27,12 @@ class KpdObj(ModuleObj):
KpdData._keyValueMap['NC'] = 0
+ cp.read(ModuleObj.get_figPath())
+ if cp.has_option('KEYPAD_EXTEND_TYPE', 'KEY_ROW'):
+ KpdData.set_row_ext(string.atoi(cp.get('KEYPAD_EXTEND_TYPE', 'KEY_ROW')))
+ if cp.has_option('KEYPAD_EXTEND_TYPE', 'KEY_COLUMN'):
+ KpdData.set_col_ext(string.atoi(cp.get('KEYPAD_EXTEND_TYPE', 'KEY_COLUMN')))
+
return True
def read(self, node):
@@ -55,6 +61,16 @@ class KpdObj(ModuleObj):
KpdData._usedKeys.append(item)
KpdData._usedKeys.append('POWER')
+ if node.nodeName == "keyMatrix_ext" and node.childNodes:
+ content = node.childNodes[0].nodeValue
+ content = content.replace('\t', '')
+ rows = content.split('''\n''')
+ matrix = []
+ for row in rows:
+ for item in row.split(' '):
+ matrix.append(item)
+ KpdData.set_matrix_ext(matrix)
+
if node.nodeName == 'downloadKey':
keys = node.childNodes[0].nodeValue
KpdData.set_downloadKeys(keys.split(' '))
@@ -137,20 +153,35 @@ class KpdObj(ModuleObj):
gen_str += '''\n'''
gen_str += '''#define KPD_KEY_DEBOUNCE\t%d\n''' %(KpdData.get_pressTime())
gen_str += '''#define KPD_PWRKEY_MAP\tKEY_%s\n''' %(KpdData.get_utility())
- gen_str += '''#define MTK_PMIC_PWR_KEY\t%d\n''' %(KpdData.get_col() - 1)
- gen_str += '''#define KPD_PMIC_RSTKEY_MAP\tKEY_%s\n''' %(KpdData.get_homeKey())
- gen_str += '''#define MTK_PMIC_RST_KEY\t\t%d\n''' %(2*KpdData.get_col() - 1)
- gen_str += '''\n'''
- gen_str += '''#define KPD_USE_EXTEND_TYPE\tKPD_NO\n'''
+ # do not gen this macro if the home key is null
+ if KpdData.get_homeKey() != '':
+ gen_str += '''#define KPD_PMIC_RSTKEY_MAP\tKEY_%s\n''' %(KpdData.get_homeKey())
+ if cmp(KpdData.get_keyType(), 'EXTEND_TYPE') != 0:
+ gen_str += '''#define MTK_PMIC_PWR_KEY\t%d\n''' %(KpdData.get_col() - 1)
+ if KpdData.get_homeKey() != '':
+ gen_str += '''#define MTK_PMIC_RST_KEY\t\t%d\n''' %(2*KpdData.get_col() - 1)
+ gen_str += '''\n'''
+ gen_str += '''#define KPD_USE_EXTEND_TYPE\tKPD_NO\n'''
+ else:
+ gen_str += '''#define MTK_PMIC_PWR_KEY\t%d\n''' %(KpdData.get_col_ext() - 1)
+ if KpdData.get_keyType() != '':
+ gen_str += '''#define MTK_PMIC_RST_KEY\t\t%d\n''' %(2*KpdData.get_col_ext() - 1)
+ gen_str += '''\n'''
+ gen_str += '''#define KPD_USE_EXTEND_TYPE\tKPD_YES\n'''
gen_str += '''\n'''
gen_str += '''/* HW keycode [0 ~ 71] -> Linux keycode */\n'''
gen_str += '''#define KPD_INIT_KEYMAP()\t\\\n'''
gen_str += '''{\t\\\n'''
- for key in KpdData.get_matrix():
- if cmp(key, 'NC') != 0:
- gen_str += '''\t[%d] = KEY_%s,\t\\\n''' %(KpdData.get_matrix().index(key), key)
+ if KpdData.get_keyType() == 'NORMAL_TYPE':
+ for key in KpdData.get_matrix():
+ if cmp(key, 'NC') != 0:
+ gen_str += '''\t[%d] = KEY_%s,\t\\\n''' %(KpdData.get_matrix().index(key), key)
+ else:
+ for key in KpdData.get_matrix_ext():
+ if cmp(key, 'NC') != 0:
+ gen_str += '''\t[%d] = KEY_%s,\t\\\n''' %(KpdData.get_matrix_ext().index(key), key)
gen_str += '''}\n'''
gen_str += '''\n'''
@@ -184,29 +215,55 @@ class KpdObj(ModuleObj):
return gen_str
def get_matrixIdx(self, value):
- if cmp(value, 'POWER') == 0:
- return KpdData.get_col() - 1
- elif cmp(value, KpdData.get_homeKey()) == 0:
- return 2 * KpdData.get_col() - 1
- else:
- return KpdData.get_matrix().index(value)
-
+ if KpdData.get_keyType() == 'NORMAL_TYPE':
+ if cmp(value, 'POWER') == 0:
+ return KpdData.get_col() - 1
+ elif cmp(value, KpdData.get_homeKey()) == 0:
+ return 2 * KpdData.get_col() - 1
+ else:
+ return KpdData.get_matrix().index(value)
+ elif KpdData.get_keyType() == 'EXTEND_TYPE':
+ if cmp(value, 'POWER') == 0:
+ return KpdData.get_col_ext() - 1
+ elif cmp(value, KpdData.get_homeKey()) == 0:
+ return 2 * KpdData.get_col_ext() - 1
+ else:
+ return KpdData.get_matrix_ext().index(value)
def fill_dtsiFile(self):
gen_str = '''&keypad {\n'''
gen_str += '''\tmediatek,kpd-key-debounce = <%d>;\n''' %(KpdData.get_pressTime())
gen_str += '''\tmediatek,kpd-sw-pwrkey = <%d>;\n''' %(KpdData._keyValueMap[KpdData.get_utility()])
- gen_str += '''\tmediatek,kpd-hw-pwrkey = <%d>;\n''' %(KpdData.get_col()-1)
- gen_str += '''\tmediatek,kpd-sw-rstkey = <%d>;\n''' %(KpdData._keyValueMap[KpdData.get_homeKey()])
- gen_str += '''\tmediatek,kpd-hw-rstkey = <%d>;\n''' %(2*KpdData.get_col() - 1)
- gen_str += '''\tmediatek,kpd-use-extend-type = <0>;\n'''
+ if KpdData.get_keyType() == 'NORMAL_TYPE':
+ gen_str += '''\tmediatek,kpd-hw-pwrkey = <%d>;\n''' %(KpdData.get_col()-1)
+ else:
+ gen_str += '''\tmediatek,kpd-hw-pwrkey = <%d>;\n''' %(KpdData.get_col_ext()-1)
+
+ #gen_str += '''\tmediatek,kpd-sw-rstkey = <%d>;\n''' %(KpdData._keyValueMap[KpdData.get_homeKey()])
+ if KpdData.get_homeKey() != '':
+ gen_str += '''\tmediatek,kpd-sw-rstkey = <%d>;\n''' %(KpdData.get_keyVal(KpdData.get_homeKey()))
+ if KpdData.get_keyType() == 'NORMAL_TYPE':
+ if KpdData.get_homeKey() != '':
+ gen_str += '''\tmediatek,kpd-hw-rstkey = <%d>;\n''' %(2*KpdData.get_col() - 1)
+ gen_str += '''\tmediatek,kpd-use-extend-type = <0>;\n'''
+ else:
+ if KpdData.get_homeKey() != '':
+ gen_str += '''\tmediatek,kpd-hw-rstkey = <%d>;\n''' %(2*KpdData.get_col_ext() - 1)
+ gen_str += '''\tmediatek,kpd-use-extend-type = <1>;\n'''
+
+ #gen_str += '''\tmediatek,kpd-use-extend-type = <0>;\n'''
gen_str += '''\t/*HW Keycode [0~%d] -> Linux Keycode*/\n''' %(KpdData.get_row() * KpdData.get_col() - 1)
gen_str += '''\tmediatek,kpd-hw-map-num = <%d>;\n''' %(KpdData.get_row() * KpdData.get_col())
gen_str += '''\tmediatek,kpd-hw-init-map = <'''
- for key in KpdData.get_matrix():
- idx = KpdData._keyValueMap[key]
- gen_str += '''%d ''' %(idx)
+ if KpdData.get_keyType() == 'NORMAL_TYPE':
+ for key in KpdData.get_matrix():
+ idx = KpdData._keyValueMap[key]
+ gen_str += '''%d ''' %(idx)
+ else:
+ for key in KpdData.get_matrix_ext():
+ idx = KpdData._keyValueMap[key]
+ gen_str += '''%d ''' %(idx)
gen_str.rstrip()
gen_str += '''>;\n'''
@@ -231,3 +288,4 @@ class KpdObj(ModuleObj):
+
diff --git a/tools/dct/obj/Md1EintObj.py b/tools/dct/obj/Md1EintObj.py
index f76c0636ceef..53cdc22f4bc9 100755
--- a/tools/dct/obj/Md1EintObj.py
+++ b/tools/dct/obj/Md1EintObj.py
@@ -15,16 +15,26 @@ class Md1EintObj(ModuleObj):
def __init__(self):
ModuleObj.__init__(self, 'cust_eint_md1.h', 'cust_md1_eint.dtsi')
self.__srcPin = {}
+ self.__bSrcPinEnable = True
def get_cfgInfo(self):
# ConfigParser accept ":" and "=", so SRC_PIN will be treated specially
cp = ConfigParser.ConfigParser(allow_no_value=True)
cp.read(ModuleObj.get_figPath())
- for option in cp.options('SRC_PIN'):
- value = cp.get('SRC_PIN', option)
- value = value[1:]
- temp = value.split('=')
- self.__srcPin[temp[0]] = temp[1]
+
+ if cp.has_option('Chip Type', 'MD1_EINT_SRC_PIN'):
+ flag = cp.get('Chip Type', 'MD1_EINT_SRC_PIN')
+ if flag == '0':
+ self.__bSrcPinEnable = False
+
+ if(self.__bSrcPinEnable):
+ for option in cp.options('SRC_PIN'):
+ value = cp.get('SRC_PIN', option)
+ value = value[1:]
+ temp = value.split('=')
+ self.__srcPin[temp[0]] = temp[1]
+ else:
+ self.__srcPin[''] = '-1'
def read(self, node):
nodes = node.childNodes
@@ -57,10 +67,10 @@ class Md1EintObj(ModuleObj):
data.set_debounceEnable(deeNode[0].childNodes[0].nodeValue)
if len(dedNode):
data.set_dedicatedEn(dedNode[0].childNodes[0].nodeValue)
- if len(srcNode):
+ if len(srcNode) and len(srcNode[0].childNodes):
data.set_srcPin(srcNode[0].childNodes[0].nodeValue)
- if len(sktNode):
- data.set_socketType(sktNode[0].childNodes[0].nodeValue)\
+ if len(sktNode) and len(sktNode[0].childNodes):
+ data.set_socketType(sktNode[0].childNodes[0].nodeValue)
ModuleObj.set_data(self, node.nodeName, data)
except:
@@ -84,9 +94,10 @@ class Md1EintObj(ModuleObj):
gen_str += '''\n'''
- for (key, value) in self.__srcPin.items():
- gen_str += '''#define %s\t\t%s\n''' %(key, value)
- gen_str += '''\n'''
+ if self.__bSrcPinEnable:
+ for (key, value) in self.__srcPin.items():
+ gen_str += '''#define %s\t\t%s\n''' %(key, value)
+ gen_str += '''\n'''
gen_str += '''#define CUST_EINT_POLARITY_LOW\t\t0\n'''
gen_str += '''#define CUST_EINT_POLARITY_HIGH\t\t1\n'''
@@ -110,7 +121,8 @@ class Md1EintObj(ModuleObj):
gen_str += '''#define CUST_EINT_MD1_%s_SENSITIVE\t\tCUST_EINT_MD_%s_SENSITIVE\n''' %(num, value.get_sensitiveLevel().upper())
gen_str += '''#define CUST_EINT_MD1_%s_DEBOUNCE_EN\t\tCUST_EINT_DEBOUNCE_%s\n''' %(num, value.get_debounceEnable().upper())
gen_str += '''#define CUST_EINT_MD1_%s_DEDICATED_EN\t\t%s\n''' %(num, int(value.get_dedicatedEn()))
- gen_str += '''#define CUST_EINT_MD1_%s_SRCPIN\t\t\t%s\n''' %(num, value.get_srcPin())
+ if self.__bSrcPinEnable:
+ gen_str += '''#define CUST_EINT_MD1_%s_SRCPIN\t\t\t%s\n''' %(num, value.get_srcPin())
gen_str += '''\n'''
gen_str += '''#define CUST_EINT_MD1_CNT\t\t\t%d\n''' %(count)
@@ -145,7 +157,10 @@ class Md1EintObj(ModuleObj):
gen_str += '''\t\tinterrupts = <%s %d>;\n''' %(num, type)
gen_str += '''\t\tdebounce = <%s %d>;\n''' %(num, (string.atoi(value.get_debounceTime()))*1000)
gen_str += '''\t\tdedicated = <%s %d>;\n''' %(num, int(value.get_dedicatedEn()))
- gen_str += '''\t\tsrc_pin = <%s %s>;\n''' %(num, self.__srcPin[value.get_srcPin()])
+ if self.__bSrcPinEnable:
+ gen_str += '''\t\tsrc_pin = <%s %s>;\n''' %(num, self.__srcPin[value.get_srcPin()])
+ else:
+ gen_str += '''\t\tsrc_pin = <%s %s>;\n''' %(num, -1)
gen_str += '''\t\tsockettype = <%s %s>;\n''' %(num, value.get_socketType())
gen_str += '''\t\tstatus = \"okay\";\n'''
gen_str += '''\t};\n'''
@@ -155,4 +170,3 @@ class Md1EintObj(ModuleObj):
gen_str += '''};\n'''
return gen_str
-
diff --git a/tools/dct/obj/PmicObj.py b/tools/dct/obj/PmicObj.py
index 1dca45b7f17b..32b2533a92f8 100755
--- a/tools/dct/obj/PmicObj.py
+++ b/tools/dct/obj/PmicObj.py
@@ -24,6 +24,7 @@ class PmicObj(ModuleObj):
self.__appCount = -1
self.__func = ''
self.__paraList = []
+ self.__headerList = []
def get_cfgInfo(self):
@@ -32,6 +33,8 @@ class PmicObj(ModuleObj):
PmicData._var_list = cp.options('APPLICATION')
+ if self.__chipName == '':
+ return
#parse the pmic config file
cmpPath = os.path.join(sys.path[0], 'config', self.__chipName + '.cmp')
if not os.path.exists(cmpPath) or not os.path.isfile(cmpPath):
@@ -57,6 +60,8 @@ class PmicObj(ModuleObj):
for node in nodes:
if node.nodeType == xml.dom.Node.ELEMENT_NODE:
if cmp(node.nodeName, 'chip') == 0:
+ if len(node.childNodes) == 0:
+ break
self.__chipName = node.childNodes[0].nodeValue
continue
if cmp(node.nodeName, 'count') == 0:
@@ -198,4 +203,3 @@ class PmicObj(ModuleObj):
gen_str += '''}\n'''
return gen_str
-
diff --git a/tools/dct/obj/PowerObj.py b/tools/dct/obj/PowerObj.py
index 561e47a161f8..c1fc060ef5cf 100755
--- a/tools/dct/obj/PowerObj.py
+++ b/tools/dct/obj/PowerObj.py
@@ -20,7 +20,7 @@ class PowerObj(ModuleObj):
self.__list = {}
def getCfgInfo(self):
- cp = ConfigParser.ConfigParser()
+ cp = ConfigParser.ConfigParser(allow_no_value=True)
cp.read(ModuleObj.get_figPath())
self.__list = cp.options('POWER')
@@ -72,4 +72,3 @@ class PowerObj(ModuleObj):
def fill_dtsiFile(self):
return ''
-
diff --git a/tools/dct/utility/version.py b/tools/dct/utility/version.py
index a3461f031922..39607aa8dd53 100755
--- a/tools/dct/utility/version.py
+++ b/tools/dct/utility/version.py
@@ -2,5 +2,5 @@
# -*- coding: utf-8 -*-
VER_MAIN = '3'
-VER_SUB = '4'
-BUILD_SN = '160511'
+VER_SUB = '5'
+BUILD_SN = '160809'