Private
Public Access
2
0
Commit Graph

73 Commits

Author SHA1 Message Date
Manivannan Sadhasivam
9056556b7a 96boards: Add Ultra-96 board support
This commit adds Ultra96, one of the Consumer Edition boards of the
96Boards family.

Ultra96 is an Arm-based, Xilinx Zynq UltraScale+ MPSoC development board.
This board runs petalinux distribution on the ARM core and integrates
Xilinx programmable logic (PL) UltraScale architecture in a single fabric.

This board supports standard peripherals defined by 96Boards CE
Specification. Since it ships with >4.8 kernel, only chardev mapping
is supported for accessing GPIO.

More information about this board can be found in 96Boards product
page: https://www.96boards.org/product/ultra96/

Signed-off-by: Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org>
2018-07-29 23:13:30 +05:30
Manivannan Sadhasivam
71b87904a0 96boards: Cleanup the board support
This commit cleans up the 96boards board support by sorting the boards
in alphabetical manner and also executing clang-format for 96boards.c

Signed-off-by: Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org>
2018-07-29 23:13:30 +05:30
netlhx
4b2279704b boards: add rock960 support
Signed-off-by: Hongxin Liu <761896148@qq.com>
2018-07-23 16:33:44 +05:30
Manivannan Sadhasivam
46b3a3ef88 arm: 96boards: Move pin capabilities property inside is_gpio condition
Declare the GPIO pins capabilities under is_gpio condition instead of
under sysfs_pin.

Signed-off-by: Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org>
Signed-off-by: malikabhi05 <abhishek.malik@intel.com>
2018-05-03 14:17:55 -04:00
Manivannan Sadhasivam
3fa1237255 arm: 96boards: Add support for Hikey960
Add support for Hikey960 board from HiSilicon based on their Kirin960 SoC.

Peripherals supported:

1. GPIO
2. UART
3. I2C

For GPIO only Chardev interface has been added since this board only supports
>=4.15 kernel and using legacy sysfs interface is highly discouraged.

Signed-off-by: Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org>
Signed-off-by: malikabhi05 <abhishek.malik@intel.com>
2018-05-03 14:17:38 -04:00
Manivannan Sadhasivam
5faa2b93ca 96boards: db820c: Fix chardev mapping
Fix chardev mapping for GPIO-C and GPIO-F.

Signed-off-by: Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org>
Signed-off-by: malikabhi05 <abhishek.malik@intel.com>
2018-05-02 17:09:13 -04:00
Manivannan Sadhasivam
6258bd5fdd 96boards: chardev: Move chardev enablement inside platform check
Move the chardev enablement inside the platform check.
Some boards might not have the chardev mapping yet.

Signed-off-by: Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org>
Signed-off-by: malikabhi05 <abhishek.malik@intel.com>
2018-04-19 11:42:24 -04:00
IvanFarkas
284d882b9d Added Qualcomm DragonBoard 820c support.
GPIO ports from DragonBoard 820c Hardware Manual (p16) at
https://github.com/sdrobertw/dragonboard820c/blob/master/hardware-docs/files/db820c-user-guide.docx

Add Chardev support for DragonBoard 820c

Signed-off-by: Ivan Farkas <Ivan.Farkas@TeleCuris.com>
Signed-off-by: malikabhi05 <abhishek.malik@intel.com>
2018-04-10 16:49:38 -04:00
Manivannan Sadhasivam
7ea32cf1ec arm: 96boards: Add Chardev support for relevant boards
As of now both Dragonboard410c and Hikey boards run latest LTS kernel.
Hence, adding chardev support for those.

Signed-off-by: Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org>
Signed-off-by: Ivan Farkas <Ivan.Farkas@TeleCuris.com>
Signed-off-by: malikabhi05 <abhishek.malik@intel.com>
2018-04-10 16:49:18 -04:00
Manivannan Sadhasivam
be9cd0138a arm: 96boards: Run clang-format on source code
Run clan-format on the source code for better code visibility.

Signed-off-by: Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org>
Signed-off-by: malikabhi05 <abhishek.malik@intel.com>
2018-04-06 15:20:13 -04:00
Manivannan Sadhasivam
dee7b80f06 arm: 96boards: Add Chardev support for relevant boards
As of now both Dragonboard410c and Hikey boards run latest LTS kernel.
Hence, adding chardev support for those.

