Difference between revisions of "Spi device tree source code"

From Wiki at Neela Nurseries
Jump to: navigation, search
m (Add pin control .dtsi file for sparkfun_thing_plus_nrf9160 board.)
m (Add templates for further dts and dtsi file exceprt pairings.)
Line 7: Line 7:
 
In Zephyr RTOS' supported board dts files we find SPI peripherals defined for several boards.  Here are excerpts
 
In Zephyr RTOS' supported board dts files we find SPI peripherals defined for several boards.  Here are excerpts
  
<i> zephyr/boards/arm/sparkfun_thing_plus_nrf9160/sparkfun_thing_plus_nrf9160_common.dts</i>
+
<i>Excerpt 1 - zephyr/boards/arm/sparkfun_thing_plus_nrf9160/sparkfun_thing_plus_nrf9160_common.dts</i>
 
{|
 
{|
 
|-
 
|-
Line 87: Line 87:
 
|}
 
|}
  
 +
 +
<i>Excerpt 2 - <i>
 +
{|
 +
| style="background:#ffffff; vertical-align:top; padding:10px;" |
 +
 +
| style="background:#ffffff; vertical-align:top; padding:10px;" |
 +
 +
| style="background:#ffffff; vertical-align:top; padding:10px;" |
 +
 +
| style="background:#ffffff; vertical-align:top; padding:10px;" |
 +
 +
|}
 +
 +
 +
<i>Excerpt 3 - <i>
 +
{|
 +
| style="background:#ffffff; vertical-align:top; padding:10px;" |
 +
 +
| style="background:#ffffff; vertical-align:top; padding:10px;" |
 +
 +
| style="background:#ffffff; vertical-align:top; padding:10px;" |
 +
 +
| style="background:#ffffff; vertical-align:top; padding:10px;" |
 +
 +
|}
 +
 +
 +
<i>Excerpt 4 - <i>
 +
{|
 +
| style="background:#ffffff; vertical-align:top; padding:10px;" |
 +
 +
| style="background:#ffffff; vertical-align:top; padding:10px;" |
 +
 +
| style="background:#ffffff; vertical-align:top; padding:10px;" |
 +
 +
| style="background:#ffffff; vertical-align:top; padding:10px;" |
 +
 +
|}
 +
 +
 +
<i>Excerpt 5 - <i>
 +
{|
 +
| style="background:#ffffff; vertical-align:top; padding:10px;" |
 +
 +
| style="background:#ffffff; vertical-align:top; padding:10px;" |
 +
 +
| style="background:#ffffff; vertical-align:top; padding:10px;" |
 +
 +
| style="background:#ffffff; vertical-align:top; padding:10px;" |
 +
 +
|}
 +
 +
 +
<!--
 +
 +
<i>Excerpt x - <i>
 +
{|
 +
| style="background:#ffffff; vertical-align:top; padding:10px;" |
 +
 +
| style="background:#ffffff; vertical-align:top; padding:10px;" |
 +
 +
| style="background:#ffffff; vertical-align:top; padding:10px;" |
 +
 +
| style="background:#ffffff; vertical-align:top; padding:10px;" |
 +
 +
|}
 +
 +
-->
  
  

Revision as of 22:52, 11 August 2022

2022-08-11 Thursday

Notes on SPI device tree source, with goal to add SPI device to modified RPi Pico DTS files, which build firmware to run on Sparkfun DEV-18288 board.


In Zephyr RTOS' supported board dts files we find SPI peripherals defined for several boards. Here are excerpts

Excerpt 1 - zephyr/boards/arm/sparkfun_thing_plus_nrf9160/sparkfun_thing_plus_nrf9160_common.dts


142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162


&spi3 {
        compatible = "nordic,nrf-spim";
        status = "okay";
        cs-gpios = <&gpio0 7 GPIO_ACTIVE_LOW>;
        pinctrl-0 = <&spi3_default>;
        pinctrl-1 = <&spi3_sleep>;
        pinctrl-names = "default", "sleep";
        w25q32jv: w25q32jv@0 {
                compatible = "jedec,spi-nor";
                label = "W25Q32JV";
                reg = <0>;
                spi-max-frequency = <40000000>;
                wp-gpios = <&gpio0 8 GPIO_ACTIVE_LOW>;
                hold-gpios = <&gpio0 10 GPIO_ACTIVE_LOW>;
                size = <0x2000000>;
                has-dpd;
                t-enter-dpd = <3000>;
                t-exit-dpd = <30000>;
                jedec-id = [ ef 40 16 ];
        };
};

a
 81         spi3_default: spi3_default {
 82                 group1 {
 83                         psels = <NRF_PSEL(SPIM_SCK, 0, 11)>,
 84                                 <NRF_PSEL(SPIM_MOSI, 0, 9)>,
 85                                 <NRF_PSEL(SPIM_MISO, 0, 28)>;
 86                 };
 87         };
 88 
 89         spi3_sleep: spi3_sleep {
 90                 group1 {
 91                         psels = <NRF_PSEL(SPIM_SCK, 0, 11)>,
 92                                 <NRF_PSEL(SPIM_MOSI, 0, 9)>,
 93                                 <NRF_PSEL(SPIM_MISO, 0, 28)>;
 94                         low-power-enable;
 95                 };
 96         };


Excerpt 2 - <i>


<i>Excerpt 3 - <i>


<i>Excerpt 4 - <i>


<i>Excerpt 5 - <i>



^ YAML device bindings files

To support a typical development kit or custom board with multiple peripherals we need a device bindings file comparable to this ... bindings file:

  1. ~/projects-sandbox/workspace-for-rpi/zephyr/boards/arm/nrf9160dk_nrf9160/nrf9160dk_nrf9160.yaml
identifier: nrf9160dk_nrf9160
name: nRF9160-DK-NRF9160
type: mcu 
arch: arm 
toolchain:
  - gnuarmemb
  - xtools
  - zephyr
ram: 88
flash: 256 
supported:
  - arduino_gpio
  - arduino_i2c
  - gpio
  - i2c
  - pwm
  - spi
  - watchdog
  - counter