Difference between revisions of "Spi device tree source code"

From Wiki at Neela Nurseries
Jump to: navigation, search
m (Add templates for further dts and dtsi file exceprt pairings.)
m (Add dts file for zephyr/boards/arm/96b_carbon_nrf51 board.)
Line 88: Line 88:
  
  
<i>Excerpt 2 - <i>
+
<i>Excerpt 2 - zephyr/boards/arm/96b_carbon_nrf51/96b_carbon_nrf51.dts<i>
 
{|
 
{|
 
| style="background:#ffffff; vertical-align:top; padding:10px;" |
 
| style="background:#ffffff; vertical-align:top; padding:10px;" |
 +
<pre>
  
 +
</pre>
 
| style="background:#ffffff; vertical-align:top; padding:10px;" |
 
| style="background:#ffffff; vertical-align:top; padding:10px;" |
 +
<pre>
 +
&spi1 {
 +
        compatible = "nordic,nrf-spis";
 +
        status = "okay";
 +
        def-char = <0x00>;
  
 +
        pinctrl-0 = <&spi1_default>;
 +
        pinctrl-names = "default";
 +
        bt-hci@0 {
 +
                compatible = "zephyr,bt-hci-spi-slave";
 +
                reg = <0>;
 +
                irq-gpios = <&gpio0 28 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)>;
 +
        };
 +
};
 +
</pre>
 
| style="background:#ffffff; vertical-align:top; padding:10px;" |
 
| style="background:#ffffff; vertical-align:top; padding:10px;" |
 +
<pre>
  
 +
</pre>
 
| style="background:#ffffff; vertical-align:top; padding:10px;" |
 
| style="background:#ffffff; vertical-align:top; padding:10px;" |
 +
<pre>
  
 +
</pre>
 
|}
 
|}
  
Line 104: Line 124:
 
{|
 
{|
 
| style="background:#ffffff; vertical-align:top; padding:10px;" |
 
| style="background:#ffffff; vertical-align:top; padding:10px;" |
 +
<pre>
  
 +
</pre>
 
| style="background:#ffffff; vertical-align:top; padding:10px;" |
 
| style="background:#ffffff; vertical-align:top; padding:10px;" |
 +
<pre>
  
 +
</pre>
 
| style="background:#ffffff; vertical-align:top; padding:10px;" |
 
| style="background:#ffffff; vertical-align:top; padding:10px;" |
 +
<pre>
  
 +
</pre>
 
| style="background:#ffffff; vertical-align:top; padding:10px;" |
 
| style="background:#ffffff; vertical-align:top; padding:10px;" |
 +
<pre>
  
 +
</pre>
 
|}
 
|}
  
Line 117: Line 145:
 
{|
 
{|
 
| style="background:#ffffff; vertical-align:top; padding:10px;" |
 
| style="background:#ffffff; vertical-align:top; padding:10px;" |
 +
<pre>
  
 +
</pre>
 
| style="background:#ffffff; vertical-align:top; padding:10px;" |
 
| style="background:#ffffff; vertical-align:top; padding:10px;" |
 +
<pre>
  
 +
</pre>
 
| style="background:#ffffff; vertical-align:top; padding:10px;" |
 
| style="background:#ffffff; vertical-align:top; padding:10px;" |
 +
<pre>
  
 +
</pre>
 
| style="background:#ffffff; vertical-align:top; padding:10px;" |
 
| style="background:#ffffff; vertical-align:top; padding:10px;" |
 +
<pre>
  
 +
</pre>
 
|}
 
|}
  
Line 130: Line 166:
 
{|
 
{|
 
| style="background:#ffffff; vertical-align:top; padding:10px;" |
 
| style="background:#ffffff; vertical-align:top; padding:10px;" |
 +
<pre>
  
 +
</pre>
 
| style="background:#ffffff; vertical-align:top; padding:10px;" |
 
| style="background:#ffffff; vertical-align:top; padding:10px;" |
 +
<pre>
  
 +
</pre>
 
| style="background:#ffffff; vertical-align:top; padding:10px;" |
 
| style="background:#ffffff; vertical-align:top; padding:10px;" |
 +
<pre>
  
 +
</pre>
 
| style="background:#ffffff; vertical-align:top; padding:10px;" |
 
| style="background:#ffffff; vertical-align:top; padding:10px;" |
 +
<pre>
  
 +
</pre>
 
|}
 
|}
  

Revision as of 22:59, 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 - zephyr/boards/arm/96b_carbon_nrf51/96b_carbon_nrf51.dts<i>


&spi1 {
        compatible = "nordic,nrf-spis";
        status = "okay";
        def-char = <0x00>;

        pinctrl-0 = <&spi1_default>;
        pinctrl-names = "default";
        bt-hci@0 {
                compatible = "zephyr,bt-hci-spi-slave";
                reg = <0>;
                irq-gpios = <&gpio0 28 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)>;
        };
};



<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