コード例 #1
0
    def fill_dtsiFile(self):
        gen_str = ''

        for key in sorted_key(ModuleObj.get_data(self).keys()):
            value = ModuleObj.get_data(self)[key]
            gen_str += '''&mt_pmic_%s_ldo_reg {\n''' % (
                value.get_ldoName().lower())
            gen_str += '''\tregulator-name = \"%s\";\n''' % (
                (value.get_ldoName().replace('_', '')).lower())
            gen_str += '''\tregulator-default-on = <%d>; /* 0:skip, 1: off, 2:on */\n''' % (
                value.get_defEnable())
            gen_str += '''\tstatus = \"okay\";\n'''
            gen_str += '''};\n'''

        gen_str += '''\n'''
        gen_str += '''&kd_camera_hw1 {\n'''

        for key in sorted_key(ModuleObj.get_data(self).keys()):
            value = ModuleObj.get_data(self)[key]
            for varName in value.get_nameList():
                #for i in range(0, self.__appCount):
                bExisted = False
                postFix = ''
                #varName = value.get_nameList()[i]
                if varName.find('CAMERA') != -1:
                    postFix = varName[varName.rfind('_') + 1:]
                    bExisted = True

                if varName.find('MAIN_CAMERA_2') != -1:
                    gen_str += '''\tvcam%s_main2-supply = <&mt_pmic_%s_ldo_reg>;\n''' % (
                        postFix.lower(), value.get_ldoName().lower())
                elif varName.find('MAIN_CAMERA') != -1:
                    gen_str += '''\tvcam%s-supply = <&mt_pmic_%s_ldo_reg>;\n''' % (
                        postFix.lower(), value.get_ldoName().lower())
                elif varName.find('SUB_CAMERA_2') != -1:
                    gen_str += '''\tvcam%s_sub2-supply = <&mt_pmic_%s_ldo_reg>;\n''' % (
                        postFix.lower(), value.get_ldoName().lower())
                elif varName.find('SUB_CAMERA') != -1:
                    #gen_str += '''\tvcam%s_main2-supply = <&mt_pmic_%s_ldo_reg>;\n''' %(postFix.lower(), value.get_ldoName().lower())
                    gen_str += '''\tvcam%s_sub-supply = <&mt_pmic_%s_ldo_reg>;\n''' % (
                        postFix.lower(), value.get_ldoName().lower())

            #if bExisted == True:
            #gen_str += '''\n'''

        gen_str += '''\tstatus = \"okay\";\n'''
        gen_str += '''};\n\n'''
        gen_str += '''&touch {\n'''

        for key in sorted_key(ModuleObj.get_data(self).keys()):
            value = ModuleObj.get_data(self)[key]
            for name in value.get_nameList():
                if name.find('TOUCH') != -1:
                    gen_str += '''\tvtouch-supply = <&mt_pmic_%s_ldo_reg>;\n''' % (
                        value.get_ldoName().lower())

        gen_str += '''\tstatus = \"okay\";\n'''
        gen_str += '''};\n'''

        return gen_str
コード例 #2
0
    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_OUTPUT_IMPEDANCE_0,\n'''
        gen_str += '''\tCLK_BUF_OUTPUT_IMPEDANCE_1,\n'''
        gen_str += '''\tCLK_BUF_OUTPUT_IMPEDANCE_2,\n'''
        gen_str += '''\tCLK_BUF_OUTPUT_IMPEDANCE_3,\n'''
        gen_str += '''\tCLK_BUF_OUTPUT_IMPEDANCE_4,\n'''
        gen_str += '''\tCLK_BUF_OUTPUT_IMPEDANCE_5,\n'''
        gen_str += '''\tCLK_BUF_OUTPUT_IMPEDANCE_6,\n'''
        gen_str += '''\tCLK_BUF_OUTPUT_IMPEDANCE_7\n'''
        gen_str += '''} MTK_CLK_BUF_OUTPUT_IMPEDANCE;\n'''
        gen_str += '''\n'''

        gen_str += '''typedef enum {\n'''
        gen_str += '''\tCLK_BUF_CONTROLS_FOR_DESENSE_0,\n'''
        gen_str += '''\tCLK_BUF_CONTROLS_FOR_DESENSE_1,\n'''
        gen_str += '''\tCLK_BUF_CONTROLS_FOR_DESENSE_2,\n'''
        gen_str += '''\tCLK_BUF_CONTROLS_FOR_DESENSE_3,\n'''
        gen_str += '''\tCLK_BUF_CONTROLS_FOR_DESENSE_4,\n'''
        gen_str += '''\tCLK_BUF_CONTROLS_FOR_DESENSE_5,\n'''
        gen_str += '''\tCLK_BUF_CONTROLS_FOR_DESENSE_6,\n'''
        gen_str += '''\tCLK_BUF_CONTROLS_FOR_DESENSE_7\n'''
        gen_str += '''} MTK_CLK_BUF_CONTROLS_FOR_DESENSE;\n'''
        gen_str += '''\n'''

        for key in sorted_key(ModuleObj.get_data(self).keys()):
            value = ModuleObj.get_data(self)[key]
            if len(value.get_varName()):
                gen_str += '''#define %s_STATUS_PMIC\t\tCLOCK_BUFFER_%s\n''' % (key[5:], value.get_varName().upper())

        gen_str += '''\n'''

        for key in sorted_key(ModuleObj.get_data(self).keys()):
            value = ModuleObj.get_data(self)[key]
            if len(value.cur_buf_output_list) and len(value.cur_buf_output):
                idx = value.cur_buf_output_list.index(value.cur_buf_output)
                gen_str += '''#define %s_OUTPUT_IMPEDANCE\t\tCLK_BUF_OUTPUT_IMPEDANCE_%d\n''' % (key, idx)

        gen_str += '''\n'''

        for key in sorted_key(ModuleObj.get_data(self).keys()):
            value = ModuleObj.get_data(self)[key]
            if len(value.cur_driving_control_list) and len(value.cur_driving_control):
                idx = value.cur_driving_control_list.index(value.cur_driving_control)
                gen_str += '''#define %s_CONTROLS_FOR_DESENSE\t\tCLK_BUF_CONTROLS_FOR_DESENSE_%d\n''' % (key, idx)

        gen_str += '''\n'''

        return gen_str
