*参照元 [#a37eeac5]
#backlinks

*説明 [#l34eaf78]
-パス: [[linux-4.4.1/drivers/gpio/gpiolib.c]]

-FIXME: これは何?
--説明


**引数 [#nec0b631]
-struct gpio_chip *chip
--
--[[linux-4.4.1/gpio_chip]]
-struct pinctrl_dev *pctldev
--
--[[linux-4.4.1/pinctrl_dev]]
-unsigned int gpio_offset
--
-const char *pin_group
--


**返り値 [#ndea4724]
-int
--


**参考 [#zddc35cf]


*実装 [#z71d9d8a]
 /**
  * gpiochip_add_pingroup_range() - add a range for GPIO <-> pin mapping
  * @chip: the gpiochip to add the range for
  * @pctldev: the pin controller to map to
  * @gpio_offset: the start offset in the current gpio_chip number space
  * @pin_group: name of the pin group inside the pin controller
  */
 int gpiochip_add_pingroup_range(struct gpio_chip *chip,
                         struct pinctrl_dev *pctldev,
                         unsigned int gpio_offset, const char *pin_group)
 {
         struct gpio_pin_range *pin_range;
         int ret;
 
-
--[[linux-4.4.1/gpio_pin_range]]

         pin_range = kzalloc(sizeof(*pin_range), GFP_KERNEL);
         if (!pin_range) {
                 chip_err(chip, "failed to allocate pin ranges\n");
                 return -ENOMEM;
         }
 
-
--[[linux-4.4.1/kzalloc()]]
--[[linux-4.4.1/chip_err()]]

         /* Use local offset as range ID */
         pin_range->range.id = gpio_offset;
         pin_range->range.gc = chip;
         pin_range->range.name = chip->label;
         pin_range->range.base = chip->base + gpio_offset;
         pin_range->pctldev = pctldev;
 
         ret = pinctrl_get_group_pins(pctldev, pin_group,
                                         &pin_range->range.pins,
                                         &pin_range->range.npins);
         if (ret < 0) {
                 kfree(pin_range);
                 return ret;
         }
 
-
--[[linux-4.4.1/pinctrl_get_group_pins()]]
--[[linux-4.4.1/kfree()]]

         pinctrl_add_gpio_range(pctldev, &pin_range->range);
 
-
--[[linux-4.4.1/pinctrl_add_gpio_range()]]

         chip_dbg(chip, "created GPIO range %d->%d ==> %s PINGRP %s\n",
                  gpio_offset, gpio_offset + pin_range->range.npins - 1,
                  pinctrl_dev_get_devname(pctldev), pin_group);
 
-
--[[linux-4.4.1/chip_dbg()]]
--[[linux-4.4.1/pinctrl_dev_get_devname()]]

         list_add_tail(&pin_range->node, &chip->pin_ranges);
 
-
--[[linux-4.4.1/list_add_tail()]]

         return 0;
 }
 EXPORT_SYMBOL_GPL(gpiochip_add_pingroup_range);
-
--[[linux-4.4.1/EXPORT_SYMBOL_GPL()]]


*コメント [#e8f4dbad]


トップ   編集 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS