Using SPI-/I2C-devices without device-tree

Options
WereCatf
WereCatf New Member Posts: 201
I have only used ARM- and MIPS-based SBCs and on those you define SPI- or I2C-devices, including their settings, using device-tree entries, but since x86 doesn't use those, how does one define such on x86? There are many a kernel-module that does not support specifying such parameters when loading the module via modprobe and they expect all such settings to be supplied to them by the kernel.

Comments

  • Dan O'Donovan
    Dan O'Donovan Administrator, Moderator, Emutex Posts: 241 admin
    Options
    A similar effect can be achieved using ACPI overlays. We have a solution for this in the pipeline - I think it is due to be released for ubilinux in the coming weeks. Basically it allows user-supplied ACPI extensions to be loaded (appended to the ACPI tables from the BIOS) during init by the kernel, and these in turn will tell the kernel about the SPI and I2C devices that are connected. There is a facility in the ACPI spec to encapsulate parameters which are analogous to the Device Tree specification, and the kernel drivers can pick these up (requires some specific kernel patches to make it work). So, basically, it allows the user to leverage those kernel modules which were written with Device Trees in mind.
  • WereCatf
    WereCatf New Member Posts: 201
    Options
    Well, I do hope you'll write how to use them on your wiki, when your solution is out.
  • rreignier
    rreignier New Member Posts: 67 ✭✭
    Options

    @Dan O'Donovan said:
    A similar effect can be achieved using ACPI overlays. We have a solution for this in the pipeline - I think it is due to be released for ubilinux in the coming weeks. Basically it allows user-supplied ACPI extensions to be loaded (appended to the ACPI tables from the BIOS) during init by the kernel, and these in turn will tell the kernel about the SPI and I2C devices that are connected. There is a facility in the ACPI spec to encapsulate parameters which are analogous to the Device Tree specification, and the kernel drivers can pick these up (requires some specific kernel patches to make it work). So, basically, it allows the user to leverage those kernel modules which were written with Device Trees in mind.

    Is this solution implemented nowadays in UP kernel?