コード例 #3
0
    def fill_dtsiFile(self):
        gen_str = '''&pmic_clock_buffer_ctrl {\n'''
        gen_str += '''\tmediatek,clkbuf-quantity = <%d>;\n''' % self.__count
        gen_str += '''\tmediatek,clkbuf-config = <'''

        for key in sorted_key(ModuleObj.get_data(self).keys()):
            if key.find('PMIC') == -1:
                continue
            value = ModuleObj.get_data(self)[key]
            if len(value.get_varName()):
                gen_str += '''%d ''' % (ClkData._varList.index(
                    value.get_varName()))
            else:
                gen_str += '''%d ''' % 0

        gen_str = gen_str.rstrip()
        gen_str += '''>;\n'''

        gen_str += '''\tmediatek,clkbuf-output-impedance = <'''

        for key in sorted_key(ModuleObj.get_data(self).keys()):
            if key.find('PMIC') == -1:
                continue
            value = ModuleObj.get_data(self)[key]
            if len(value.cur_buf_output_list) and len(value.cur_buf_output):
                idx = value.cur_buf_output_list.index(value.cur_buf_output)
                gen_str += '''%d ''' % idx
            else:
                gen_str += '''%d ''' % 0

        gen_str = gen_str.rstrip()
        gen_str += '''>;\n'''

        gen_str += '''\tmediatek,clkbuf-controls-for-desense = <'''

        for key in sorted_key(ModuleObj.get_data(self).keys()):
            if key.find('PMIC') == -1:
                continue
            value = ModuleObj.get_data(self)[key]
            if len(value.cur_driving_control_list) and len(
                    value.cur_driving_control):
                idx = value.cur_driving_control_list.index(
                    value.cur_driving_control)
                gen_str += '''%d ''' % idx
            else:
                gen_str += '''%d ''' % 0

        gen_str = gen_str.rstrip()
        gen_str += '''>;\n'''

        gen_str += '''\tstatus = \"okay\";\n'''
        gen_str += '''};\n'''

        return gen_str
コード例 #4
0
    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_0_4MA,\n'''
        gen_str += '''\tCLK_BUF_DRIVING_CURR_0_9MA,\n'''
        gen_str += '''\tCLK_BUF_DRIVING_CURR_1_4MA,\n'''
        gen_str += '''\tCLK_BUF_DRIVING_CURR_1_9MA\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(self.__pmic) != -1:
                gen_str += '''#define %s_STATUS_PMIC\t\t\t\tCLOCK_BUFFER_%s\n''' % (
                    key[5:], value.get_varName())

        gen_str += '''\n'''

        for key in sorted_key(ModuleObj.get_data(self).keys()):
            value = ModuleObj.get_data(self)[key]
            if key.find(self.__pmic) != -1:
                gen_str += '''#define %s_DRIVING_CURR\t\tCLK_BUF_DRIVING_CURR_%sMA\n''' % (
                    key, value.get_current().replace('.', '_'))

        gen_str += '''\n'''

        for key in sorted_key(ModuleObj.get_data(self).keys()):
            value = ModuleObj.get_data(self)[key]
            if key.find(self.__rf) != -1:
                gen_str += '''#define %s_STATUS\t\tCLOCK_BUFFER_%s\n''' % (
                    key[3:], value.get_varName())

        gen_str += '''\n'''

        for key in sorted_key(ModuleObj.get_data(self).keys()):
            value = ModuleObj.get_data(self)[key]
            if key.find(self.__rf) != -1:
                gen_str += '''#define %s_DRIVING_CURR\t\tCLK_BUF_DRIVING_CURR_%sMA\n''' % (
                    key, value.get_current().replace('.', '_'))

        gen_str += '''\n'''

        return gen_str
