Page MenuHomeFreeBSD

spigen(4) SPI Generic IO driver and spibus(4) automatic clock adjustment
Needs ReviewPublic

Authored by brianfundakowskifeldman_gmail.com on Aug 22 2015, 9:21 PM.
Tags
Referenced Files
Unknown Object (File)
Wed, Oct 8, 5:10 PM
Unknown Object (File)
Mon, Oct 6, 3:08 AM
Unknown Object (File)
Wed, Sep 17, 10:42 PM
Unknown Object (File)
Sep 11 2025, 4:38 AM
Unknown Object (File)
Aug 8 2025, 3:10 AM
Unknown Object (File)
Jul 17 2025, 12:29 PM
Unknown Object (File)
Jul 9 2025, 7:09 PM
Unknown Object (File)
Jul 3 2025, 12:24 AM
Subscribers

Details

Reviewers
loos
Group Reviewers
Contributor Reviews (src)

Diff Detail

Lint
Lint Skipped
Unit
Tests Skipped

Event Timeline

brianfundakowskifeldman_gmail.com retitled this revision from to spigen(4) SPI Generic IO driver and spibus(4) automatic clock adjustment.
brianfundakowskifeldman_gmail.com edited the test plan for this revision. (Show Details)
brianfundakowskifeldman_gmail.com changed the edit policy from "All Users" to "Custom Policy".

Added ioctl variants that include specification of the SPI clock speed to use within the transfer request.

I haven't tested the code yet, but from what I see there is a bug WRT CS handling.

The CS is stored in the child ivar, I believe you are getting the CS set to 0 by a mistake.

The CS must be present in transfer structure (you should not rely on the existence of a kernel driver for the device).

We should probably get rid of the non clocked version of API and make the clocked functions the default API (not setting a clock produce the same result of non clocked version).

[GET|SET]_CLOCK_SPEED should set/get the SPI controller default speed and not the spigen default speed (allowing set the default clock freq for kernel drivers).

dev/spibus/spigen.c
432

Use DEVMETHOD_END here