linux-4.4.1/gpiochip_add_pingroup_range()
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
|
ログイン
]
開始行:
*参照元 [#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 ...
* @chip: the gpiochip to add the range for
* @pctldev: the pin controller to map to
* @gpio_offset: the start offset in the current gpio_ch...
* @pin_group: name of the pin group inside the pin cont...
*/
int gpiochip_add_pingroup_range(struct gpio_chip *chip,
struct pinctrl_dev *pctldev,
unsigned int gpio_offset, const ...
{
struct gpio_pin_range *pin_range;
int ret;
-
--[[linux-4.4.1/gpio_pin_range]]
pin_range = kzalloc(sizeof(*pin_range), GFP_KERN...
if (!pin_range) {
chip_err(chip, "failed to allocate pin r...
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->rang...
&pin_range->rang...
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->rang...
-
--[[linux-4.4.1/pinctrl_add_gpio_range()]]
chip_dbg(chip, "created GPIO range %d->%d ==> %s...
gpio_offset, gpio_offset + pin_range->r...
pinctrl_dev_get_devname(pctldev), pin_g...
-
--[[linux-4.4.1/chip_dbg()]]
--[[linux-4.4.1/pinctrl_dev_get_devname()]]
list_add_tail(&pin_range->node, &chip->pin_range...
-
--[[linux-4.4.1/list_add_tail()]]
return 0;
}
EXPORT_SYMBOL_GPL(gpiochip_add_pingroup_range);
-
--[[linux-4.4.1/EXPORT_SYMBOL_GPL()]]
*コメント [#e8f4dbad]
終了行:
*参照元 [#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 ...
* @chip: the gpiochip to add the range for
* @pctldev: the pin controller to map to
* @gpio_offset: the start offset in the current gpio_ch...
* @pin_group: name of the pin group inside the pin cont...
*/
int gpiochip_add_pingroup_range(struct gpio_chip *chip,
struct pinctrl_dev *pctldev,
unsigned int gpio_offset, const ...
{
struct gpio_pin_range *pin_range;
int ret;
-
--[[linux-4.4.1/gpio_pin_range]]
pin_range = kzalloc(sizeof(*pin_range), GFP_KERN...
if (!pin_range) {
chip_err(chip, "failed to allocate pin r...
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->rang...
&pin_range->rang...
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->rang...
-
--[[linux-4.4.1/pinctrl_add_gpio_range()]]
chip_dbg(chip, "created GPIO range %d->%d ==> %s...
gpio_offset, gpio_offset + pin_range->r...
pinctrl_dev_get_devname(pctldev), pin_g...
-
--[[linux-4.4.1/chip_dbg()]]
--[[linux-4.4.1/pinctrl_dev_get_devname()]]
list_add_tail(&pin_range->node, &chip->pin_range...
-
--[[linux-4.4.1/list_add_tail()]]
return 0;
}
EXPORT_SYMBOL_GPL(gpiochip_add_pingroup_range);
-
--[[linux-4.4.1/EXPORT_SYMBOL_GPL()]]
*コメント [#e8f4dbad]
ページ名: