How to add custom dts entries

Bernd Walter ticso at cicely7.cicely.de
Sun Nov 4 18:49:50 UTC 2018


On Sun, Nov 04, 2018 at 07:32:47PM +0100, Bernd Walter wrote:
> On Sat, Nov 03, 2018 at 03:25:38PM -0600, Ian Lepore wrote:
> > Add a status = "okay" to the spi node in your patch/overlay.
> 
> Makes sense.
> 
> So the spigen overlay works fine, once I set fdt_overlays in loader.conf
> to use the overlay file.
> 
> spi0: <BCM2708/2835 SPI controller> mem 0x7e204000-0x7e204fff irq 25 on simplebus0
> spibus0: <OFW SPI bus> on spi0
> spibus0: <unknown card> at cs 1 mode 0
> spibus0: <unknown card> at cs 0 mode 0
> spibus0: <unknown card> at cs 0 mode 0
> spibus0: <unknown card> at cs 1 mode 0
> 
> With my own overlay I do this to install it:
> dtc -I dts -O dtb -o rpi-apa102-matrix.dtbo rpi-apa102-matrix.dts
> cp rpi-apa102-matrix.dtbo /boot/dtb/overlays
> 
> [77]cicely1> cat rpi-apa102-matrix.dts
> /dts-v1/;
> /plugin/;
> 
> / {
>         compatible = "brcm,bcm2835";
> };
> 
> /* &spi0 { */
> &{/soc/spi at 7e204000} {
>         status = "okay";
> 
>         apa102led0 {
>                 compatible = "led,apa102";
>                 reg = <0>;
>                 spi-max-frequency = <20000000>;
>                 status = "okay";
>         };
> };
> 
> &onewire {
>         compatible = "w1-gpio";
>         gpios = <&gpio 4 1>;
> };
> 
> Still puzzled with the format.
> With &spi0 it didn't work, neither with the current format, which is
> copied from the spigen.dts.
> Neither spi0 attaches, nor the onewire bus.
> 
> Some other, mostly beaglebone related examples use a more complex
> setup with overlay_ entries and everything inside the compatible block.
> 
> Can I have a device.hints please ;-)
> 
> ofwdump shows:
> ...
>     Node 0x20fc: spi at 7e204000
>       compatible:
>         62 72 63 6d 2c 62 63 6d 32 38 33 35 2d 73 70 69 00 
>         'brcm,bcm2835-spi'
> ...
>       status:
>         64 69 73 61 62 6c 65 64 00 
>         'disabled'
> ...
> 
> Havn't checked ofwdump with the spigen overlay.

Interesting.
When I use &spi0 and leave out the &onewire block, it attaches something.
spi0: <BCM2708/2835 SPI controller> mem 0x7e204000-0x7e204fff irq 25 on simplebus0
spibus0: <OFW SPI bus> on spi0
spibus0: <unknown card> at cs 0 mode 0
spibus0: <unknown card> at cs 0 mode 0
spibus0: <unknown card> at cs 1 mode 0

And also my driver attaches just fine:
apa102led0: <APA102> at cs 0 mode 0 on spibus0

And ofwdump shows the spi0 es enabled:
    Node 0x20fc: spi at 7e204000
      compatible:
        62 72 63 6d 2c 62 63 6d 32 38 33 35 2d 73 70 69 00 
        'brcm,bcm2835-spi'
...
      status:
        6f 6b 61 79 00 
        'okay'
...

I'm not on the real hardware, so no LED connected to test the driver.
It would probably also attach with the &{/soc/spi at 7e204000}.
But why does the &onewire entry make such a difference?
Is the whole file revoked because of an error?
I have no console connected, so I don't see loader messages.

Also it is a bit puzzling about the "unknown card" entries.

-- 
B.Walter <bernd at bwct.de> http://www.bwct.de
Modbus/TCP Ethernet I/O Baugruppen, ARM basierte FreeBSD Rechner uvm.


More information about the freebsd-arm mailing list