/sys/kernel/debug/pinctrl/44e10800.pinmux/pins
興味のあるピンをのぞいて見ることができます。
pin 38 (44e10898.0) 00000037 pinctrl-single
これはGPIO[2]4
、 またはに対応しP8.10
ます。
kernel で Fedora 21 を使用しています3.17.7-300.fc21.armv7hl
。
マルチプレクサを に変更したいと思い0x27
ます。つまり、これにより、ピンが内部プルダウン抵抗を持つように構成されます (以前はプルアップされていました)。
望ましい出力は次のようになります。
pin 38 (44e10898.0) 00000027 pinctrl-single
何ができるでしょうか?
注: これは/sys/devices/bone_capemgr.*
オングストロームではないため、 はありません。典型的な DTO アプローチでは、ケープ マネージャーを変更して変更をエクスポートします。これはオプションではありません。
編集:tad
の考えからの調査に続いて、私は次のことを行いました:
dtc -I dtb -O dts -o ~/am335x-boneblack.dts /boot/dtb-3.17.7-300.fc21.armv7hl/am335x-boneblack.dtb
. このファイルを次のように編集しました。
...
pinmux@44e10800 {
...
example {
pinctrl-single,pins = <0x898 0x27>;
};
};
...
次に、 で再度コンパイルしdtc
、 に貼り付けて、/boot/dtb-3.17.7-300.fc21.armv7hl/
再起動しました。しかし、何も変わりませんでした。何が起こっていますか?
編集:
Charles Steinkuehler が示した0x800
ように、オフセットから を差し引く必要があり、「何か」は「例」を参照する必要があります。
0x098 0x27
のエントリに追加するとuser_leds_s0
、目的の動作が観察されます。
...
user_leds_s0 {
pinctrl-single,pins = <0x54 0x7 0x58 0x17 0x5c 0x7 0x60 0x170 0x098 0x27>;
linux,phandle = <0x3f>;
phandle = <0x3f>;
};
...
これですべて問題なく、目的の場所に移動できます。ただし、そのピンは実際には user_led ではありません。何らかの別のフィールドにある必要があります。では、「例」フィールドなどを機能させるために必要な「何か」は何ですか?