Skip to content
/ libsoc Public
forked from jackmitch/libsoc

libsoc: C library for interfacing with common SoC peripherals through generic kernel interfaces

License

Unknown, LGPL-2.1 licenses found

Licenses found

Unknown
LICENSE
LGPL-2.1
COPYING
Notifications You must be signed in to change notification settings

duslabo/libsoc

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

35 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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 and GPIO blocking interrupts through 
the sysfs interface.

Future ideas are:

- I2C
- SPIDEV
- PWM
- A/D Converters

Does libsoc support the SoC on my board?
------------------------------------------------------------------------

The real question here is, do your SoC drivers use the generic Linux 
Kernel interfaces to expose functionality to userspace. If the answer is
yes, then libsoc supports your board!

How is libsoc licenced?
------------------------------------------------------------------------

libsoc is licenced under the LGPLv2.1, please see the COPYING files for
futher details.

How do I build libsoc?
------------------------------------------------------------------------

libsoc uses the autotools build system. A script called autogen.sh is
included to setup the build. Exact steps:

1) ./autogen.sh
2) ./configure [--enable-debug]
3) make

--enable-debug : enables the debug code, allows for better debugging,
                 but also slows down the code path. Leave disabled for 
                 fastest operation.
                 
How do I use libsoc?
------------------------------------------------------------------------

The libsoc public functions are documented in the include files in the 
lib/include directory. There are also test programs in the test/ 
directory which give examples of use.


Can I help?
------------------------------------------------------------------------

libsoc is Open Source Software and as such you are welcome to browse the 
code and either add features, or fix bugs. Please submit pull requests, 
and bugs to http://www.github.com/jackmitch/libsoc. If you have any 
comments or questions, I can be contacted by email at the address 
jack_at_embed_dot_me_dot_uk.

About

libsoc: C library for interfacing with common SoC peripherals through generic kernel interfaces

Resources

License

Unknown, LGPL-2.1 licenses found

Licenses found

Unknown
LICENSE
LGPL-2.1
COPYING

Stars

Watchers

Forks

Packages

No packages published