コード例 #5
0
    def fill_pinctrl_hFile(self):
        gen_str = '''#include <linux/pinctrl/pinctrl.h>\n'''
        gen_str += '''#include <pinctrl-mtk-common.h>\n\n'''
        gen_str += '''static const struct mtk_desc_pin mtk_pins_%s[] = {\n''' % (
            ModuleObj.get_chipId().lower())

        #sorted_list = sorted(ModuleObj.get_data(self).keys(), key = compare)
        for key in sorted_key(ModuleObj.get_data(self).keys()):
            #for key in sorted_list:
            value = ModuleObj.get_data(self)[key]
            gen_str += '''\tMTK_PIN(\n'''
            gen_str += '''\t\tPINCTRL_PIN(%s, \"%s\"),\n''' % (key[4:],
                                                               key.upper())
            gen_str += '''\t\tNULL, \"%s\",\n''' % (
                ModuleObj.get_chipId().lower())
            gen_str += '''\t\tMTK_EINT_FUNCTION(NO_EINT_SUPPORT, NO_EINT_SUPPORT)'''
            for i in range(0, GpioData._modNum):
                mode_name = GpioData.get_modeName(key, i)

                if mode_name != '':
                    lst = []
                    if mode_name.find('//') != -1:
                        lst = mode_name.split('//')
                    else:
                        lst.append(mode_name)
                    for j in range(0, len(lst)):
                        gen_str += ''',\n\t\tMTK_FUNCTION(%d, "%s")''' % (
                            i + j * 8, lst[j])
            gen_str += '''\n\t),\n'''

        gen_str += '''};\n'''

        return gen_str
コード例 #6
0
    def fill_dtsiFile(self):
        gen_str = '''&auxadc {\n'''
        gen_str += '''\tadc_channel@ {\n'''
        gen_str += '''\t\tcompatible = "mediatek,adc_channel";\n'''

        val = -1

        # sort by the key, or the sequence is dissorted
        #sorted_list = sorted(ModuleObj.get_data(self).keys())
        for key in sorted_key(ModuleObj.get_data(self).keys()):
            value = ModuleObj.get_data(self)[key]

            if value == "TEMPERATURE":
                gen_str += '''\t\tmediatek,%s0 = <%d>;\n''' % (
                    value.lower(), string.atoi(key[3:]))
            else:
                gen_str += '''\t\tmediatek,%s = <%d>;\n''' % (
                    value.lower(), string.atoi(key[3:]))

            if value == "ADC_FDD_RF_PARAMS_DYNAMIC_CUSTOM_CH":
                val = string.atoi(key[3:])

        gen_str += '''\t\tstatus = \"okay\";\n'''
        gen_str += '''\t};\n'''
        gen_str += '''};\n'''

        gen_str += self.fill_extraNode(val)

        return gen_str
コード例 #7
0
    def fill_pinctrl_hFile(self):
        gen_str = '''#include "pinctrl-paris.h"\n\n'''
        gen_str += '''static const struct mtk_pin_desc mtk_pins_%s[] = {\n''' % (
            ModuleObj.get_chipId().lower())

        # sorted_list = sorted(ModuleObj.get_data(self).keys(), key = compare)
        for key in sorted_key(ModuleObj.get_data(self).keys()):
            # for key in sorted_list:
            gen_str += '''\tMTK_PIN(\n'''
            gen_str += '''\t\t%s, \"%s\",\n''' % (key[4:], key.upper())
            eint_index = self.get_eint_index(key[4:])
            if eint_index != -1:
                gen_str += '''\t\tMTK_EINT_FUNCTION(%d, %d),\n''' % (
                    0, eint_index)
            else:
                gen_str += '''\t\tMTK_EINT_FUNCTION(NO_EINT_SUPPORT, NO_EINT_SUPPORT),\n'''
            gen_str += '''\t\tDRV_GRP4'''
            for i in range(0, GpioData._modNum):
                mode_name = GpioData.get_modeName(key, i)
                smt_number = ModuleObj.get_data(self)[key].get_smtNum()

                if mode_name != '':
                    if smt_number != -1:
                        gen_str += ''',\n\t\tMTK_FUNCTION(%d, "%s")''' % (
                            i, mode_name)
                    else:
                        gen_str += ''',\n\t\tMTK_FUNCTION(%d, NULL)''' % (i)

            gen_str += '''\n\t),\n'''

        gen_str += '''};\n'''

        return gen_str
コード例 #8
0
    def fill_init_default_dtsiFile(self):
        gen_str = '''\n&gpio{\n'''
        gen_str += '''\tgpio_init_default = '''

        for key in sorted_key(ModuleObj.get_data(self).keys()):
            value = ModuleObj.get_data(self)[key]

            # if var name contains GPIO_INIT_NO_COVER, the device tree info of the pin in cust.dtsi file would not gen
            if "GPIO_INIT_NO_COVER" in value.get_varNames():
                continue

            num = string.atoi(key[4:])
            defMode = value.get_defMode()
            dout = 1 if value.get_outHigh() else 0
            pullEn = 1 if value.get_inPullEn() else 0
            pullSel = 1 if value.get_inPullSelHigh() else 0
            smtEn = 1 if value.get_smtEn() else 0

            gen_str += '''<%d %d %d %d %d %d %d>,\n\t\t''' % (
                num, defMode, value.ge_defDirInt(), dout, pullEn, pullSel,
                smtEn)

        gen_str = gen_str[0:len(gen_str) - 4]
        gen_str += ';'
        gen_str += '''\n};\n'''
        return gen_str
