Loading drivers/pinctrl/pinconf.c +27 −4 Original line number Diff line number Diff line Loading @@ -379,8 +379,16 @@ int pinconf_apply_setting(struct pinctrl_setting const *setting) void pinconf_show_map(struct seq_file *s, struct pinctrl_map const *map) { struct pinctrl_dev *pctldev; const struct pinconf_ops *confops; int i; pctldev = get_pinctrl_dev_from_devname(map->ctrl_dev_name); if (pctldev) confops = pctldev->desc->confops; else confops = NULL; switch (map->type) { case PIN_MAP_TYPE_CONFIGS_PIN: seq_printf(s, "pin "); Loading @@ -394,8 +402,15 @@ void pinconf_show_map(struct seq_file *s, struct pinctrl_map const *map) seq_printf(s, "%s\n", map->data.configs.group_or_pin); for (i = 0; i < map->data.configs.num_configs; i++) seq_printf(s, "config %08lx\n", map->data.configs.configs[i]); for (i = 0; i < map->data.configs.num_configs; i++) { seq_printf(s, "config "); if (confops && confops->pin_config_config_dbg_show) confops->pin_config_config_dbg_show(pctldev, s, map->data.configs.configs[i]); else seq_printf(s, "%08lx", map->data.configs.configs[i]); seq_printf(s, "\n"); } } void pinconf_show_setting(struct seq_file *s, Loading @@ -403,6 +418,7 @@ void pinconf_show_setting(struct seq_file *s, { struct pinctrl_dev *pctldev = setting->pctldev; const struct pinctrl_ops *pctlops = pctldev->desc->pctlops; const struct pinconf_ops *confops = pctldev->desc->confops; struct pin_desc *desc; int i; Loading @@ -428,8 +444,15 @@ void pinconf_show_setting(struct seq_file *s, * FIXME: We should really get the pin controler to dump the config * values, so they can be decoded to something meaningful. */ for (i = 0; i < setting->data.configs.num_configs; i++) seq_printf(s, " %08lx", setting->data.configs.configs[i]); for (i = 0; i < setting->data.configs.num_configs; i++) { seq_printf(s, " "); if (confops && confops->pin_config_config_dbg_show) confops->pin_config_config_dbg_show(pctldev, s, setting->data.configs.configs[i]); else seq_printf(s, "%08lx", setting->data.configs.configs[i]); } seq_printf(s, "\n"); } Loading include/linux/pinctrl/pinconf.h +5 −0 Original line number Diff line number Diff line Loading @@ -33,6 +33,8 @@ struct seq_file; * per-device info for a certain pin in debugfs * @pin_config_group_dbg_show: optional debugfs display hook that will provide * per-device info for a certain group in debugfs * @pin_config_config_dbg_show: optional debugfs display hook that will decode * and display a driver's pin configuration parameter */ struct pinconf_ops { #ifdef CONFIG_GENERIC_PINCONF Loading @@ -56,6 +58,9 @@ struct pinconf_ops { void (*pin_config_group_dbg_show) (struct pinctrl_dev *pctldev, struct seq_file *s, unsigned selector); void (*pin_config_config_dbg_show) (struct pinctrl_dev *pctldev, struct seq_file *s, unsigned long config); }; #endif Loading Loading
drivers/pinctrl/pinconf.c +27 −4 Original line number Diff line number Diff line Loading @@ -379,8 +379,16 @@ int pinconf_apply_setting(struct pinctrl_setting const *setting) void pinconf_show_map(struct seq_file *s, struct pinctrl_map const *map) { struct pinctrl_dev *pctldev; const struct pinconf_ops *confops; int i; pctldev = get_pinctrl_dev_from_devname(map->ctrl_dev_name); if (pctldev) confops = pctldev->desc->confops; else confops = NULL; switch (map->type) { case PIN_MAP_TYPE_CONFIGS_PIN: seq_printf(s, "pin "); Loading @@ -394,8 +402,15 @@ void pinconf_show_map(struct seq_file *s, struct pinctrl_map const *map) seq_printf(s, "%s\n", map->data.configs.group_or_pin); for (i = 0; i < map->data.configs.num_configs; i++) seq_printf(s, "config %08lx\n", map->data.configs.configs[i]); for (i = 0; i < map->data.configs.num_configs; i++) { seq_printf(s, "config "); if (confops && confops->pin_config_config_dbg_show) confops->pin_config_config_dbg_show(pctldev, s, map->data.configs.configs[i]); else seq_printf(s, "%08lx", map->data.configs.configs[i]); seq_printf(s, "\n"); } } void pinconf_show_setting(struct seq_file *s, Loading @@ -403,6 +418,7 @@ void pinconf_show_setting(struct seq_file *s, { struct pinctrl_dev *pctldev = setting->pctldev; const struct pinctrl_ops *pctlops = pctldev->desc->pctlops; const struct pinconf_ops *confops = pctldev->desc->confops; struct pin_desc *desc; int i; Loading @@ -428,8 +444,15 @@ void pinconf_show_setting(struct seq_file *s, * FIXME: We should really get the pin controler to dump the config * values, so they can be decoded to something meaningful. */ for (i = 0; i < setting->data.configs.num_configs; i++) seq_printf(s, " %08lx", setting->data.configs.configs[i]); for (i = 0; i < setting->data.configs.num_configs; i++) { seq_printf(s, " "); if (confops && confops->pin_config_config_dbg_show) confops->pin_config_config_dbg_show(pctldev, s, setting->data.configs.configs[i]); else seq_printf(s, "%08lx", setting->data.configs.configs[i]); } seq_printf(s, "\n"); } Loading
include/linux/pinctrl/pinconf.h +5 −0 Original line number Diff line number Diff line Loading @@ -33,6 +33,8 @@ struct seq_file; * per-device info for a certain pin in debugfs * @pin_config_group_dbg_show: optional debugfs display hook that will provide * per-device info for a certain group in debugfs * @pin_config_config_dbg_show: optional debugfs display hook that will decode * and display a driver's pin configuration parameter */ struct pinconf_ops { #ifdef CONFIG_GENERIC_PINCONF Loading @@ -56,6 +58,9 @@ struct pinconf_ops { void (*pin_config_group_dbg_show) (struct pinctrl_dev *pctldev, struct seq_file *s, unsigned selector); void (*pin_config_config_dbg_show) (struct pinctrl_dev *pctldev, struct seq_file *s, unsigned long config); }; #endif Loading