Signed-off-by: Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org>
Signed-off-by: malikabhi05 <abhishek.malik@intel.com>
2018-04-06 15:19:25 -04:00
Brendan Le Foll
9bc3ffe815 raspberry_pi.c: Removing spi_frequency_replace as that has become default behaviour
Signed-off-by: Brendan Le Foll <brendan.le.foll@intel.com>
2018-03-05 13:34:40 +01:00
Sergey Kiselev
99287f40a1 rpi: Add support for Raspberry Pi Zero W
This patch adds support and autodetection for Raspberry Pi Zero W.
It also adds more revisions for Raspbery Pi Zero from here:
http://elinux.org/RPi_HardwareHistory

Signed-off-by: Sergey Kiselev <sergey.kiselev@intel.com>
Signed-off-by: Brendan Le Foll <brendan.le.foll@intel.com>
2017-10-04 11:56:33 +02:00
nick
6185f0ac92 rpi: Return 0 if mmap is already done
Signed-off-by: Nick Crast <nicholas.crast@anaren.com>
Signed-off-by: Brendan Le Foll <brendan.le.foll@intel.com>
2017-09-12 11:40:57 +02:00
nick
8356c2f03d rpi: Adding PWM support
The Pi doesn't have userspace level PWM support, but you can mmap the
raw registers and configure it that way, which is what this patch is
doing. Tested with Raspberry Pi 3 B. I am able to set the duty cycle,
change the frequency, and set the pulse width. Signals verified with
logic analyzer. Note that the only accessible pwm is on GPIO18, which is
also used by the audio subsystem.

Signed-off-by: Nick Crast <nicholas.crast@anaren.com>
Signed-off-by: Brendan Le Foll <brendan.le.foll@intel.com>
2017-09-12 11:40:38 +02:00
Manivannan Sadhasivam
615e0cd83a src: arm: Add mmap support for db410c
This commit adds mmap support for 96Boards Dragonboard410c

Signed-off-by: Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org>
Signed-off-by: Brendan Le Foll <brendan.le.foll@intel.com>
2017-09-06 11:18:33 +02:00
Alex Tereschenko
badf25f289 phyboard.c: fix whitespace error
Signed-off-by: Alex Tereschenko <alext.mkrs@gmail.com>
2017-08-19 19:48:44 +02:00
Alex Tereschenko
ba72c5b089 arm: fix compiler warnings
There were unused variables, incorrect pointer operations
and plan broken string comparison.

Now there's only one - for unused uart3_enabled in beaglebone.c,
but we want to keep it for declaration consistency.

Also fixes #757.

Signed-off-by: Alex Tereschenko <alext.mkrs@gmail.com>
2017-08-19 19:48:44 +02:00
Tapani Utriainen
f71b4be059 beaglebone.c: use the ret variable in i2c_init_pre also when successful
Signed-off-by: Brendan Le Foll <brendan.le.foll@intel.com>
2017-07-28 14:33:16 +02:00
Tapani Utriainen
0b1ccf526f beaglebone.c: check devpath only once in i2c_init_pre
Signed-off-by: Brendan Le Foll <brendan.le.foll@intel.com>
2017-07-28 14:33:16 +02:00
Tapani Utriainen
46e5aab56e beaglebone.c: let i2c_init_pre return an error if muxing fails
Signed-off-by: Brendan Le Foll <brendan.le.foll@intel.com>
2017-07-28 14:33:16 +02:00
Tapani Utriainen
8f57b21a26 beaglebone.c: use snprintf instead of sprintf in i2c_init_pre
Signed-off-by: Brendan Le Foll <brendan.le.foll@intel.com>
2017-07-28 14:33:16 +02:00
Nick Crast
bb3584fcdb mraa_internal_types.h, aio.c, beaglebone.c:
Beaglebone AIO pins seem to be a little different than most boards, so
this is my attempt to work with that without impacting other boards. I
added a new flag in mraa_board_t to indicate whether or not the aio pins
are sequential. One the beaglebone, they are not. To go along with this,
I added a new device mraa_aio_dev_t, that will map each aio to a
physical pin.

