Example #1
0
    def refGpio(self, eint_num, flag):
        gpio_vec= []
        gpio_num = EintData.get_gpioNum(string.atoi(eint_num))

        if gpio_num >= 0:
            gpio_vec.append(gpio_num)
            if flag:
                item_data = self.__gpio_obj.get_gpioData(gpio_num)
                mode_idx = item_data.get_defMode()
                mode_name = EintData.get_modeName(gpio_num, mode_idx)
                if re.match(r'GPIO[\d]+', mode_name) or re.match(r'EINT[\d]+', mode_name):
                    return gpio_vec

        for key in EintData._builtin_map.keys():
            if string.atoi(eint_num) == string.atoi(key):
                temp_map = EintData._builtin_map[key]
                for key in temp_map.keys():
                    gpio_vec.append(key)

                if flag:
                    for item in temp_map.keys():
                        item_data = self.__gpio_obj.get_gpioData(string.atoi(item))

                        if item_data.get_defMode() == string.atoi(temp_map[item].split(':')[0]):
                            gpio_vec = []
                            gpio_vec.append(item)
                            return gpio_vec

                break

        return gpio_vec
Example #2
0
    def refGpio_defMode(self, eint_num, flag):
        refGpio_defMode = 0

        for key in EintData._builtin_map.keys():
            if string.atoi(eint_num) == string.atoi(key):
                temp_map = EintData._builtin_map[key]

                if flag:
                    for item in temp_map.keys():
                        item_data = self.get_gpioObj().get_gpioData(string.atoi(item))

                        if item_data.get_defMode() == string.atoi(temp_map[item].split(':')[0]):
                            refGpio_defMode = item_data.get_defMode()
                            return refGpio_defMode

                break

        gpio_num = EintData.get_gpioNum(string.atoi(eint_num))
        if gpio_num >= 0:
            if flag:
                item_data = self.get_gpioObj().get_gpioData(gpio_num)
                refGpio_defMode = item_data.get_defMode()
                mode_name = EintData.get_modeName(gpio_num, refGpio_defMode)
                if re.match(r'GPIO[\d]+', mode_name) or re.match(r'EINT[\d]+', mode_name):
                    return refGpio_defMode

        return refGpio_defMode
Example #3
0
    def get_cfgInfo(self):
        cp = ConfigParser.ConfigParser(allow_no_value=True)
        cp.read(ModuleObj.get_figPath())

        ops = cp.options('GPIO')
        map = {}
        mode_map = {}
        for op in ops:
            value = cp.get('GPIO', op)
            list = re.split(r' +|\t+', value)

            map[string.atoi(re.findall(r'\d+', op)[0])] = string.atoi(
                list[len(list) - 2])
            mode_map[op] = list[0:len(list) - 2]

        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(':')
            for item in str_list:
                sub_list = item.split('/')
                EintData._int_eint[sub_list[0]] = sub_list[1]

        if cp.has_option('EINT', 'BUILTIN_EINT'):
            info = cp.get('EINT', 'BUILTIN_EINT')
            str_list = info.split(':')
            for builtin_item in str_list:
                builtin_list = builtin_item.split('/')
                #EintData._builtin_map[builtin_list[0]] = builtin_list[1]

                temp = 'BUILTIN_%s' % (builtin_list[0])
                if cp.has_option('EINT', temp):
                    info = cp.get('EINT', temp)
                    str_list = info.split(':')
                    temp_map = {}
                    for item in str_list:
                        sub_list = item.split('/')
                        temp_map[
                            sub_list[0]] = sub_list[1] + ':' + builtin_list[1]

                    EintData._builtin_map[builtin_list[0]] = temp_map
                    EintData._builtin_eint_count += len(temp_map)

        self.__gpio_obj.set_eint_map_table(EintData._map_table)
Example #4
0
    def fill_mappingTable(self):
        gen_str = '''&eintc {\n'''
        count = 0

        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'''
        gen_str += '''\tmediatek,mapping_table = '''

        sorted_list = sorted(EintData.get_mapTable().keys())
        for key in sorted_list:
            value = EintData.get_mapTable()[key]
            if value != -1:
                gen_str += '''<%d %d>,\n\t\t\t\t\t''' % (key, value)

        sorted_list = sorted(EintData.get_internalEint().keys())
        for key in sorted_list:
            value = EintData.get_internalEint()[key]
            gen_str += '''<%s %s>,\n\t\t\t\t\t''' % (value, key)
        #for (key, value) in EintData._int_eint.items():
        #gen_str += '''<%s %s>,\n\t\t\t\t\t''' %(value, key)

        gen_str = gen_str[0:len(gen_str) - 7]
        gen_str += ''';\n'''
        gen_str += '''\tmediatek,builtin_entry = <%d>;\n''' % (
            EintData._builtin_eint_count)
        if len(EintData._builtin_map) == 0:
            gen_str += '''};\n\n'''
            return gen_str

        gen_str += '''\t\t\t\t\t/* gpio, built-in func mode, built-in eint */\n'''
        gen_str += '''\tmediatek,builtin_mapping = '''
        for (key, value) in EintData._builtin_map.items():
            for (sub_key, sub_value) in value.items():
                gen_str += '''<%s %s %s>, /* %s */\n\t\t\t\t\t''' % (
                    sub_key, sub_value[0:1], key, sub_value)

        gen_str = gen_str[0:gen_str.rfind(',')]
        gen_str += ';'
        gen_str += '''};\n\n'''

        return gen_str
Example #5
0
 def get_polarity(self):
     return EintData.get_polarity(self)
Example #6
0
 def set_polarity(self, polarity):
     EintData.set_polarity(self, polarity)
Example #7
0
 def get_debounceEnable(self):
     return EintData.get_debounceEnable(self)
Example #8
0
 def set_debounceEnable(self, enable):
     EintData.set_debounceEnable(self, enable)
Example #9
0
 def get_sensitiveLevel(self):
     return EintData.get_sensitiveLevel(self)
Example #10
0
 def set_sensitiveLevel(self, level):
     EintData.set_sensitiveLevel(self, level)
Example #11
0
 def __init__(self):
     EintData.__init__(self)
     self.__dedicatedEn = False
     self.__srcPin = ''
     self.__socetType = ''
Example #12
0
    def read(self, node):
        nodes = node.childNodes

        for node in nodes:
            if node.nodeType == xml.dom.Node.ELEMENT_NODE:
                if cmp(node.nodeName, 'count') == 0:
                    self.__count = node.childNodes[0].nodeValue
                    continue

                varNode = node.getElementsByTagName('varName')
                detNode = node.getElementsByTagName('debounce_time')
                polNode = node.getElementsByTagName('polarity')
                senNode = node.getElementsByTagName('sensitive_level')
                deeNode = node.getElementsByTagName('debounce_en')

                data = EintData()
                if len(varNode):
                    data.set_varName(varNode[0].childNodes[0].nodeValue)

                if len(detNode):
                    data.set_debounceTime(detNode[0].childNodes[0].nodeValue)

                if len(polNode):
                    data.set_polarity(polNode[0].childNodes[0].nodeValue)

                if len(senNode):
                    data.set_sensitiveLevel(senNode[0].childNodes[0].nodeValue)

                if len(deeNode):
                    data.set_debounceEnable(deeNode[0].childNodes[0].nodeValue)

                ModuleObj.set_data(self, node.nodeName, data)

        return True
Example #13
0
    def get_gpioNum(self, eint_num):
        for (key, value) in EintData.get_mapTable().items():
            if cmp(eint_num, value) == 0:
                return key

        return -1