コード例 #9
0
    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'''


            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(list(ModuleObj.get_data(self).keys())):
                value = ModuleObj.get_data(self)[key]
                channel = 'I2C_CHANNEL_%d' %(i)
                if cmp(value.get_channel(), channel) == 0 and cmp(value.get_varName(), 'NC') != 0 and value.get_address().strip() != '':
                    gen_str += '''\t%s_mtk:%s@%s {\n''' %(value.get_varName().lower(), value.get_varName().lower(), value.get_address()[2:].lower())
                    gen_str += '''\t\tcompatible = \"mediatek,%s\";\n''' %(value.get_varName().lower())
                    gen_str += '''\t\treg = <%s>;\n''' %(value.get_address().lower())
                    gen_str += '''\t\tstatus = \"okay\";\n'''
                    gen_str += '''\t};\n\n'''

            gen_str += '''};\n\n'''

        return gen_str
コード例 #10
0
    def fill_pinctrl_hFile(self):
        gen_str = '''#include "pinctrl-paris.h"\n\n'''
        gen_str += '''static const struct mtk_pin_desc mtk_pins_%s[] = {\n''' % (
            ModuleObj.get_chipId().lower())

        # sorted_list = sorted(ModuleObj.get_data(self).keys(), key = compare)
        for key in sorted_key(ModuleObj.get_data(self).keys()):
            # for key in sorted_list:
            gen_str += '''\tMTK_PIN(\n'''
            gen_str += '''\t\t%s, \"%s\",\n''' % (key[4:], key.upper())
            eint_index = self.get_eint_index(key[4:])
            if eint_index != -1:
                gen_str += '''\t\tMTK_EINT_FUNCTION(%d, %d),\n''' % (
                    0, eint_index)
            else:
                gen_str += '''\t\tMTK_EINT_FUNCTION(NO_EINT_SUPPORT, NO_EINT_SUPPORT),\n'''
            gen_str += '''\t\tDRV_GRP4'''
            for i in range(0, GpioData._modNum):
                mode_name = GpioData.get_modeName(key, i)

                if mode_name != '':
                    lst = []
                    if mode_name.find('//') != -1:
                        lst = mode_name.split('//')
                    else:
                        lst.append(mode_name)
                    for j in range(0, len(lst)):
                        gen_str += ''',\n\t\tMTK_FUNCTION(%d, "%s")''' % (
                            i + j * 8, lst[j])
            gen_str += '''\n\t),\n'''

        gen_str += '''};\n'''

        return gen_str
コード例 #11
0
    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
コード例 #12
0
    def fill_hFile(self):
        gen_str = ''
        for key in sorted_key(ModuleObj.get_data(self).keys()):
            value = ModuleObj.get_data(self)[key]
            if value.get_varName() == '':
                continue
            idx = string.atoi(key[5:])
            name = self.__list[idx]
            gen_str += '''#define GPIO_%s\t\tGPIO_%s\n''' %(name.upper(), value.get_varName())

        return gen_str
コード例 #13
0
    def fill_dtsiFile(self):
        gen_str = ClkObj.fill_dtsiFile(self)

        gen_str += '''\n'''

        gen_str += '''&rf_clock_buffer_ctrl {\n'''
        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())

        for key in sorted_key(ModuleObj.get_data(self).keys()):
            value = ModuleObj.get_data(self)[key]

            if key.find(self.__rf) != -1:
                gen_str += '''%d ''' % (ClkData._varList.index(
                    value.get_varName()))
        gen_str = gen_str.rstrip()
        gen_str += '''>;\n'''

        gen_str += '''\tmediatek,clkbuf-driving-current = <'''

        for key in sorted_key(ModuleObj.get_data(self).keys()):
            value = ModuleObj.get_data(self)[key]
            if key.find(self.__rf) != -1:
                idx = value.get_curList().index(value.get_current())
                if cmp(value.get_curList()[0], DEFAULT_AUTOK) == 0:
                    idx -= 1
                gen_str += '''%d ''' % (idx)

        gen_str.rstrip()
        gen_str += '''>;\n'''

        gen_str += '''\tstatus = \"okay\";\n'''
        gen_str += '''};\n'''

        return gen_str
コード例 #14
0
    def fill_mapping_dtsiFile(self):
        gen_str = '''&gpio_usage_mapping {\n'''

        #sorted_list = sorted(ModuleObj.get_data(self).keys(), key = compare)
        for key in sorted_key(ModuleObj.get_data(self).keys()):
            #for key in sorted_list:
            value = ModuleObj.get_data(self)[key]
            for varName in value.get_varNames():
                if varName != '' and varName.lower() in GpioData._mapList:
                    gen_str += '''\t%s = <&pio %s 0>;\n''' % (varName, key[4:])

        gen_str += '''};\n'''
        return gen_str