In the main aio logic, if aio_non_seq is true for the board, the manual
mapping is used, otherwise the old mathematical mapping is used.

Signed-off-by: Nick Crast  <nrcrast@gmail.com>
Signed-off-by: Brendan Le Foll <brendan.le.foll@intel.com>
2017-06-06 15:51:30 +02:00
Nick Crast
ff03b2de1d beaglebone.c Beaglebone should now work with newer kernels
Made the pin declarations a little nicer to look at. Found a bug with
the I2C. The higher layers were passing the bus ID itself, not the index
of the device in the i2c_bus array.

Signed-off-by: Nick Crast <nrcrast@gmail.com>
Signed-off-by: Brendan Le Foll <brendan.le.foll@intel.com>
2017-06-06 15:47:50 +02:00
Brendan Le Foll
ecb53c8501 raspberry_pi.c: Remove max spi freq by adding replace func
Closes #255

Signed-off-by: Brendan Le Foll <brendan.le.foll@intel.com>
2017-05-31 12:01:04 +02:00
Mihai Tudor Panu
791fe0c05a de-nano-soc: renamed platform to avoid ambiguity
Signed-off-by: Mihai Tudor Panu <mihai.tudor.panu@intel.com>
Signed-off-by: Brendan Le Foll <brendan.le.foll@intel.com>
2017-04-06 23:53:44 +02:00
g-vidal
ecc64da418 rpi3: Adding detection of raspberrypi3
Signed-off-by: g-vidal <gerard.vidal@ens-lyon.fr>
Signed-off-by: Brendan Le Foll <brendan.le.foll@intel.com>
2017-04-06 20:42:22 +02:00
root
0004dfeefb de10-nano: added initial support for Terasic DE10-Nano-SoC kit
Signed-off-by: Mihai Tudor Panu <mihai.tudor.panu@intel.com>
Signed-off-by: Brendan Le Foll <brendan.le.foll@intel.com>
2017-03-09 17:27:17 +01:00
Cédric Bosdonnat
875289ab94 rpi: take care of gpiochip base
The gpio pins numbers aren't just matching the physical pin numbers...
on some distros like raspbian, with a kernel explicitly setting the
base to 0, it works, but for kernels using the first free slot it
doesn't (see gpiochip_find_base() in kernel's gpiolib.c).

To get the proper gpio pin value, we thus need to find the base for
the corresponding gpiochip. For the raspberry pi, we search for the
chip with a label containing 'bcm2835'.

Signed-off-by: Cédric Bosdonnat <cbosdonnat@suse.com>
Signed-off-by: Brendan Le Foll <brendan.le.foll@intel.com>
2017-03-02 08:32:10 -08:00
Cédric Bosdonnat
c69b6312fa raspberrypi: add 3 model B support
Signed-off-by: Cédric Bosdonnat <cbosdonnat@suse.com>
Signed-off-by: Brendan Le Foll <brendan.le.foll@intel.com>
2017-03-02 08:32:10 -08:00
Cédric Bosdonnat
b20fe9163a rpi: use /proc/device-tree/compatible
While some distributions have a modified /proc/cpuinfo including
the board revision for raspberry pi, most distributions don't
have this.

In order to guess the raspberry pi version in such cases, use
the /proc/device-tree/compatible content as a fallback solution.
The values expected from this file have been taken from
upstream kernel documentation:

Documentation/devicetree/bindings/arm/bcm/brcm,bcm2835.txt

Signed-off-by: Cédric Bosdonnat <cbosdonnat@suse.com>
Signed-off-by: Brendan Le Foll <brendan.le.foll@intel.com>
2017-03-02 08:32:10 -08:00
Cédric Bosdonnat
b453f6633b arm: prefer /proc/device-tree
As per Documentation/ABI/testing/sysfs-firmware-ofw, perfer
/proc/device-tree over /sys/firmware/devicetree/base as this
is the stable one.

