Using the two LPSPI ports on the FRDM-MCXW71 with Zephyr?

キャンセル
次の結果を表示 
表示  限定  | 次の代わりに検索 
もしかして: 

Using the two LPSPI ports on the FRDM-MCXW71 with Zephyr?

181件の閲覧回数
gja
Contributor II

Hello,

We want to use the two LPSPI ports on the FRDM-MCXW71 in a Zephyr application.

However when I check in Zephyr 4.4.0, under

zephyrproject/zephyr/boards/nxp/frdm_mcxw71

I find the following files:

  • frdm_mcxw_71.dts file.
    It only has an entry for &lpspi1. (used in the spi flash demo)
    The entry for &lpspi0 is not present?
  • frdm_mcxw71-pinctrl.dtsi
    Also only an entry for &lpspi1

Is there an example on how to use lpspi0 as well?

Which files outside of the regular zephyr project files (.overlay and prj.conf) need to be modified?

Thanks.

0 件の賞賛
返信
3 返答(返信)

107件の閲覧回数
sofiaurueta
NXP Employee
NXP Employee

Hello, hope you are doing well.

Both lpspi0 and lpspi1 are already declared at the SoC level in zephyr/dts/arm/nxp/mcx/nxp_mcxw7x_common.dtsi with all required hardware properties (registers, interrupts, clocks, FIFO sizes), but set to status = "disabled" by default. The board file frdm_mcxw71.dts only enables lpspi1 but lpspi0 can be enabled in the same way through your application overlay file.

You can take the existing lpspi1 configuration as reference. The basic overlay would look something like this, which you can then extend with your custom device implementation:

&pinctrl {
    pinmux_lpspi0: pinmux_lpspi0 {
        group0 {
            pinmux = <LPSPI0_SIN_PTA17>,
                     <LPSPI0_SCK_PTA19>,
                     <LPSPI0_SOUT_PTA18>,
                     <LPSPI0_PCS0_PTA16>;
            slew-rate = "fast";
            drive-strength = "low";
        };
    };
};

&lpspi0 {
    status = "okay";
    pinctrl-0 = <&pinmux_lpspi0>;
    pinctrl-names = "default";
};

 

Best regards,
Sofia.

0 件の賞賛
返信

100件の閲覧回数
gja
Contributor II

Hi Sofia,

I have created a minimal application with the overlay additions as suggested.

The application compiled, but binding the spi devices still failed.

Only when a label is added in the overlay sections, the binding works.

In overlay:

&lpspi0 {
    ...
    label = "LPSPI_0";
}

&lpspi1 {
    ...
    label = "LPSPI_1";
}

In main.c:

