richard84
2019年4月10日 8時59分
佐藤と申します。
お世話になります。
Armadillo-X1の拡張コネクタCON8を使用して、SIMスロットを接続したいと考えております。
(実際に使用するのは、NFCのセキュアアクセスモジュールでISO7816接続)
このために、i.MX 7DualのSIM2ポートを使用したいのですがDeviceTreeの修正が必要かと思います。
初歩的な質問で恐縮ですが、SIM2ポートを使用可能にするDeviceTreeの修正方法についてご教示いただけないでしょうか。
以上、よろしくお願いいたします。
コメント
richard84
fumihito_yamaguchi
at_mizo
溝渕です。
> 同じくSIM2ポートを使用したいのですが、
> 溝渕様にご教示頂いたソースを拝見しているのですが、
> dtsの修正方法がわかりません。
>
> 詳細をご教示頂けないでしょうか。
○ 編集対象のDTS
Armadillo-X1の場合は次のDTSを編集します。
linux-4.9.x-at/arch/arm/boot/dts/armadillo_x1.dts
このDTSに、SIM2のノードと、利用するピンを定義します。
○ 参考DTS
以下のDTSでSIM1を利用しているので、参考にできます。
linux-4.9.x-at/arch/arm/boot/dts/imx7d-sdb.dts
以下の"sim1"がSIM1のノードで、pinctrl_sim1_1がピンの定義への参照です。
&sim1 { pinctrl-names = "default"; pinctrl-0 = <&pinctrl_sim1_1>; port = <0>; sven_low_active; status = "okay"; };
sim1の実体は、次のDTSに定義されています。
linux-4.9.x-at/arch/arm/boot/dts/imx7d.dtsi
pinctrl_sim1_1の実体は次の通りです。
pinctrl_sim1_1: sim1grp-1 { fsl,pins = < MX7D_PAD_EPDC_DATA10__SIM1_PORT1_RST_B 0x77 MX7D_PAD_EPDC_DATA12__SIM1_PORT1_PD 0x77 MX7D_PAD_EPDC_DATA11__SIM1_PORT1_SVEN 0x77 MX7D_PAD_EPDC_DATA09__SIM1_PORT1_CLK 0x73 MX7D_PAD_EPDC_DATA08__SIM1_PORT1_TRXD 0x73 >; };
各ピンは、次のヘッダファイルに定義されています。
linux-4.9.x-at/arch/arm/boot/dts/imx7d-pinfunc.h
ピンのマクロの命名規則は次の通りです。
MX7D_PAD_[ピン名]__[機能名]
○ DTSの編集
sim1の実体は、次のDTSに定義されています。
linux-4.9.x-at/arch/arm/boot/dts/imx7d.dtsi
sim1の例と同様に、"&sim2"のように参照できます。ピンについても、
"imx7d-pinfunc.h"の中から(SIM2の機能を持つ)利用したいピンを利用します。
fumihito_yamaguchi
溝渕様
早速のご回答ありがとうございました。
詳細に説明をしてくださり感謝しております。
1点教えて頂きたいです。
>
> pinctrl_sim1_1: sim1grp-1 { > fsl,pins = < > MX7D_PAD_EPDC_DATA10__SIM1_PORT1_RST_B 0x77 > MX7D_PAD_EPDC_DATA12__SIM1_PORT1_PD 0x77 > MX7D_PAD_EPDC_DATA11__SIM1_PORT1_SVEN 0x77 > MX7D_PAD_EPDC_DATA09__SIM1_PORT1_CLK 0x73 > MX7D_PAD_EPDC_DATA08__SIM1_PORT1_TRXD 0x73 > >; > }; >
>
ピンマクロ名の後の 0x77 や0x73はどこを参照すると値を把握することができますでしょうか。
数値とピンマクロの関係を把握したいです。
お手数をおかけいたしますが、ご教示のほどよろしくお願いいたします。
---
山口
at_mizo
溝渕です。
> ピンマクロ名の後の 0x77 や0x73はどこを参照すると値を把握することができますでしょうか。
> 数値とピンマクロの関係を把握したいです。
以下を例に説明します。
>> MX7D_PAD_EPDC_DATA10__SIM1_PORT1_RST_B 0x77
まず、0x77は主にパッド設定を示しています。パッド設定の意味については、
NXP社から提供されているi.MX 7Dのドキュメントを参照します。
NXP社のi.MX 7Dページ[1]から、"i.MX 7Dual Applications Processor Reference Manual"をダウンロードしてください。ユーザー登録が必要だと思います。
EPDC_DATA10ピンのパッド設定は、次の章で説明されています。
8.2.7.175 SW_PAD_CTL_PAD_EPDC_DATA10 SW PAD Control Register (IOMUXC_SW_PAD_CTL_PAD_EPDC_DATA10)
パッド設定のbit 31,30は、Linuxカーネルで特別な扱いがなされます。
bit 31が"1"の場合、パッド設定を実行しません。リセット値または、ブートローダー設定値がそのまま利用されます。
bit 30が"1"の場合、SIONを有効にします。SIONの説明については、次の章で説明されています。
8.2.3.2 SW Loopback through SION bit
[1]: https://www.nxp.com/products/processors-and-microcontrollers/arm-based-…
fumihito_yamaguchi
at_mizo
2019年4月10日 10時03分
溝渕です。
> SIM2ポートを使用可能にするDeviceTreeの修正方法についてご教示いただけないでしょうか。
以下のDTSは参考になりますか?
linux-4.9.x-at/arch/arm/boot/dts/imx7d-sdb.dts
上記ではsim1を利用しています。