Signed-off-by: Cédric Bosdonnat <cbosdonnat@suse.com>
Signed-off-by: Brendan Le Foll <brendan.le.foll@intel.com>
2017-03-02 08:32:10 -08:00
Cédric Bosdonnat
68c6a8df49 rpi: fix PLATFORM_RASPBERRY_PI_ZERO value
Change PLATFORM_RASPBERRY_PI_ZERO into an integer to avoid
build error when comparing it to integer platform_detected.

Signed-off-by: Cédric Bosdonnat <cbosdonnat@suse.com>
Signed-off-by: Brendan Le Foll <brendan.le.foll@intel.com>
2017-03-02 08:32:10 -08:00
Fan Jiang
2c529689ed 96boards.c: Fixed wrong i2c port numbers and array length in bubblegum 96 board
Signed-off-by: Fan Jiang <i@fanjiang.me>
Signed-off-by: Brendan Le Foll <brendan.le.foll@intel.com>
2017-02-22 08:55:50 +00:00
Norbert Wesp
19d69b71da phyboard.c: set each length of snprintf() to defined MAX_SIZE
Signed-off-by: Norbert Wesp <nwesp@phytec.de>
Signed-off-by: Brendan Le Foll <brendan.le.foll@intel.com>
2017-01-31 21:26:21 +00:00
Norbert Wesp
4472ff1629 phyboard-wega: Added platform support for phyBOARD-Wega
Like the beaglebone, the phyBOARD-Wega also got an am335x.
So I merged the four mmap-functions for gpio_context and some
identical defines in a separate header and c-file.
The new platform support-files are based on beaglebone-files.

The documentation of phyBOARD-Wega is still in process,
but for now there are enough informations.
At this time it is possible to use GPIO-Pins and Uart0
(tested via python with mraa). The code for using SPI, I2C and
PWM is also still in process and not tested yet.

Signed-off-by: Norbert Wesp <nwesp@phytec.de>
Signed-off-by: Brendan Le Foll <brendan.le.foll@intel.com>
2017-01-26 22:11:46 +01:00
Fan Jiang
250590e1ed 96boards.c: Added Bubblegum 96 board
- Proper board detection
- Styling refactored using clang-format

Signed-off-by: Fan Jiang <i@fanjiang.me>
Signed-off-by: Brendan Le Foll <brendan.le.foll@intel.com>
2016-11-30 11:13:38 +01:00
Houman Brinjcargorabi
a704a956ea raspberry_pi.c: Added support for pi zero
Signed-off-by: Houman Brinjcargorabi <hbrinjcar@gmail.com>
Signed-off-by: Brendan Le Foll <brendan.le.foll@intel.com>
2016-08-30 12:30:56 +01:00
Thomas Ingleby
fce4daab02 mraa: Correct spelling of capabilities
Type was correctly spelt, but the member in the platform strut was not.
My mistake from 2014.

Signed-off-by: Thomas Ingleby <thomas.ingleby@intel.com>
2016-08-08 21:44:00 +02:00
Brendan Le Foll
88d878648b beaglebone.c: Remove unused variables
Signed-off-by: Brendan Le Foll <brendan.le.foll@intel.com>
2016-05-19 11:51:07 +01:00
Michael Kellner
d3a220479d beaglebone.c: fix beaglebone i2c bus 2 not existing
Signed-off-by: Michael Kellner mkellner@intlweb.com
Signed-off-by: Brendan Le Foll <brendan.le.foll@intel.com>
2016-05-16 09:02:21 +01:00
Brendan Le Foll
8230d7cb45 raspberry_pi.c: add Revision a02082 to rpi detection
Signed-off-by: Brendan Le Foll <brendan.le.foll@intel.com>
2016-03-22 15:23:32 +00:00
Grant Likely
8e8ed7d52d 96boards: Use consistent pin numbering on 96boards platforms
Every 96Boards baseboard uses the same expansion connector, but the
current 96Boards initialization code assigns the SoC specific GPIO
numbers instead of being consistent across all boards. Change the code
to assign 96Boards GPIO-A through GPIO-L to MRAA GPIOs 23-34.

v2: Create info for all the LS connector pins, not just the GPIO pins.
    This gives us room to describe other pins in the future.

