[announce] libsoc v0.1: initial release

Good Evening Everyone,

With the transition to a new job I have had some time to spend on improving my build tool skills and creating something (hopefully) useful for the community. I have seen a library like this requested many times, so I hope it will be of use to at least some people here.

Please see the paraphrased README below and visit the github page for more information.

What is libsoc?
------------------------------------------------------------------------

libsoc is a C library to interface with common peripherals found in
System on Chips through generic Linux Kernel interfaces.

It is aimed at new Linux users, and intends to be a stepping stone to
enable a user to get started quickly. It is optimised for reliability
rather than speed. While the library should be fast, no guarantees are
made on it's determinism and it should not be used in time critical
routines.

Why libsoc?
------------------------------------------------------------------------

libsoc was born due to the influx of new embedded Linux boards becoming
available cheap, and to hobbyists. There are currently numerous
libraries that do interfacing with common SoC peripherals, but they all
tend to be centred around a particular board or SoC. This leads to board
specific hacks and in some cases direct bypassing of the Linux Kernel.

libsoc aims to be generic and compatible with any SoC that has drivers
exposing the correct interfaces for the defined peripheral.

What peripherals does it support?
------------------------------------------------------------------------

libsoc currently only supports GPIO through the sysfs interface.

Future ideas are:

- GPIO Interrupts
- I2C
- SPIDEV
- PWM
- A/D Converters

More information and the code is available at:

Cheers,

Good Evening Everyone,

With the transition to a new job I have had some time to spend on
improving my build tool skills and creating something (hopefully) useful
for the community. I have seen a library like this requested many times, so
I hope it will be of use to at least some people here.

I think the idea is great. This is largely similar to the idea behind
Userspace Arduino - eLinux.org. Any reason not to contribute to that
project and extend it?

Also, I don't think you should feel tied to SYSFS. It is a great entry, but
don't be afraid to pull in dependencies on syscall/ioctl/etc.

    Good Evening Everyone,

    With the transition to a new job I have had some time to spend on
    improving my build tool skills and creating something (hopefully)
    useful for the community. I have seen a library like this requested
    many times, so I hope it will be of use to at least some people here.

I think the idea is great. This is largely similar to the idea behind
Userspace Arduino - eLinux.org. Any reason not to contribute to
that project and extend it?

Thank You.

I feel the 'Userspace Arduino' project is tackling a different problem to the one I'm aiming at here. This is aiming to be just a generic wrapper at easily using the kernel interfaces. Audrino Userspace is mimicking the audrio library and melding the interface to what the Adrino library defines it as, rather than what it is.. if you get what I mean!

Also, I don't think you should feel tied to SYSFS. It is a great entry,
but don't be afraid to pull in dependencies on syscall/ioctl/etc.

Certainly not, sysfs GPIO was just an easy place to get started. I have plans for I2C, SPIDEV etc.. which may use IOCTLs where necessary.