> // interrupt-parent = <&intc>; > // interrupts = <0 24 IRQ_TYPE_EDGE_FALLING>;
Not sure if you did represent these values correctly?! I have for enc28j60:something like this: interrupt-parent = <&gpio2>; interrupts = <1 IRQ_TYPE_EDGE_FALLING>; Where <&gpio2> is gpio chip name (the gpio port 2), and <1 IRQ_TYPE_EDGE_FALLING>;is pin 1 of port 2 (32 pins for ports from port 0). <&intc> should be an INT controller. Since <0 24 IRQ_TYPE_EDGE_FALLING>; you are trying to represent 0 as port #, 24 as pin #... I have no idea how many pins you have per gpio port? 16? 32? You should carefully analyse and try to understand if you wrote this device tree sequence correctly. But I am just guessing now... Zee _______ On Sat, Mar 20, 2021 at 11:02 PM jchludzinski <[email protected]> wrote: > > Using 'make nconfig' I selected the following options: > (Keep in mind I using an Altera/Intel Arria 10 SoC which uses DesignWare hard > SPI controllers. BUT the SPI controllers I'm concerned with now are soft > controllers defined in the FPGA code). > > .config - Linux/arm 5.4.74 Kernel Configuration > ┌── SPI support > ─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┐ > │ > │ > │ --- SPI support > │ > │ [*] Debug support for SPI drivers > │ > │ -*- SPI memory extension > │ > │ *** SPI Master Controller Drivers *** > │ > │ <M> Altera SPI Controller > > ... > > │ <*> Utilities for Bitbanging SPI masters > │ > │ < > Cadence SPI controller > │ > │ < > CLPS711X host SPI controller > │ > │ <*> DesignWare SPI controller core support > │ > │ <*> PCI interface driver for DW SPI core > │ > │ <*> Memory-mapped io interface driver for > DW SPI core │ > > ... > > │ *** SPI Protocol Masters *** > │ > │ <M> User mode SPI device driver support > │ > │ <M> spi loopback test framework support > │ > │ < > Infineon TLE62X0 (for power switching) > │ > │ [*] SPI slave protocol handlers > │ > │ <M> SPI slave handler reporting boot up > time │ > │ <M> SPI slave handler controlling system > state │ > > This got the SPI nodes to show up in /sys/firmware/devicetree/ but there were > no udev files (/dev/spidevXX). So I commented out the 'interrupts' in the > DTSI file and the udev files appeared? > > spi2: spi@0xc00c0800 { // hps_spi_1553_int > address-cells = <0x1>; > #size-cells = <0x0>; > reg = <0xc00c0800 0x20>; > // interrupt-parent = <&intc>; > // interrupts = <0 24 IRQ_TYPE_EDGE_FALLING>; > num-cs = <0x1>; > status = "okay"; > > spidev@0 { > compatible = "rohm,dh2228fv"; > #address-cells = <0x1>; > #size-cells = <0x0>; > reg = <0x0>; > spi-max-frequency = <0x1f400>; > // enable-dma = <0x1>; > }; > }; > > BUT I need those interrupts. Thoughts and/or suggestions? > > ---John > > > > On 2021-03-19 01:10, Zoran wrote: > > Hello John, > > It seems that your target is configured correctly. Since you have all > the components you should and must have as SPI framework. > > Namely I was looking for /sys/bus (since you must have an SPI bus > driver), and then /sys/class (since as my best understanding is that > SPI is a master/slave device), you must have class/). Others are > assumed, you added debug directories. > > When I separately build spidev.c as an .ko and try > loading it, I get: "Device or resource busy" > > > This is understandable, since you already have included spidev.ko as > menuconfig value Y, so it is already present in the kernel, but as a > built-in part of the kernel (my best guess). > > root@arria10:~# lsmod > Module Size Used by > spi_altera 16384 0 > spidev 20480 0 > > > I see that you did change the menuconfig, and made spidev to be M. > > What I also see is that there are no dependencies between spidev and > spi_altera. This is what you really wanted? > > But there are NO udev files for the SPI devices > defined in the DTSI file. > > > Could you, please, better explain this sentence? In more details (as > much as you can)? > > Thank you, > Zee > _______ > > > On Thu, Mar 18, 2021 at 10:07 PM jchludzinski <[email protected]> > wrote: > > > root@arria10:~# find /sys/ -name 'spi*' > > /sys/kernel/debug/clk/spi_m_clk > /sys/kernel/debug/tracing/events/spi > /sys/kernel/debug/tracing/events/spi/spi_controller_idle > /sys/kernel/debug/tracing/events/spi/spi_controller_busy > > ... > > /sys/bus/spi/devices/spi0.0 > /sys/bus/spi/drivers/spi-nor > /sys/bus/spi/drivers/altr_a10sr/spi0.0 > /sys/bus/spi/drivers/spidev > /sys/module/spidev > /sys/module/spidev/drivers/spi:spidev > /sys/module/spi_altera > > > > > On 2021-03-18 03:44, Zoran wrote: > > I am guessing here.... But what do you have while executing the > following command being in /sys > as root? > > root@arm:/sys# find . -name spi* > > Zee > _______ > > On Wed, Mar 17, 2021 at 5:41 PM jchludzinski via > lists.yoctoproject.org > <[email protected]> wrote: > > > In the YOCTO/Linux source tree there's drivers/spi/ which has all the source > for SPI drivers. There's only 1 file, spidev.c, which has: > > static int __init spidev_init(void) > { > int status; > > /* Claim our 256 reserved device numbers. Then register a class > * that will key udev/mdev to add/remove /dev nodes. Last, register > * the driver which manages those device numbers. > */ > BUILD_BUG_ON(N_SPI_MINORS > 256); > status = register_chrdev(SPIDEV_MAJOR, "spi", &spidev_fops); > if (status < 0) > return status; > > spidev_class = class_create(THIS_MODULE, "spidev"); > if (IS_ERR(spidev_class)) { > unregister_chrdev(SPIDEV_MAJOR, > spidev_spi_driver.driver.name); > return PTR_ERR(spidev_class); > } > > status = spi_register_driver(&spidev_spi_driver); > if (status < 0) { > class_destroy(spidev_class); > unregister_chrdev(SPIDEV_MAJOR, > spidev_spi_driver.driver.name); > } > return status; > } > module_init(spidev_init); > > ... for creating device files in udev. > > So when I use 'make nconfig' to specifiy that I want a loadable module for > the ALTERA SPI driver, why don't I see a spidev.o file in drivers/spi/ ? > > How does spi-altera.ko create device files without a call to > register_chrdev(...). > > How is it a loadable module without module_init(...)? > > When I separately build spidev.c as an .ko and try loading it, I get: "Device > or resourse busy" > > ---John
-=-=-=-=-=-=-=-=-=-=-=- Links: You receive all messages sent to this group. View/Reply Online (#52785): https://lists.yoctoproject.org/g/yocto/message/52785 Mute This Topic: https://lists.yoctoproject.org/mt/81407811/21656 Group Owner: [email protected] Unsubscribe: https://lists.yoctoproject.org/g/yocto/unsub [[email protected]] -=-=-=-=-=-=-=-=-=-=-=-