コード例 #15
0
    def fill_dtsiFile(self):
        gen_str = '''&pmic_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('PMIC') == -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 += '''\tmediatek,clkbuf-driving-current = <'''

        #sorted_list = sorted(ModuleObj.get_data(self).keys())
        for key in sorted_key(ModuleObj.get_data(self).keys()):
            if key.find('PMIC') == -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 += '''(%d) ''' % (-1)
            else:
                gen_str += '''%d ''' % (idx)

        gen_str = gen_str.rstrip()
        gen_str += '''>;\n'''

        gen_str += '''\tstatus = \"okay\";\n'''
        gen_str += '''};\n'''

        return gen_str
コード例 #16
0
    def fill_hFile(self):
        gen_str = ''
        gen_str += '''#define CUST_EINT_MD_LEVEL_SENSITIVE\t\t0\n'''
        gen_str += '''#define CUST_EINT_MD_EDGE_SENSITIVE\t\t1\n'''

        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'''
        gen_str += '''\n'''

        gen_str += '''#define CUST_EINT_LEVEL_SENSITIVE\t\t0\n'''
        gen_str += '''#define CUST_EINT_EDGE_SENSITIVE\t\t1\n'''
        gen_str += '''\n'''

        count = 0
        for key in sorted_key(ModuleObj.get_data(self).keys()):
            value = ModuleObj.get_data(self)[key]
            if cmp(value.get_varName(), 'NC') == 0:
                continue
            num = key[4:]
            count += 1
            gen_str += '''#define CUST_EINT_MD1_%s_NAME\t\t\t"%s"\n''' % (
                num, value.get_varName())
            gen_str += '''#define CUST_EINT_MD1_%s_NUM\t\t\t%s\n''' % (num,
                                                                       num)
            gen_str += '''#define CUST_EINT_MD1_%s_DEBOUNCE_CN\t\t%s\n''' % (
                num, value.get_debounceTime())
            gen_str += '''#define CUST_EINT_MD1_%s_POLARITY\t\tCUST_EINT_POLARITY_%s\n''' % (
                num, value.get_polarity().upper())
            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()))
            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)

        return gen_str
コード例 #17
0
    def fill_dtsiFile(self):
        gen_str = ''
        gen_str += '''&eintc {\n'''
        for key in sorted_key(ModuleObj.get_data(self).keys()):
            value = ModuleObj.get_data(self)[key]
            if cmp(value.get_varName(), 'NC') == 0:
                continue
            num = key[4:]
            gen_str += '''\t%s@%s {\n''' % (value.get_varName(), num)
            gen_str += '''\t\tcompatible = \"mediatek,%s-eint\";\n''' % (
                value.get_varName())

            type = 1
            polarity = value.get_polarity()
            sensitive = value.get_sensitiveLevel()

            if cmp(polarity, 'High') == 0 and cmp(sensitive, 'Edge') == 0:
                type = 1
            elif cmp(polarity, 'Low') == 0 and cmp(sensitive, 'Edge') == 0:
                type = 2
            elif cmp(polarity, 'High') == 0 and cmp(sensitive, 'Level') == 0:
                type = 4
            elif cmp(polarity, 'Low') == 0 and cmp(sensitive, 'Level') == 0:
                type = 8

            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()))
            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'''

            gen_str += '''\n'''

        gen_str += '''};\n'''

        return gen_str
コード例 #18
0
    def fill_cFile(self):
        gen_str = ''
        for header in self.__headerList:
            gen_str += '''#include <%s>\n''' %(header)

        gen_str += '''\n'''
        gen_str += '''void pmu_drv_tool_customization_init(void)\n'''
        gen_str += '''{\n'''
        idx = 0

        for key in sorted_key(ModuleObj.get_data(self).keys()):
            value = ModuleObj.get_data(self)[key]
            if value.get_defEnable() != 0:
                gen_str += '''\t%s(%s,%d);\n''' %(self.__func, self.__paraList[idx], value.get_defEnable()-1)
            idx += 1
        gen_str += '''}\n'''

        return gen_str
コード例 #19
0
    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
コード例 #20
0
    def fill_hFile(self):
        gen_str = ''
        used = []
        for key in sorted_key(ModuleObj.get_data(self).keys()):
            value = ModuleObj.get_data(self)[key]
            for name in value.get_nameList():
                if name.strip() != '':
                    used.append(name)
                    gen_str += '''#define PMIC_APP_%s\t\t\t%s_POWER_LDO_%s\n''' %(name, self.__chipName[5:11], value.get_ldoName())


        gen_str += '''\n'''

        gen_str += '''/**********Output default name********************/\n'''

        for varName in PmicData._var_list:
            if not varName.upper() in used:
                gen_str += '''#define PMIC_APP_%s\t\t\t%s\n''' %(varName.upper(), self.__defLdo)

        return gen_str
