How to add custom dts entries

Ian Lepore ian at freebsd.org
Sat Nov 3 21:41:59 UTC 2018


On Sat, 2018-11-03 at 22:20 +0100, Bernd Walter wrote:
> On Sat, Nov 03, 2018 at 03:04:39PM -0600, Ian Lepore wrote:
> > 
> > On Sat, 2018-11-03 at 21:54 +0100, Bernd Walter wrote:
> > > 
> > > On Sat, Nov 03, 2018 at 02:46:30PM -0600, Ian Lepore wrote:
> > > > 
> > > > 
> > > > We do have overlay support now. I don't know much about using
> > > > it,
> > > > hopefully those who do will reply with details.
> > > That's good to know.
> > > Hope for an answer too ;-)
> > > 
> > > > 
> > > > 
> > > > There have also been updates to the SPI world. Your apa102led0
> > > > fdt
> > > > node
> > > > now requires a "spi-max-frequency" property, the value is the
> > > > bus
> > > > speed
> > > > to use when communicating with that device, in Hz (different
> > > > devices on
> > > > the same bus can now have different speeds, and there is no
> > > > concept
> > > > of
> > > > a default speed). Also, the chipsel number should be in a reg=
> > > > property, but we still support spi-chipselect= too for
> > > > backwards
> > > > compatibility. 
> > > Ah, important information.
> > > I had been using dev.spi.0.clock to increase speed.
> > > Obviously dev.spi doesn't even exists anymore.
> > > Have to check about the CS, technically it is a dummy value
> > > anyway,
> > > since the APA102 LEDs don't have a chip select and are the only
> > > device connected to the SPI.
> > > 
> > The sysctl nodes should still exist, but now they're all read-only
> > values that just tell you about the current transfer (or the last
> > one
> > to complete), since all those values can change on each transfer
> > now
> > depending on how individual devices are configured.
> At least not for me.
> 
> > 
> > Also, there is now a spi(8) program that lets you do spi transfers
> > and
> > to some degree manipulate the transfer properties (bus
> > polarity/phase,
> > speed, etc) from the command line.
> Saw that - very nice.
> I should use spigen, as my kernel driver is nothing more than a
> wrapper
> to a devicenode.
> However loading the spigen module won't create any /dev/spigen*
> nodes.
> spi drivers are all loaded:
> [60]rpi-b# kldstat -v | grep spi
>                  43 spi/spibus
>                 123 simplebus/bcm2835_spi
>                  42 spi/ofw_spibus
>  4    1 0xd2f00000     a000 spigen.ko (/boot/kernel/spigen.ko)
>                 129 spibus/spigen
> But there is no mention of any spi in dmesg and devinfo.
> [68]rpi-b# devinfo
> nexus0
>   ofwbus0
>     simplebus0
>       systimer0
>       bcm_dma0
>       intc0
>       bcmwd0
>       bcmrng0
>       mbox0
>       gpio0
>         gpiobus0
>         gpioc0
>       uart0
>       bcm283x_dwcotg0
>         usbus0
>           uhub0
>             uhub1
>               smsc0
>                 miibus0
>                   ukphy0
>       sdhci_bcm0
>         mmc0
>           mmcsd0
>       fb0
>         fbd0
>       vchiq0
>         pcm0
>     gpioled0
>   cryptosoft0
> 
> And I still need to setup the onewire bus.
> This is for a LED matrix and I really need the temperature sensors to
> protect the LEDs from damage.
> 

Add a status = "okay" to the spi node in your patch/overlay.

-- Ian


More information about the freebsd-arm mailing list