”かふぇルネ“はルネサス製品に関してユーザ同士が自由に会話をするツールであり、回答者はルネサス社内外の方たちとなります。ルネサス製品やソリューションに関して正式な回答をご希望の場合は、ルネサス技術サポート問合せをご使用ください。

【Linux】gpio_to_irqの実装について

RZ/V2M Linux Package [4.19-CIP] V1.2.0の環境で作業をしています。

ターゲット:RZV2M

GPIOの割込み処理を作成するためにgpio_to_irqを実装致しました。
しかし、以下の処理で取得しているpfcの値がcore.cのグローバル変数のpfcと異なっており、
本来設定している pfc->opsのポインタが設定されておらずkernel panicとなっていました。

drivers/pinctrl/rzv2m/core.c

----------------------------------------------------------------------------------------------------------------

static int rzv2m_irq_set_type(struct irq_data *data, unsigned int flow_type)
{
struct rzv2m_irq_priv *irq_priv = irq_data_to_priv(data);
struct rzv2m_pfc *pfc = irq_priv->pfc;

----------------------------------------------------------------------------------------------------------------

正しく、gpio_to_irqを実装するための、設定や手順がありましたら、
ご教授頂けないでしょうか?

ちなみにrq_data_to_priv関数で取得しているpfcをグローバル変数に置き換えると
kernel panicとはなりませんが、enable_irqで例外となります。