コード例 #21
0
    def fill_init_default_dtsiFile(self):
        gen_str = '''\n&gpio{\n'''
        gen_str += '''\tgpio_init_default = '''

        for key in sorted_key(ModuleObj.get_data(self).keys()):
            value = ModuleObj.get_data(self)[key]

            num = string.atoi(key[4:])
            defMode = value.get_defMode()
            dout = 1 if value.get_outHigh() else 0
            pullEn = 1 if value.get_inPullEn() else 0
            pullSel = 1 if value.get_inPullSelHigh() else 0
            smtEn = 1 if value.get_smtEn() else 0

            gen_str += '''<%d %d %d %d %d %d %d>,\n\t\t''' % (num, defMode, value.ge_defDirInt(), dout, pullEn, pullSel, smtEn)

        gen_str = gen_str[0: len(gen_str) - 4]
        gen_str += ';'
        gen_str += '''\n};\n'''
        return gen_str
コード例 #22
0
    def fill_dtsiFile(self):
        gen_str = '''&auxadc {\n'''
        gen_str += '''\tadc_channel@ {\n'''
        gen_str += '''\t\tcompatible = "mediatek,adc_channel";\n'''

        # sort by the key, or the sequence is dissorted
        #sorted_list = sorted(ModuleObj.get_data(self).keys())
        for key in sorted_key(ModuleObj.get_data(self).keys()):
            value = ModuleObj.get_data(self)[key]

            if value == "TEMPERATURE":
                gen_str += '''\t\tmediatek,%s0 = <%d>;\n''' %(value.lower(), string.atoi(key[3:]))
            else:
                gen_str += '''\t\tmediatek,%s = <%d>;\n''' %(value.lower(), string.atoi(key[3:]))

        gen_str += '''\t\tstatus = \"okay\";\n'''
        gen_str += '''\t};\n'''
        gen_str += '''};\n'''

        return gen_str
コード例 #23
0
    def fill_hFile(self):
        gen_str = ''
        for i in range(0, I2cData._channel_count):
            gen_str += '''#define I2C_CHANNEL_%d\t\t\t%d\n''' %(i, i)

        gen_str += '''\n'''

        #sorted_lst = sorted(ModuleObj.get_data(self).keys(), key=compare)
        for key in sorted_key(list(ModuleObj.get_data(self).keys())):
            value = ModuleObj.get_data(self)[key]
            temp = ''
            if value.get_address().strip() == '':
                temp = 'TRUE'
            else:
                temp = 'FALSE'
            gen_str += '''#define I2C_%s_AUTO_DETECT\t\t\t%s\n''' %(value.get_varName(), temp)
            gen_str += '''#define I2C_%s_CHANNEL\t\t\t%s\n''' %(value.get_varName(), value.get_channel())
            gen_str += '''#define I2C_%s_SLAVE_7_BIT_ADDR\t\t%s\n''' %(value.get_varName(), value.get_address().upper())
            gen_str += '''\n'''

        return gen_str
コード例 #24
0
    def fill_pinfunc_hFile(self):
        gen_str = '''#include \"mt65xx.h\"\n\n'''
        #sorted_list = sorted(ModuleObj.get_data(self).keys(), key = compare)
        for key in sorted_key(ModuleObj.get_data(self).keys()):
        #for key in sorted_list:
            value = ModuleObj.get_data(self)[key]
            for i in range(0, GpioData._modNum):
                mode_name = GpioData.get_modeName(key, i)

                if mode_name != '':
                    lst = []
                    if mode_name.find('//') != -1:
                        lst = mode_name.split('//')
                    else:
                        lst.append(mode_name)

                    for j in range(0, len(lst)):
                        gen_str += '''#define PINMUX_GPIO%s__FUNC_%s (MTK_PIN_NO(%s) | %d)\n''' %(key[4:], lst[j], key[4:], (i + j*8))

            gen_str += '''\n'''
        gen_str += '''\n'''

        return gen_str
コード例 #25
0
    def fill_cFile(self):
        gen_str = ''

        for key in sorted_key(ModuleObj.get_data(self).keys()):
            value = ModuleObj.get_data(self)[key]
            if 'GPIO_INIT_NO_COVER' in value.get_varNames():
                continue

            for varName in value.get_varNames():
                gen_str += '''#define %s\t\t\t(%s | 0x80000000)\n''' % (
                    varName.upper(), key.upper())
                if value.get_eintMode():
                    gen_str += '''#define %s_M_EINT\t\tGPIO_MODE_00\n''' % (
                        varName)
                if self.__gpio_column_enable:
                    temp_list = []
                    for item in GpioData._specMap.keys():
                        regExp = '[_A-Z0-9:]*%s[_A-Z0-9:]*' % (item.upper())
                        pat = re.compile(regExp)
                        for i in range(0, GpioData._modNum):
                            list = value.get_modeVec()
                            mode_name = GpioData.get_modeName(key, i)

                            if list[i] == '1':
                                if mode_name.find('//') != -1:
                                    mode_name = mode_name.split('//')[0]
                            elif list[i] == '2':
                                if mode_name.find('//') != -1:
                                    mode_name = mode_name.split('//')[1]

                            if pat.match(mode_name):
                                if cmp(item, 'eint') == 0 and (
                                    (value.get_eintMode()
                                     or mode_name.find('MD_EINT') != -1)):
                                    continue

                                gen_str += '''#define %s%s\t\tGPIO_MODE_0%d\n''' % (
                                    varName.upper(),
                                    GpioData._specMap[item].upper(), i)
                                temp_list.append(i)
                                break

                    if not value.get_eintMode():
                        list = value.get_modeVec()
                        for i in range(0, GpioData._modNum):
                            mode_name = GpioData.get_modeName(key, i)

                            if list[i] == '0':
                                continue
                            elif list[i] == '1':
                                if mode_name.find('//') != -1:
                                    mode_name = mode_name.split('//')[0]
                            elif list[i] == '2':
                                if mode_name.find('//') != -1:
                                    mode_name = mode_name.split('//')[1]

                            if not i in temp_list:
                                gen_str += '''#define %s_M_%s\t\tGPIO_MODE_0%d\n''' % (
                                    varName, re.sub(r'\d{0,3}$', '',
                                                    mode_name), i)

                    regExp = r'CLKM\d'
                    pat = re.compile(regExp)
                    for i in range(0, GpioData._modNum):
                        mode = GpioData.get_modeName(key, i)
                        if pat.match(mode):
                            gen_str += '''#define %s_CLK\t\tCLK_OUT%s\n''' % (
                                varName, mode[4:])
                            temp = ''
                            if varName in GpioData._freqMap.keys():
                                temp = GpioData._freqMap[varName]
                            else:
                                temp = 'GPIO_CLKSRC_NONE'
                            gen_str += '''#define %s_FREQ\t\t%s\n''' % (
                                varName, temp)
                else:
                    mode_name = GpioData.get_modeName(key, value.get_defMode())
                    bmatch = False
                    for item in GpioData._specMap.keys():
                        regExp = '[_A-Z0-9:]*%s[_A-Z0-9:]*' % (item.upper())
                        pat = re.compile(regExp)
                        if pat.match(mode_name):
                            if cmp(item, 'eint') == 0 and (
                                (value.get_eintMode()
                                 or mode_name.find('MD_EINT') != -1)):
                                continue
                            gen_str += '''#define %s%s\t\tGPIO_MODE_0%d\n''' % (
                                varName.upper(),
                                GpioData._specMap[item].upper(),
                                value.get_defMode())
                            bmatch = True

                    if not bmatch:
                        gen_str += '''#define %s_M_%s\t\tGPIO_MODE_0%d\n''' % (
                            varName.upper(), re.sub(
                                r'\d{0,3}$', '',
                                mode_name), value.get_defMode())

                    if value.get_defMode() != 0:
                        mode_name = GpioData.get_modeName(key, 0)
                        gen_str += '''#define %s_M_%s\t\tGPIO_MODE_0%d\n''' % (
                            varName.upper(), re.sub(r'\d{0,3}$', '',
                                                    mode_name), 0)

                gen_str += '''\n'''

        return gen_str
