私はDuovero ParlorボードにDTSファイルを使用しています。ボードにいくつかのSPIデバイスを追加しました。私の最初のモニター(モニター)はうまく機能するので、私の項目は少なくとも正確です。 NXP SC16IS752 UARTコントローラへのSPI接続をサポートするエントリを追加したいです。 (最近lmlに試してみたいパッチがあります。)
これは私のアイテムです。
clocks {
clk14m: oscillator {
#clock-cells = <0>;
compatible = "fixed-clock";
clock-frequency = <14745600>;
};
};
&mcspi4 {
sc16is752: sc16is752@0 {
compatible = "nxp,sc16is752";
reg = <0>;
spi-max-frequency = <4000000>;
clocks = <&clk14m>;
interrupt-parent = <&gpio4>;
interrupt = <15 IRQ_TYPE_EDGE_FALLING>;
gpio-controller;
#gpio-cells = <2>;
};
};
ある程度合うようです。 SPIバスは4MHz、モード0です。割り込みはGPIO 111、つまり<&GPIO 4 15>です。私の問題は時計を指定することです。チップに直接接続されたスタンドアロン水晶発振器です。それでは、この時計は正しいですか?
時計が別にあってどこに置くべきかわからないので「時計」という言葉が聞きやすいのですが完全推測です。 dtsをコンパイルすると構文エラーが原因で失敗するため、どこかに問題があります。
#gpio-cellsが正しいかどうかはわかりません。これは、GPIO番号が200で始まり増加することを意味しますか?
答え1
クロックの問題は、TIクロックドメインの外側で宣言されたクロックが3.17で解析されず、正しく設定されていないことです。この問題はカーネルバージョン4.0.5で修正されました。
必要な変更は、/arch/arm/mach-omap2/io.c の末尾にある omap_clk_init 関数で発生します。この関数には、3.17に存在しないof_clk_init(NULL)への追加呼び出しがあります。
ここに関連する議論があります。http://patchwork.ozlabs.org/patch/375753/