예제 #1
0
struct pinctrl_map * amlogic_register_mux_map(struct device *dev,const char *state_name,
					const char *func,const char *group)
{
	struct pinctrl_map * map1;
	int ret;
	map1=kzalloc(sizeof(struct pinctrl_map),GFP_KERNEL);
	if(!(map1)){
		printk("%s:mallo error\n",__func__);
		return  NULL;
	}
	map1->dev_name=dev_name(dev);
	map1->ctrl_dev_name=pctdev_name;
	map1->type=PIN_MAP_TYPE_MUX_GROUP;
	if(state_name)
		map1->name=state_name;
	else
		map1->name=PINCTRL_STATE_DEFAULT;
	map1->data.mux.function=func;
	map1->data.mux.group=group;
	ret=pinctrl_register_map(map1, 1, false, false);
	if(!ret)
		return map1;
	else
		kfree(map1);
	return NULL;
}
struct pinctrl_map * amlogic_register_config_map(struct device *dev,const char *state_name,const char *group,
					unsigned long *configs,unsigned int num_configs)
{
	struct pinctrl_map * map1;
	int ret;
	map1=kzalloc(sizeof(struct pinctrl_map),GFP_KERNEL);
	if(!(map1)){
		printk("%s:mallo error\n",__func__);
		return  NULL;
	}
	map1->dev_name=dev_name(dev);
	map1->ctrl_dev_name=pctdev_name;
	map1->type=PIN_MAP_TYPE_CONFIGS_GROUP;
	if(state_name)
		map1->name=state_name;
	else
		map1->name=PINCTRL_STATE_DEFAULT;
	map1->data.configs.group_or_pin=group;
	map1->data.configs.configs=configs;
	map1->data.configs.num_configs=num_configs;
	ret=pinctrl_register_map(map1, 1, false);
	if(!ret)
		return map1;
	else
		kfree(map1);
	return NULL;
}