コード例 #26
0
    def fill_hFile(self):
        gen_str = '''//Configuration for GPIO SMT(Schmidt Trigger) Group output start\n'''
        temp_list = []
        for key in sorted_key(ModuleObj.get_data(self).keys()):
            #for value in ModuleObj.get_data(self).values():
            value = ModuleObj.get_data(self)[key]
            num = value.get_smtNum()
            if num in temp_list or num < 0:
                continue
            else:
                temp_list.append(num)
                if value.get_smtEn():
                    gen_str += '''#define GPIO_SMT_GROUP_%d\t\t1\n''' % (num)
                else:
                    gen_str += '''#define GPIO_SMT_GROUP_%d\t\t0\n''' % (num)

        gen_str += '''\n\n'''

        sorted_list = sorted(ModuleObj.get_data(self).keys(), key=compare)

        for key in sorted_list:
            value = ModuleObj.get_data(self)[key]
            if self.is_i2cPadPin(value.get_modeName(key, value.get_defMode())):
                value.set_inpullEn(False)
                value.set_outHigh(False)
                value.set_inpullSelHigh(False)

            gen_str += '''//Configuration for %s\n''' % (key.upper())

            mode_name = GpioData.get_modeName(key, value.get_defMode())
            val = ''
            if mode_name != '':
                if self.__gpio_column_enable:
                    flag = False
                    if mode_name.find('//') != -1:
                        flag = True

                    if flag:
                        if value.get_modeVec()[value.get_defMode()] == '1':
                            val = str(value.get_defMode())
                        elif value.get_modeVec()[value.get_defMode()] == '2':
                            val = str(value.get_defMode() + GpioData._modNum)
                    else:
                        val = str(value.get_defMode())
                else:
                    val = str(value.get_defMode())

            if len(val) < 2:
                val = '0' + val

            pull_en = ''
            if value.get_inPullEn():
                pull_en = 'ENABLE'
            else:
                pull_en = 'DISABLE'

            pull_sel = ''
            if value.get_inPullSelHigh():
                pull_sel = 'UP'
            else:
                pull_sel = 'DOWN'

            out_high = ''
            if value.get_outHigh():
                out_high = 'ONE'
            else:
                out_high = 'ZERO'

            smt_en = ''
            if value.get_smtEn():
                smt_en = 'ENABLE'
            else:
                smt_en = 'DISABLE'

            ies_en = ''
            if value.get_iesEn():
                ies_en = 'ENABLE'
            else:
                ies_en = 'DISABLE'

            gen_str += '''#define %s_MODE\t\t\tGPIO_MODE_%s\n''' % (
                key.upper(), val)
            gen_str += '''#define %s_DIR\t\t\tGPIO_DIR_%s\n''' % (
                key.upper(), value.get_defDir())
            gen_str += '''#define %s_PULLEN\t\tGPIO_PULL_%s\n''' % (
                key.upper(), pull_en)
            gen_str += '''#define %s_PULL\t\t\tGPIO_PULL_%s\n''' % (
                key.upper(), pull_sel)
            gen_str += '''#define %s_DATAOUT\t\tGPIO_OUT_%s\n''' % (
                key.upper(), out_high)
            gen_str += '''#define %s_SMT\t\t\tGPIO_SMT_%s\n''' % (key.upper(),
                                                                  smt_en)
            gen_str += '''#define %s_IES\t\t\tGPIO_IES_%s\n''' % (key.upper(),
                                                                  ies_en)

            if self.__drvCur:
                drv_cur = 'DRV_UNSUPPORTED'
                if value.get_drvCur() != '':
                    drv_cur = value.get_drvCur()
                gen_str += '''#define %s_DRV\t\t\tGPIO_%s\n''' % (key.upper(),
                                                                  drv_cur)

            gen_str += '''\n'''

        return gen_str
コード例 #27
0
    def fill_dtsiFile(self):
        gen_str = '''&pio {\n\n'''
        gen_str += '''\tgpio_pins_default: gpiodef{\n\t};\n\n'''

        #sorted_list = sorted(ModuleObj.get_data(self).keys(), key = compare)
        for key in sorted_key(ModuleObj.get_data(self).keys()):
            #for key in sorted_list:
            value = ModuleObj.get_data(self)[key]
            gen_str += '''\t%s: gpio@%s {\n''' % (key.lower(), key[4:])
            gen_str += '''\t\tpins_cmd_dat {\n'''
            mode = value.get_defMode()
            mode_name = GpioData.get_modeName(key, mode)
            if self.__gpio_column_enable:
                mode_val = value.get_modeVec()[mode]
                if mode_val == '1':
                    if mode_name.find('//') != -1:
                        mode_name = mode_name.split('//')[0]
                elif mode_val == '2':
                    if mode_name.find('//') != -1:
                        mode_name = mode_name.split('//')[1]

            gen_str += '''\t\t\tpins = <PINMUX_GPIO%s__FUNC_%s>;\n''' % (
                key[4:], mode_name)
            gen_str += '''\t\t\tslew-rate = <%d>;\n''' % (value.ge_defDirInt())

            temp = ''
            if not value.get_inPullEn():
                temp = 'bias-disable;'
            gen_str += '''\t\t\t%s\n''' % (temp)
            if value.get_inPullSelHigh():
                temp = '11'
            else:
                temp = '00'
            gen_str += '''\t\t\tbias-pull-down = <%s>;\n''' % (temp)
            if value.get_outHigh():
                temp = 'high'
            else:
                temp = 'low'
            gen_str += '''\t\t\toutput-%s;\n''' % (temp)
            gen_str += '''\t\t\tinput-schmitt-enable = <%d>;\n''' % (
                value.get_smtEn())
            gen_str += '''\t\t};\n'''
            gen_str += '''\t};\n'''

        gen_str += '''};\n\n'''

        gen_str += '''&gpio {\n'''
        lineLen = 0
        gen_str += '''\tpinctrl-names = "default",'''
        lineLen += 30
        for i in range(0, GpioData._count - 1):
            gen_str += '''"gpio%d",''' % (i)
            if i < 10:
                lineLen += 8
            elif i < 100:
                lineLen += 9
            elif i >= 100:
                lineLen += 10

            if lineLen > 100:
                gen_str += '''\n'''
                lineLen = 0

        gen_str += '''"gpio%d";\n''' % (GpioData._count - 1)
        gen_str += '''\tpinctrl-0 = <&gpio_pins_default>;\n'''

        for i in range(1, GpioData._count):
            gen_str += '''\tpinctrl-%d = <&gpio%d>;\n''' % (i, i - 1)

        gen_str += '''\n'''
        gen_str += '''\tstatus = \"okay\";\n'''
        gen_str += '''};\n'''

        return gen_str