const struct device *lpspi0_dev; 
lpspi0_dev = device_get_binding("LPSPI_0"); 
printk("%p\n,lpspi0_dev);

Doing this for both lpspi0 and lpspi1 seems to work now.

 

Is it expected to create those labels with each application? 


Thanks,

Geert

 

0 件の賞賛
返信

150件の閲覧回数
gja
Contributor II

I noticed a specific driver in zephyrproject/zephyr/drivers/spi/spi_nxp_lpspi.

Not sure how this can be used for addressing both lpspi ports though.

タグ(1)
0 件の賞賛
返信
%3CLINGO-SUB%20id%3D%22lingo-sub-2411208%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3EFRDM-MCXW71%E3%81%AE2%E3%81%A4%E3%81%AELPSPI%E3%83%9D%E3%83%BC%E3%83%88%E3%82%92Zephyr%E3%81%A7%E4%BD%BF%E3%81%86%E3%81%AE%E3%81%AF%E3%81%A9%E3%81%86%E3%81%A7%E3%81%99%E3%81%8B%3F%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-2411208%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CP%3E%E3%81%93%E3%82%93%E3%81%AB%E3%81%A1%E3%81%AF%E3%80%81%3C%2FP%3E%3CP%3EFRDM-MCXW71%E3%81%AE2%E3%81%A4%E3%81%AELPSPI%E3%83%9D%E3%83%BC%E3%83%88%E3%82%92Zephyr%E3%82%A2%E3%83%97%E3%83%AA%E3%82%B1%E3%83%BC%E3%82%B7%E3%83%A7%E3%83%B3%E3%81%A7%E4%BD%BF%E3%81%84%E3%81%9F%E3%81%84%E3%81%A8%E8%80%83%E3%81%88%E3%81%A6%E3%81%84%E3%81%BE%E3%81%99%E3%80%82%3C%2FP%3E%3CP%3E%E3%81%97%E3%81%8B%E3%81%97%E3%80%81Zephyr%204.4.0%E3%81%A7%E7%A2%BA%E8%AA%8D%E3%81%99%E3%82%8B%E3%81%A8%E3%80%81%E4%B8%8B%3C%2FP%3E%3CP%3EZephyrproject%2FZephyr%2F%E3%83%9C%E3%83%BC%E3%83%89%2FNXP%2Ffrdm_mcxw71%3C%2FP%3E%3CP%3E%E4%BB%A5%E4%B8%8B%E3%81%AE%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E3%81%8C%E8%A6%8B%E3%81%A4%E3%81%8B%E3%82%8A%E3%81%BE%E3%81%97%E3%81%9F%E3%80%82%3C%2FP%3E%3CUL%3E%3CLI%3Efrdm_mcxw_71.dts%20%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E3%80%82%3CBR%20%2F%3E%E3%81%9D%E3%81%93%E3%81%AB%E3%81%AF%26amp%3Blpspi1%E3%81%AE%E3%82%A8%E3%83%B3%E3%83%88%E3%83%AA%E3%81%97%E3%81%8B%E3%81%82%E3%82%8A%E3%81%BE%E3%81%9B%E3%82%93%E3%80%82%EF%BC%88SPI%E3%83%95%E3%83%A9%E3%83%83%E3%82%B7%E3%83%A5%E3%83%87%E3%83%A2%E3%81%A7%E4%BD%BF%E7%94%A8%EF%BC%89%3CBR%20%2F%3E%20%26amp%3Blpspi0%20%E3%81%AE%E3%82%A8%E3%83%B3%E3%83%88%E3%83%AA%E3%81%8C%E5%AD%98%E5%9C%A8%E3%81%97%E3%81%BE%E3%81%9B%E3%82%93%E3%80%82%3C%2FLI%3E%3CLI%3Efrdm_mcxw71-pinctrl.dtsi%3CBR%20%2F%3E%E3%81%BE%E3%81%9F%E3%80%81%26amp%3Blpspi1%20%E3%81%AE%E3%82%A8%E3%83%B3%E3%83%88%E3%83%AA%E3%81%AE%E3%81%BF%3C%2FLI%3E%3C%2FUL%3E%3CP%3Elpspi0%E3%81%AE%E4%BD%BF%E3%81%84%E6%96%B9%E3%81%AB%E9%96%A2%E3%81%99%E3%82%8B%E4%BE%8B%E3%81%AF%E3%81%82%E3%82%8A%E3%81%BE%E3%81%99%E3%81%8B%EF%BC%9F%3C%2FP%3E%3CP%3E%E9%80%9A%E5%B8%B8%E3%81%AEZephyr%E3%83%97%E3%83%AD%E3%82%B8%E3%82%A7%E3%82%AF%E3%83%88%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB(.overlay%E3%82%84prj.conf)%E4%BB%A5%E5%A4%96%E3%81%A7%E3%80%81%E3%81%A9%E3%81%AE%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E3%82%92%E5%A4%89%E6%9B%B4%E3%81%99%E3%82%8B%E5%BF%85%E8%A6%81%E3%81%8C%E3%81%82%E3%82%8A%E3%81%BE%E3%81%99%E3%81%8B%3F%3C%2FP%3E%3CP%3E%E3%81%82%E3%82%8A%E3%81%8C%E3%81%A8%E3%81%86%E3%81%94%E3%81%96%E3%81%84%E3%81%BE%E3%81%99%E3%80%82%3C%2FP%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-2411363%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%20translate%3D%22no%22%3ERe%3A%20Using%20the%20two%20LPSPI%20ports%20on%20the%20FRDM-MCXW71%20with%20Zephyr%3F%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-2411363%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CP%3Ezephyrproject%2Fzephyr%2Fdrivers%2Fspi%2Fspi_nxp_lpspi%E3%81%A7%E7%89%B9%E5%AE%9A%E3%81%AE%E3%83%89%E3%83%A9%E3%82%A4%E3%83%90%E3%83%BC%E3%82%92%E8%A6%8B%E3%81%A4%E3%81%91%E3%81%BE%E3%81%97%E3%81%9F%E3%80%82%3C%2FP%3E%3CP%3E%E3%81%9F%E3%81%A0%E3%80%81%E4%B8%A1%E6%96%B9%E3%81%AELPSPI%E3%83%9D%E3%83%BC%E3%83%88%E3%81%AB%E3%81%A9%E3%81%86%E4%BD%BF%E3%81%88%E3%82%8B%E3%81%AE%E3%81%8B%E3%81%AF%E3%82%88%E3%81%8F%E3%82%8F%E3%81%8B%E3%82%8A%E3%81%BE%E3%81%9B%E3%82%93%E3%80%82%3C%2FP%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-2412855%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%20translate%3D%22no%22%3ERe%3A%20Using%20the%20two%20LPSPI%20ports%20on%20the%20FRDM-MCXW71%20with%20Zephyr%3F%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-2412855%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CP%3E%E3%81%93%E3%82%93%E3%81%AB%E3%81%A1%E3%81%AF%E3%80%81%E3%81%8A%E5%85%83%E6%B0%97%E3%81%A7%E3%81%8A%E9%81%8E%E3%81%94%E3%81%97%E3%81%A7%E3%81%97%E3%82%87%E3%81%86%E3%81%8B%E3%80%82%3C%2FP%3E%0A%3CP%20lang%3D%22es-419%22%3Elpspi0%E3%81%A8lpspi1%E3%81%AF%E3%80%81%E3%81%99%E3%81%A7%E3%81%ABzephyr%2Fdts%2Farm%2Fnxp%2Fmcx%2Fnxp_mcxw7x_common.dtsi%E3%81%A7SoC%E3%83%AC%E3%83%99%E3%83%AB%E3%81%A7%E5%AE%A3%E8%A8%80%E3%81%95%E3%82%8C%E3%81%A6%E3%81%8A%E3%82%8A%E3%80%81%E5%BF%85%E8%A6%81%E3%81%AA%E3%83%8F%E3%83%BC%E3%83%89%E3%82%A6%E3%82%A7%E3%82%A2%E3%83%97%E3%83%AD%E3%83%91%E3%83%86%E3%82%A3(%E3%83%AC%E3%82%B8%E3%82%B9%E3%82%BF%E3%80%81%E5%89%B2%E3%82%8A%E8%BE%BC%E3%81%BF%E3%80%81%E3%82%AF%E3%83%AD%E3%83%83%E3%82%AF%E3%80%81FIFO%E3%82%B5%E3%82%A4%E3%82%BA)%E3%81%8C%E3%81%99%E3%81%B9%E3%81%A6%E5%90%AB%E3%81%BE%E3%82%8C%E3%81%A6%E3%81%84%E3%81%BE%E3%81%99%E3%81%8C%E3%80%81%E3%83%87%E3%83%95%E3%82%A9%E3%83%AB%E3%83%88%E3%81%A7%E3%81%AFstatus%20%3D%20%22disabled%22%E3%81%AB%E8%A8%AD%E5%AE%9A%E3%81%95%E3%82%8C%E3%81%A6%E3%81%84%E3%81%BE%E3%81%99%E3%80%82%E3%83%9C%E3%83%BC%E3%83%89%E3%83%95%E3%82%A1%E3%82%A4%E3%83%ABfrdm_mcxw71.dts%E3%81%AFlpspi1%E3%81%A0%E3%81%91%E3%82%92%E6%9C%89%E5%8A%B9%E3%81%AB%E3%81%97%E3%81%BE%E3%81%99%E3%81%8C%E3%80%81lpspi0%E3%82%82%E3%82%A2%E3%83%97%E3%83%AA%E3%82%B1%E3%83%BC%E3%82%B7%E3%83%A7%E3%83%B3%E3%81%AE%E3%82%AA%E3%83%BC%E3%83%90%E3%83%BC%E3%83%AC%E3%82%A4%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E3%82%92%E9%80%9A%E3%81%98%E3%81%A6%E5%90%8C%E6%A7%98%E3%81%AB%E6%9C%89%E5%8A%B9%E5%8C%96%E3%81%A7%E3%81%8D%E3%81%BE%E3%81%99%E3%80%82%3C%2FP%3E%0A%3CP%20lang%3D%22es-419%22%3E%E6%97%A2%E5%AD%98%E3%81%AELPPspy1%E6%A7%8B%E6%88%90%E3%82%92%E5%8F%82%E8%80%83%E3%81%AB%E3%81%97%E3%81%A6%E3%81%8F%E3%81%A0%E3%81%95%E3%81%84%E3%80%82%E5%9F%BA%E6%9C%AC%E7%9A%84%E3%81%AA%E3%82%AA%E3%83%BC%E3%83%90%E3%83%BC%E3%83%AC%E3%82%A4%E3%81%AF%E3%81%93%E3%82%93%E3%81%AA%E6%84%9F%E3%81%98%E3%81%A7%E3%80%81%E3%82%AB%E3%82%B9%E3%82%BF%E3%83%A0%E3%83%87%E3%83%90%E3%82%A4%E3%82%B9%E5%AE%9F%E8%A3%85%E3%81%A7%E6%8B%A1%E5%BC%B5%E3%81%A7%E3%81%8D%E3%81%BE%E3%81%99%3A%3C%2FP%3E%0A%3CPRE%20class%3D%22lia-code-sample%20language-markup%22%3E%3CCODE%20translate%3D%22no%22%3E%26amp%3Bpinctrl%20%7B%0A%20%20%20%20pinmux_lpspi0%3A%20pinmux_lpspi0%20%7B%0A%20%20%20%20%20%20%20%20group0%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20pinmux%20%3D%20%3CLPSPI0_SIN_PTA17%3E%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3CLPSPI0_SCK_PTA19%3E%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3CLPSPI0_SOUT_PTA18%3E%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3CLPSPI0_PCS0_PTA16%3E%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20slew-rate%20%3D%20%22fast%22%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20drive-strength%20%3D%20%22low%22%3B%0A%20%20%20%20%20%20%20%20%7D%3B%0A%20%20%20%20%7D%3B%0A%7D%3B%0A%0A%26amp%3Blpspi0%20%7B%0A%20%20%20%20status%20%3D%20%22okay%22%3B%0A%20%20%20%20pinctrl-0%20%3D%20%26lt%3B%26amp%3Bpinmux_lpspi0%26gt%3B%3B%0A%20%20%20%20pinctrl-names%20%3D%20%22default%22%3B%0A%7D%3B%3C%2FLPSPI0_PCS0_PTA16%3E%3C%2FLPSPI0_SOUT_PTA18%3E%3C%2FLPSPI0_SCK_PTA19%3E%3C%2FLPSPI0_SIN_PTA17%3E%3C%2FCODE%3E%3C%2FPRE%3E%0A%3CBR%20%2F%3E%0A%3CP%3E%E3%82%88%E3%82%8D%E3%81%97%E3%81%8F%E3%81%8A%E9%A1%98%E3%81%84%E3%81%97%E3%81%BE%E3%81%99%E3%80%81%3CBR%20%2F%3E%E3%82%BD%E3%83%95%E3%82%A3%E3%82%A2%E3%80%82%3C%2FP%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-2412997%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%20translate%3D%22no%22%3ERe%3A%20Using%20the%20two%20LPSPI%20ports%20on%20the%20FRDM-MCXW71%20with%20Zephyr%3F%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-2412997%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CP%3E%E3%81%93%E3%82%93%E3%81%AB%E3%81%A1%E3%81%AF%E3%80%81%E3%82%BD%E3%83%95%E3%82%A3%E3%82%A2%E3%81%95%E3%82%93%E3%80%82%3C%2FP%3E%3CP%3E%E6%8F%90%E6%A1%88%E9%80%9A%E3%82%8A%E3%80%81%E3%82%AA%E3%83%BC%E3%83%90%E3%83%BC%E3%83%AC%E3%82%A4%E3%81%AE%E8%BF%BD%E5%8A%A0%E3%82%92%E5%8A%A0%E3%81%88%E3%81%9F%E6%9C%80%E5%B0%8F%E9%99%90%E3%81%AE%E3%82%A2%E3%83%97%E3%83%AA%E3%82%B1%E3%83%BC%E3%82%B7%E3%83%A7%E3%83%B3%E3%82%92%E4%BD%9C%E6%88%90%E3%81%97%E3%81%BE%E3%81%97%E3%81%9F%E3%80%82%3C%2FP%3E%3CP%3E%E3%82%A2%E3%83%97%E3%83%AA%E3%82%B1%E3%83%BC%E3%82%B7%E3%83%A7%E3%83%B3%E3%81%AF%E3%82%B3%E3%83%B3%E3%83%91%E3%82%A4%E3%83%AB%E3%81%95%E3%82%8C%E3%81%BE%E3%81%97%E3%81%9F%E3%81%8C%E3%80%81spi%E3%83%87%E3%83%90%E3%82%A4%E3%82%B9%E3%81%AE%E3%83%90%E3%82%A4%E3%83%B3%E3%83%89%E3%81%AF%E4%BE%9D%E7%84%B6%E3%81%A8%E3%81%97%E3%81%A6%E5%A4%B1%E6%95%97%E3%81%97%E3%81%BE%E3%81%97%E3%81%9F%E3%80%82%3C%2FP%3E%3CP%3E%E3%82%AA%E3%83%BC%E3%83%90%E3%83%BC%E3%83%AC%E3%82%A4%E9%83%A8%E5%88%86%E3%81%AB%E3%83%A9%E3%83%99%E3%83%AB%E3%81%8C%E5%8A%A0%E3%82%8F%E3%81%A3%E3%81%9F%E5%A0%B4%E5%90%88%E3%81%AB%E3%81%AE%E3%81%BF%E3%80%81%E8%A3%BD%E6%9C%AC%E3%81%AF%E6%A9%9F%E8%83%BD%E3%81%97%E3%81%BE%E3%81%99%E3%80%82%3C%2FP%3E%3CP%3E%E9%87%8D%E3%81%AD%E3%81%A6%E8%A1%A8%E7%A4%BA%3A%3C%2FP%3E%3CPRE%20class%3D%22lia-code-sample%20language-markup%22%3E%3CCODE%20translate%3D%22no%22%3E%26amp%3Blpspi0%20%7B%0A%20%20%20%20...%0A%20%20%20%20label%20%3D%20%22LPSPI_0%22%3B%0A%7D%0A%0A%26amp%3Blpspi1%20%7B%0A%20%20%20%20...%0A%20%20%20%20label%20%3D%20%22LPSPI_1%22%3B%0A%7D%3C%2FCODE%3E%3C%2FPRE%3E%3CP%3Emain.c%20%E5%86%85%3A%3C%2FP%3E%3CPRE%20class%3D%22lia-code-sample%20language-markup%22%3E%3CCODE%20translate%3D%22no%22%3Econst%20struct%20device%20*lpspi0_dev%3B%20%0Alpspi0_dev%20%3D%20device_get_binding(%22LPSPI_0%22)%3B%20%0Aprintk(%22%25p%5Cn%2Clpspi0_dev)%3B%3C%2FCODE%3E%3C%2FPRE%3E%3CP%3Elpspi0%E3%81%A8lpspi1%E3%81%AE%E4%B8%A1%E6%96%B9%E3%81%A7%E3%81%93%E3%81%AE%E6%93%8D%E4%BD%9C%E3%82%92%E8%A1%8C%E3%81%86%E3%81%A8%E3%80%81%E7%8F%BE%E5%9C%A8%E3%81%AF%E6%AD%A3%E5%B8%B8%E3%81%AB%E5%8B%95%E4%BD%9C%E3%81%99%E3%82%8B%E3%82%88%E3%81%86%E3%81%A7%E3%81%99%E3%80%82%3C%2FP%3E%3CBR%20%2F%3E%3CP%3E%E5%90%84%E3%82%A2%E3%83%97%E3%83%AA%E3%82%B1%E3%83%BC%E3%82%B7%E3%83%A7%E3%83%B3%E3%81%94%E3%81%A8%E3%81%AB%E3%83%A9%E3%83%99%E3%83%AB%E3%82%92%E4%BD%9C%E6%88%90%E3%81%99%E3%82%8B%E3%81%93%E3%81%A8%E3%81%8C%E6%9C%9F%E5%BE%85%E3%81%95%E3%82%8C%E3%81%A6%E3%81%84%E3%82%8B%E3%81%AE%E3%81%A7%E3%81%97%E3%82%87%E3%81%86%E3%81%8B%3F%3C%2FP%3E%3CP%3E%3CBR%20%2F%3E%E3%82%88%E3%82%8D%E3%81%97%E3%81%8F%E3%81%8A%E9%A1%98%E3%81%84%E3%81%97%E3%81%BE%E3%81%99%E3%80%82%3C%2FP%3E%3CP%3E%E3%83%98%E3%83%BC%E3%83%AB%E3%83%88%3C%2FP%3E%3CBR%20%2F%3E%3C%2FLINGO-BODY%3E