Signed-off-by: Grant Likely <grant.likely@linaro.org>
Jorge Ramirez-Ortiz <jorge.ramirez-ortiz@linaro.org>
Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
2016-02-25 13:50:27 +00:00
Brendan Le Foll
51340c6289 arm.c: fix conditionals instead of checking all possibilities
Signed-off-by: Brendan Le Foll <brendan.le.foll@intel.com>
2016-02-08 12:04:11 +00:00
Grant Likely
14960c4190 96boards: Fix recognizing the HiKey platform on recent kernels
Somewhere between kernel v3.18 and v4.4 the output of /proc/cpuinfo
stopped showing the board model. This confused MRAA when running on
HiKey. Eventually we want to do a better job of getting the kernel to
express hardware information to userspace, but in the mean time fix the
test so that MRAA will work on HiKey.

Signed-off-by: Grant Likely <grant.likely@linaro.org>
Cc: Jorge Ramirez-Ortiz <jorge.ramirez-ortiz@linaro.org>
Cc: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
Cc: Brendan Le Foll <brendan.le.foll@intel.com>
Signed-off-by: Brendan Le Foll <brendan.le.foll@intel.com>
2016-02-08 11:57:03 +00:00
Ian Johnson
ab14b9de43 mraa: Prefer calloc over malloc
Switch to using calloc on all calls to malloc where the memory isn't
initialized. For things like the mraa_board_t, not allocating all to zero
causes issues such as with the sub_platform member, where if that's not zero
mraa_get_platform_type will try to dereference a random memory location for the
sub_platform->platform_name, which can result in segmentation faults and other
issues.

Note that in some places where immediately after the malloc call is a copy
operation, there is no need for calloc, as all the memory gets overwritten
anyways, but in cases where there may or may not be memory written to (such as
in mraa_file_contains, with reading from a file), even though in most cases the
memory is overwritten, it could be the case that the read operation does
nothing, but the memory still has non-zero values, by virtue of the fact it
wasn't overwritten.

Signed-off-by: Ian Johnson <ijohnson@wolfram.com>
Signed-off-by: Brendan Le Foll <brendan.le.foll@intel.com>
2016-01-20 08:20:28 +00:00
Srinivas Kandagatla
fcfdeb1304 96boards: remove a typo
This patch removes a typo in the board setup file which sets the number
of gpios to be zero.

Reported-by: Jorge Ramirez-Ortiz <jorge.ramirez-ortiz@linaro.org>
Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
Signed-off-by: Brendan Le Foll <brendan.le.foll@intel.com>
2015-12-18 15:51:20 +00:00
Jorge Ramirez-Ortiz
36fabe3245 96boards: add support to HiKey 96board
This patch adds support to HiKey board which complies with 96boards spec.
More info about board @https://www.96boards.org/products/ce/hikey/

Signed-off-by: Jorge Ramirez-Ortiz <jorge.ramirez-ortiz@linaro.org>
Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
Signed-off-by: Brendan Le Foll <brendan.le.foll@intel.com>
2015-12-14 11:01:38 +00:00
Srinivas Kandagatla
c0dfb71237 96boards: add support to 96boards (https://www.96boards.org/)
This patch adds support to 96boards. 96boards is an open platform
specification. This spec strandardizes the pins on the external
connectors like Low speed and High speed. Given these pins are standard
across multiple boards, I think adding a generic 96boards made sense to
me.

The idea behind adding this generic board file is to make mraa work on
most of the 96boards with minimal changes to board support in libmraa.

This patch adds support to the LS expansion connector which has got 12
gpio pins + 2 i2c + 1 spi and 2 uarts.

For now I have added Dragaon board DB401c support as part of this patch
and is tested.
More info about board @ https://www.96boards.org/products/ce/dragonboard410c/

Long term plan is to get all this configuration from the /sys and
populate the board specifics dynamically, which is bit easy with
96boards specs in-place.

Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
Signed-off-by: Brendan Le Foll <brendan.le.foll@intel.com>
2015-12-14 11:01:28 +00:00
Brendan Le Foll
07343e2ee7 mraa: Remove global advance_func struct and place it in platform configuration
Signed-off-by: Brendan Le Foll <brendan.le.foll@intel.com>
2015-09-08 14:42:04 +01:00