linux-4.4.1/snd_soc_jack_add_gpios()
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
|
ログイン
]
開始行:
*参照元 [#lbbf9126]
#backlinks
*説明 [#wb85fdfa]
-パス: 複数あり
--CONFIG_GPIOLIB 有効: [[linux-4.4.1/sound/soc/soc-jack.c]]
--CONFIG_GPIOLIB 無効: [[linux-4.4.1/include/sound/soc.h]]
-FIXME: これは何?
--説明
**引数 [#xa83da75]
-struct snd_soc_jack *jack
--
--[[linux-4.4.1/snd_soc_jack]]
-int count
--
-struct snd_soc_jack_gpio *gpios
--
--[[linux-4.4.1/snd_soc_jack_gpio]]
**返り値 [#qe3cacd5]
-int
--
**参考 [#ie37d567]
*実装 [#me3f8391]
**CONFIG_GPIOLIB 有効: sound/soc/soc-jack.c [#wc8c029a]
/**
* snd_soc_jack_add_gpios - Associate GPIO pins with an ...
*
* @jack: ASoC jack
* @count: number of pins
* @gpios: array of gpio pins
*
* This function will request gpio, set data direction a...
* for each gpio in the array.
*/
int snd_soc_jack_add_gpios(struct snd_soc_jack *jack, in...
struct snd_soc_jack_gpio *gpios)
{
int i, ret;
for (i = 0; i < count; i++) {
if (!gpios[i].name) {
dev_err(jack->card->dev,
"ASoC: No name for gpio ...
ret = -EINVAL;
goto undo;
}
-
--[[linux-4.4.1/dev_err()]]
if (gpios[i].desc) {
/* Already have a GPIO descripto...
goto got_gpio;
} else if (gpios[i].gpiod_dev) {
/* Get a GPIO descriptor */
gpios[i].desc = gpiod_get_index(...
...
...
if (IS_ERR(gpios[i].desc)) {
ret = PTR_ERR(gpios[i].d...
dev_err(gpios[i].gpiod_d...
"ASoC: Cannot ge...
i, ret);
goto undo;
}
-
--[[linux-4.4.1/gpiod_get_index()]]
--[[linux-4.4.1/IS_ERR()]]
--[[linux-4.4.1/PTR_ERR()]]
} else {
/* legacy GPIO number */
if (!gpio_is_valid(gpios[i].gpio...
dev_err(jack->card->dev,
"ASoC: Invalid g...
gpios[i].gpio);
ret = -EINVAL;
goto undo;
}
-
--[[linux-4.4.1/gpio_is_valid()]]
ret = gpio_request_one(gpios[i]....
gpios[i]....
if (ret)
goto undo;
-
--[[linux-4.4.1/gpio_request_one()]]
gpios[i].desc = gpio_to_desc(gpi...
-
--[[linux-4.4.1/gpio_to_desc()]]
}
got_gpio:
INIT_DELAYED_WORK(&gpios[i].work, gpio_w...
gpios[i].jack = jack;
-
--[[linux-4.4.1/INIT_DELAYED_WORK()]]
--[[linux-4.4.1/gpio_work()]]
ret = request_any_context_irq(gpiod_to_i...
gpio_handl...
IRQF_TRIGG...
IRQF_TRIGG...
gpios[i].n...
&gpios[i]);
if (ret < 0)
goto err;
-
--[[linux-4.4.1/request_any_context_irq()]]
--[[linux-4.4.1/gpiod_to_irq()]]
--[[linux-4.4.1/gpio_handler()]]
if (gpios[i].wake) {
ret = irq_set_irq_wake(gpiod_to_...
if (ret != 0)
dev_err(jack->card->dev,
"ASoC: Failed to...
i, ret);
}
-
--[[linux-4.4.1/irq_set_irq_wake()]]
/* Expose GPIO value over sysfs for diag...
gpiod_export(gpios[i].desc, false);
-
--[[linux-4.4.1/gpiod_export()]]
/* Update initial jack status */
schedule_delayed_work(&gpios[i].work,
msecs_to_jiffies(g...
}
-
--[[linux-4.4.1/schedule_delayed_work()]]
--[[linux-4.4.1/msecs_to_jiffies()]]
return 0;
err:
gpio_free(gpios[i].gpio);
undo:
snd_soc_jack_free_gpios(jack, i, gpios);
-
--[[linux-4.4.1/gpio_free()]]
--[[linux-4.4.1/snd_soc_jack_free_gpios()]]
return ret;
}
EXPORT_SYMBOL_GPL(snd_soc_jack_add_gpios);
-
--[[linux-4.4.1/EXPORT_SYMBOL_GPL()]]
**CONFIG_GPIOLIB 無効: include/sound/soc.h [#vb57945d]
static inline int snd_soc_jack_add_gpios(struct snd_soc_...
struct snd_soc_...
{
return 0;
}
*コメント [#obe4e477]
終了行:
*参照元 [#lbbf9126]
#backlinks
*説明 [#wb85fdfa]
-パス: 複数あり
--CONFIG_GPIOLIB 有効: [[linux-4.4.1/sound/soc/soc-jack.c]]
--CONFIG_GPIOLIB 無効: [[linux-4.4.1/include/sound/soc.h]]
-FIXME: これは何?
--説明
**引数 [#xa83da75]
-struct snd_soc_jack *jack
--
--[[linux-4.4.1/snd_soc_jack]]
-int count
--
-struct snd_soc_jack_gpio *gpios
--
--[[linux-4.4.1/snd_soc_jack_gpio]]
**返り値 [#qe3cacd5]
-int
--
**参考 [#ie37d567]
*実装 [#me3f8391]
**CONFIG_GPIOLIB 有効: sound/soc/soc-jack.c [#wc8c029a]
/**
* snd_soc_jack_add_gpios - Associate GPIO pins with an ...
*
* @jack: ASoC jack
* @count: number of pins
* @gpios: array of gpio pins
*
* This function will request gpio, set data direction a...
* for each gpio in the array.
*/
int snd_soc_jack_add_gpios(struct snd_soc_jack *jack, in...
struct snd_soc_jack_gpio *gpios)
{
int i, ret;
for (i = 0; i < count; i++) {
if (!gpios[i].name) {
dev_err(jack->card->dev,
"ASoC: No name for gpio ...
ret = -EINVAL;
goto undo;
}
-
--[[linux-4.4.1/dev_err()]]
if (gpios[i].desc) {
/* Already have a GPIO descripto...
goto got_gpio;
} else if (gpios[i].gpiod_dev) {
/* Get a GPIO descriptor */
gpios[i].desc = gpiod_get_index(...
...
...
if (IS_ERR(gpios[i].desc)) {
ret = PTR_ERR(gpios[i].d...
dev_err(gpios[i].gpiod_d...
"ASoC: Cannot ge...
i, ret);
goto undo;
}
-
--[[linux-4.4.1/gpiod_get_index()]]
--[[linux-4.4.1/IS_ERR()]]
--[[linux-4.4.1/PTR_ERR()]]
} else {
/* legacy GPIO number */
if (!gpio_is_valid(gpios[i].gpio...
dev_err(jack->card->dev,
"ASoC: Invalid g...
gpios[i].gpio);
ret = -EINVAL;
goto undo;
}
-
--[[linux-4.4.1/gpio_is_valid()]]
ret = gpio_request_one(gpios[i]....
gpios[i]....
if (ret)
goto undo;
-
--[[linux-4.4.1/gpio_request_one()]]
gpios[i].desc = gpio_to_desc(gpi...
-
--[[linux-4.4.1/gpio_to_desc()]]
}
got_gpio:
INIT_DELAYED_WORK(&gpios[i].work, gpio_w...
gpios[i].jack = jack;
-
--[[linux-4.4.1/INIT_DELAYED_WORK()]]
--[[linux-4.4.1/gpio_work()]]
ret = request_any_context_irq(gpiod_to_i...
gpio_handl...
IRQF_TRIGG...
IRQF_TRIGG...
gpios[i].n...
&gpios[i]);
if (ret < 0)
goto err;
-
--[[linux-4.4.1/request_any_context_irq()]]
--[[linux-4.4.1/gpiod_to_irq()]]
--[[linux-4.4.1/gpio_handler()]]
if (gpios[i].wake) {
ret = irq_set_irq_wake(gpiod_to_...
if (ret != 0)
dev_err(jack->card->dev,
"ASoC: Failed to...
i, ret);
}
-
--[[linux-4.4.1/irq_set_irq_wake()]]
/* Expose GPIO value over sysfs for diag...
gpiod_export(gpios[i].desc, false);
-
--[[linux-4.4.1/gpiod_export()]]
/* Update initial jack status */
schedule_delayed_work(&gpios[i].work,
msecs_to_jiffies(g...
}
-
--[[linux-4.4.1/schedule_delayed_work()]]
--[[linux-4.4.1/msecs_to_jiffies()]]
return 0;
err:
gpio_free(gpios[i].gpio);
undo:
snd_soc_jack_free_gpios(jack, i, gpios);
-
--[[linux-4.4.1/gpio_free()]]
--[[linux-4.4.1/snd_soc_jack_free_gpios()]]
return ret;
}
EXPORT_SYMBOL_GPL(snd_soc_jack_add_gpios);
-
--[[linux-4.4.1/EXPORT_SYMBOL_GPL()]]
**CONFIG_GPIOLIB 無効: include/sound/soc.h [#vb57945d]
static inline int snd_soc_jack_add_gpios(struct snd_soc_...
struct snd_soc_...
{
return 0;
}
*コメント [#obe4e477]
ページ名: