Commit graph

564 commits

Author SHA1 Message Date
Fabio Baltieri
5a4fd10624 shields: st_b_lcd40_dsi1_mb1166: bump up display init priority
MIPI-DSI initialization priority got delayed in fed377f622, but now
that's at the same priority as the OTM8009A for this board
configuration, and OTM8009A needs MIPI-DSI to be initialized. Being at
the same priority means that it may or may not work depending on the
linking order, this is exposed with:

$ west build -p -b stm32h747i_disco_m7 samples/subsys/display/lvgl \
		-DSHIELD=st_b_lcd40_dsi1_mb1166 \
		-DCONFIG_CHECK_INIT_PRIORITIES=y
...
WARNING: /soc/dsihost@50000000/otm8009a@0 POST_KERNEL 86 ==
	/soc/dsihost@50000000 POST_KERNEL 86

Bumping the display priority up to make sure it still works.

Signed-off-by: Fabio Baltieri <fabiobaltieri@google.com>
2023-07-10 09:33:45 +02:00
Joseph Yates
f87a589f5d boards: shields: Adding support for the adafruit can picowbell shield
Adding support for the adafruit can picowbell shield for the
raspberry pi picoi. Also added nodelable for spi0 called 'pico_spi'
as well as an GPIO nexus node 'pico_header'

Signed-off-by: Joseph Yates <joeyatessecond@gmail.com>
2023-07-10 09:26:42 +02:00
Andriy Gelman
7ea8e2f507 shields: Add arduino uno click shield
The shield converts Arduino UNO R3 headers to two mikroBUS
sockets.
Two mickoBUS sockets are exposed via the overlay labelled
mikrobus_header_1 and mikrobus_header_2. mikrobus_header_1
is used as the default and assigned the node label mikrobus_header.

Signed-off-by: Andriy Gelman <andriy.gelman@gmail.com>
2023-07-07 10:50:46 +02:00
Andy Sinclair
e484ab2fa8 boards: shields: npm1300_ek: Specify regulator initial modes
The npm1300_ek overlay has been updated to explictly specify
the initialisation modes for the dual purpose LDO / LDSW outputs.

Signed-off-by: Andy Sinclair <andy.sinclair@nordicsemi.no>
2023-06-23 15:43:00 +00:00
Andy Sinclair
198d5b889f boards: shields: npm1300_ek: Added LED support
Updated overlay to include LED support

Signed-off-by: Andy Sinclair <andy.sinclair@nordicsemi.no>
2023-06-23 08:55:13 +00:00
Nicolas Granger
17537564d4 boards: shields: Fix naming scheme for shield node labels
Replaced incorrect names with correct ones.
Fixes: #50526

Signed-off-by: Nicolas Granger <nicolas.granger01@st.com>
2023-06-20 10:44:31 +00:00
Fabio Baltieri
b31215e34f modules: lvgl: replace LV_Z_DPI with LV_DPI_DEF
It looks like LV_Z_DPI is not used anywhere and only lived in the
context of an incorrect board symbol definition so far (moved to
Kconfig.lvgl in the previous patch).

This was probably meant to be LV_DPI_DEF (which actually exists in the
LVGL module) and was renamed incorrectly, fix it by renaming it
everywhere.

Signed-off-by: Fabio Baltieri <fabiobaltieri@google.com>
2023-06-13 07:26:29 -04:00
Fabio Baltieri
9d7bd52313 modules: lvgl: define the Kconfig types used in boards
Some boards override default for few LVGL LV_Z_* symbols. This causes
the build to fail if the module is not present in the system, and has
been worked around on one board by repeating the types in the board
Kconfig file.

Fix this properly by defining the known type for all symbols used in
boards in modules/Kconfig.lvgl.

Signed-off-by: Fabio Baltieri <fabiobaltieri@google.com>
2023-06-13 07:26:29 -04:00
Henrik Brix Andersen
b12eb78f35 drivers: can: increase default initialization priority from 50 to 80
Increase the default CAN controller driver initialization priority from
KERNEL_INIT_PRIORITY_DEVICE (50) to 80 to allow CAN controllers on SPI
busses have their bus initialized prior to initializing the CAN controller
driver.

The only in-bound dependency on CAN controller drivers - apart from
application level code - is the drivers/net/canbus.c driver, which already
defaults to an initialization level of 81.

Fixes: #55745

Signed-off-by: Henrik Brix Andersen <hebad@vestas.com>
2023-06-01 19:03:12 -04:00
Nick Ward
c5f725e672 drivers: sensor: vl53l0x: fix XSHUT pin as active low
Also utilises gpio_pin_configure_dt() API to configure and set pin
state at the same time.

Signed-off-by: Nick Ward <nix.ward@gmail.com>
2023-05-27 06:19:29 -04:00
Steffen Jahnke
39b50ee37c boards: shields: Adding a new amg88xx shield
Added the new amg88xx sensor shield with designation
amg88xx_grid_eye_eval_shield and updated the overlay, Kconfig and
documentation files accordingly.
The platforms that are compatible with new shield changed, so
sensor sample yaml file was extended for both available shields.

Signed-off-by: Steffen Jahnke <steffen.jahnke@eu.panasonic.com>
2023-05-25 13:31:29 +00:00
Erwan Gouriou
34b1f7c737 boards: shields: Clean up Kconfig.defconfig files
Shield's Kconfig.defconfig files should only be used to configure
components options, or drivers specific (eg init priority, ..), depending
on driver activation which remains application responsibility.
High level components (such as DISPLAY) should not be enabled by default on
boards activation (which is similar to policy used for boards).

Additionally, clean up busses activation (SPI, I2C), which is not required
as bus activation is already done automatically on bus devices activation.

Signed-off-by: Erwan Gouriou <erwan.gouriou@linaro.org>
2023-05-23 13:02:36 +02:00
Andy Sinclair
1741a02ba9 boards: shields: npm1300ek: Added button to shield overlay
New silicon revision supports reading of GPIO inputs.
Button added to shield overlay to support new functionality.

Signed-off-by: Andy Sinclair <andy.sinclair@nordicsemi.no>
2023-05-22 10:15:46 +02:00
Andreas Sandberg
5ca33e20a8 drivers: ssd16xx: Add support for partial refresh profiles
Add support for partial refresh profiles. This makes it possible to
use partial refresh on generation 2 devices which are able to store
partial refresh LUTs in OTP.

Partial refresh is only enabled if a partial profile has been
provided. The display will use the full refresh profile if in this
case.

Devices that need custom LUTs and voltages can specify them separately
for the full and partial profiles. The controller will be reset when
changing profiles which means that profiles always override the
default reset values. This means that it is, for example, possible to
use default values and LUTs from OTP for a full refresh and a custom
profile for partial refreshes.

For example, to use a GoodDisplay GDEY027T91 with partial refresh
simply use the following device tree fragment:

display: ssd1680@0 {
	compatible = "solomon,ssd1680";

	spi-max-frequency = <4000000>;
	duplex = <SPI_HALF_DUPLEX>;
	reg = <0>;

	dc-gpios = <&arduino_header 15 GPIO_ACTIVE_LOW>;
	reset-gpios = <&arduino_header 14 GPIO_ACTIVE_LOW>;
	busy-gpios = <&arduino_header 13 GPIO_ACTIVE_HIGH>;

	/* Enable the built-in temperature sensor */
	tssv = <0x80>;

	width = <264>;
	height = <176>;

        /* Enable partial refresh using built-in LUT */
	partial {
	};
};

Signed-off-by: Andreas Sandberg <andreas@sandberg.uk>
2023-05-11 14:40:50 -07:00
Andreas Sandberg
40437c675c drivers: ssd16xx: Update DT bindings for multiple profiles
Update the device tree bindings for the SSD16xx driver to make it
possible to specify multiple refresh profiles.

The only profile currently supported is the 'full' profile.

Signed-off-by: Andreas Sandberg <andreas@sandberg.uk>
2023-05-11 14:40:50 -07:00
Andreas Sandberg
5f781f4b11 drivers: ssd16xx: Use device-specific compatibles
The SSD16xx driver currently provides basic support for most chips in
the Solomon Systech SSD16xx range of e-paper drivers. We currently use
the SSD1608, SSD1673, SSD1675A, and SSD1681 in various boards
supported by Zephyr.

The main user-facing difference between the various SSD16xx chips is
the resolution they support (sources & gates), but there are other
differences as well. For example:

 * 8 or 16 bits used to represent x coordinates
 * 8 or 16 bits used to represent y coordinates
 * Differences in refresh configuration (SSD16XX_CMD_UPDATE_CTRL2)
 * Differences in LUT sizes

The driver currently assumes that the user specifies the number of
bits used to describe coordinates. However, as we add support for more
chips, more of the differences will become apparent and need
workaround.

Comparing data sheets from different chips in the SSD16xx range
suggests that there are (at least) two different generations
present. These differ in the size of the LUTs they expect and the way
they handle partial refresh. This impacts register layout where
SSD16XX_CMD_UPDATE_CTRL2 uses bit 3 selects "mode 2" whereas older
devices uses this for a mode referred to as "initial".

In order to add support for partial refresh in newer devices, we need
to be able to distinguish between the different generations of the
chip. It might be possible to add a DT property to indicate the
revision, but that seems like a bit of an anti-pattern and it would be
hard for users to specify the correct chip generation.

This change introduces chip-specific compatible strings instead of the
generic SSD16xx. There is unfortunately clear pattern that can be used
to distinguish different generations, so the full chip name must be
specified. A benefit of this is that we don't need to specify the
width of the fields describing coordinates in device trees.

Signed-off-by: Andreas Sandberg <andreas@sandberg.uk>
2023-05-11 14:40:50 -07:00
Daniel DeGrasse
7c228c9042 drivers: display: stm32_ltdc: Update LTDC driver to use LCDIF binding
Update LTDC driver to use LCDIF bindings, to simplify bindings
between LCD interface controller IP blocks.

Boards supporting the LTDC are also updated to use the properties as
declared by the new lcd controller binding

Signed-off-by: Daniel DeGrasse <daniel.degrasse@nxp.com>
2023-05-11 10:04:24 +02:00
TOKITA Hiroshi
ef95b3e870 boards: shields: mikroe_eth_click: Remove ETH_ENC28J60_0 config
Remove ETH_ENC28J60_0 from defconfig.

Signed-off-by: TOKITA Hiroshi <tokita.hiroshi@fujitsu.com>
2023-05-05 16:17:29 +02:00
TOKITA Hiroshi
5be6c1789e boards: shields: mikroe_eth_click: Enable full-duplex
Following the change that replaces ETH_ENC28J60_0_FULL_DUPLEX
by devicetree property.
Enable `full-duplex` explicitly in overlay files.

Signed-off-by: TOKITA Hiroshi <tokita.hiroshi@fujitsu.com>
2023-05-05 16:17:29 +02:00
Andy Sinclair
1b4f652707 boards: shields: npm1300_ek: Added initial charger sensor
Charger sensor support added to NPM1300_EK shield

Signed-off-by: Andy Sinclair <andy.sinclair@nordicsemi.no>
2023-05-03 15:04:18 +02:00
Henrik Brix Andersen
d4d85803ea boards: shields: add adafruit data logger shield
Add definition for the Adafruit Data Logger Shield. This shield is
equipped with a PCF8523 RTC, an SD card slot, a couple of user LEDs
and a prototyping area.

Signed-off-by: Henrik Brix Andersen <henrik@brixandersen.dk>
2023-04-27 09:51:42 +02:00
Andy Sinclair
046dda0fa1 boards: shields: npm1300_ek: Board configuration for NPM1300_EK
Initial board configuration for NPM1300_EK.
Includes configuration for regulators and GPIO only.

Signed-off-by: Andy Sinclair <andy.sinclair@nordicsemi.no>
2023-04-17 10:14:40 +02:00
Rico Ganahl
d48bdb841f boards: shield: introduce st_b_lcd40_dsi1_mb1166
Add support for STMicroelectronics B-LCD40-DSI1 board supporting
MIPI DSI display.

Signed-off-by: Rico Ganahl <rico.ganahl@bytesatwork.ch>
2023-04-06 11:51:06 +02:00
Fabio Baltieri
aac23e5bf7 input: convert the ft5336 driver from kscan to input
Convert the ft5336 to the input subsystem, fix all the config in the
repository and add the Kscan compatibility driver to the current dts
driver instances.

Signed-off-by: Fabio Baltieri <fabiobaltieri@google.com>
2023-04-04 08:43:06 +02:00
Tom Burdick
524f01b60c shields: Add TI building sensor shield
The building sensor shield has several useful sensors including a 6 axis
inertial sensor, 3 axis magnetometer, optical light sensor, temperature and
humidity sensor, and connectors for offboard temperature sensors.

Signed-off-by: Tom Burdick <thomas.burdick@intel.com>
2023-03-30 17:33:22 -04:00
Guillaume Gautier
fef5425379 boards: update stm32 i2s pll configuration
Add plli2s node to dts/overlay file for boards that already use I2S.
Remove old I2S Kconfig not used anymore

Signed-off-by: Guillaume Gautier <guillaume.gautier-ext@st.com>
2023-03-30 13:47:55 +02:00
Gerard Marull-Paretas
6cbe9a0c16 boards: shields: npm1100_ek: add initial support
Add initial support for the nPM1100 EK. The EK is expected to be
connected to Arduino header pins (D2/3/4/5).

Signed-off-by: Gerard Marull-Paretas <gerard.marull@nordicsemi.no>
2023-01-12 19:07:05 +01:00
Nick Ward
402324180f boards: shields: add Adafruit 16-channel PWM/Servo
Adds Adafruit 16-channel PWM/Servo Shield

Signed-off-by: Nick Ward <nix.ward@gmail.com>
2023-01-11 09:38:18 +01:00
Johann Fischer
bb7ab1e0f2 shields: add Sparkfun MAX3421E shield support
Add Sparkfun MAX3421E shield support.

Signed-off-by: Johann Fischer <johann.fischer@nordicsemi.no>
2022-12-16 13:21:12 +01:00
Gerard Marull-Paretas
5f8d59d69f boards: npm6001_ek: add regulator entries
Add entries for the BUCK0/1/2/3 and LDO0/1 regulators. Note that voltage
min/max limits have been set to the hardware limits. They can be
adjusted using overlays in applications, depending on the consumer
circuit constraints.

Signed-off-by: Gerard Marull-Paretas <gerard.marull@nordicsemi.no>
2022-12-16 11:26:47 +01:00
Konstantinos Papadopoulos
9d3251e37a shields: add Semtech SX1262MB2DAS
Adding support for SX1262MB2DAS board which comes with SX1262.

Signed-off-by: Konstantinos Papadopoulos <kostas.papadopulos@gmail.com>
2022-12-08 10:33:38 +00:00
Gerard Marull-Paretas
767dd47f98 samples: shields: npm6001_ek: initial version
Add a sample that demonstrates usage of the nPM6001 PMIC (all of its
functionalities).

Signed-off-by: Gerard Marull-Paretas <gerard.marull@nordicsemi.no>
2022-11-22 11:05:19 +01:00
Gerard Marull-Paretas
1d4b1e3725 boards: shields: npm6001_ek: initial support
Add support for the nPM6001 Eval Kit.

Signed-off-by: Gerard Marull-Paretas <gerard.marull@nordicsemi.no>
2022-11-22 11:05:19 +01:00
Thomas Stranger
95778c3227 boards: shields: mcp2515: doc: update sample path
The path of the sample has changed in the meantime, update this in
the docs of the board.

Signed-off-by: Thomas Stranger <thomas.stranger@outlook.com>
2022-10-27 11:02:57 +02:00
Erwan Gouriou
87d7c8f6a2 boards: shields: x_nucleo_iks01a1: '-' is not allowed in nodelabels
When moving nodelabels to <device_name>_<shields_name>, '-' included
in <device_name> was then introduced in the  device nodelabel.
But '-' isn't an allowed nodelabel character, hence this is breaking
compilation with those shields.
Convert '-' to '_'.

Signed-off-by: Erwan Gouriou <erwan.gouriou@linaro.org>
2022-10-05 07:34:12 -05:00
Erwan Gouriou
adf927cca1 boards: shields: _nucleo_53l0a1: Fix use of nodelabels
Shield's nodelabels should now be in the form <device>_<shield_name>.
Besides changing the nodes nodelabels, their usages should be fixed.

Signed-off-by: Erwan Gouriou <erwan.gouriou@linaro.org>
2022-10-05 16:15:44 +09:00
Erwan Gouriou
8cbd1bb186 boards: shields: x_nucleo_idb05a1: '-' is not an allowed nodelabel char
When adding nodelabels to shields devices, it should be taken car not to
use forbidden characters.
Fix existing occurrence.

Signed-off-by: Erwan Gouriou <erwan.gouriou@linaro.org>
2022-10-03 14:15:08 +02:00
Erwan Gouriou
ffcbc391ef boards: shields: frdm_kw41z: No reason to change chosen node
This nodelabel was changed while converting all shields to new nodelabel
scheme.
On this particular nodelabel, there was no change to be done, as it doesn't
refer to a node defined in the shield.
Revert this chagne.

Signed-off-by: Erwan Gouriou <erwan.gouriou@linaro.org>
2022-10-03 19:14:20 +09:00
Erwan Gouriou
6b23044f4f boards: shields: fix indentation issues
Fix indentation issues in shield overlays seen when reviewing
previous commit.

Signed-off-by: Erwan Gouriou <erwan.gouriou@linaro.org>
2022-10-03 10:16:57 +02:00
Erwan Gouriou
07b642d94f boards: shields: Update node_label according to new naming scheme
Update existing shields to conform with new node label naming scheme.

Signed-off-by: Erwan Gouriou <erwan.gouriou@linaro.org>
2022-10-03 10:16:57 +02:00
Stephanos Ioannidis
235342252c boards: mcp2515: Update outdated link
This commit updates the outdated link for the "DFRobot CAN BUS Shield
V2.0 schematic."

The repository containing this file has been renamed to
"DFRobot/DFRobot_MCP2515".

Signed-off-by: Stephanos Ioannidis <stephanos.ioannidis@nordicsemi.no>
2022-09-29 12:20:14 +02:00
Stephanos Ioannidis
2a0e55c9e5 boards: link_board_eth: Update outdated link
This commit updates the outdated link for "link board ETH Website" with
that of the "reel board," which contains the information on the "link
board ETH."

Signed-off-by: Stephanos Ioannidis <stephanos.ioannidis@nordicsemi.no>
2022-09-29 12:20:14 +02:00
Henrik Brix Andersen
97173b61f0 boards: shields: use shield-specific sdhc nodelabels
Use shield-specific sdhc devicetree nodelabels in order not to clash with
sdhc nodelabels from the board devicetree.

Signed-off-by: Henrik Brix Andersen <hebad@vestas.com>
2022-09-08 11:26:09 +00:00
Andreas Sandberg
fd62b9fc7d shields: Add a GDEW042T2 with fast partial refresh
Add GoodDisplay GDEW042T2 with fast partial refresh. Based on
configuration from GoodDisplay's Arduino example.

Signed-off-by: Andreas Sandberg <andreas@sandberg.uk>
2022-09-02 11:21:08 +02:00
Andreas Sandberg
957e22976d drivers: uc81xx: Specify overrides in a DT child node
Introduce the concept of refresh profiles which are specified as a
child node in the device tree. This makes it possible to use different
overrides for different types of refreshes (full/partial).

The only profile that is currently supported is the "full" profile.

Signed-off-by: Andreas Sandberg <andreas@sandberg.uk>
2022-09-02 11:21:08 +02:00
Bartosz Golaszewski
169e21ab34 shields: adafruit_2_8_tft: fix build failure
We're now taking the kscan device from the zephyr,keyboard-scan node. Add
it to the overlay.

Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@huawei.com>
2022-09-01 14:59:25 +00:00
Kumar Gala
662f0741dd wifi: remove Kconfig.defconfig* setting of Wifi drivers
Now that Wifi drivers are enabled based on devicetree
we need to remove any cases of them getting enabled by
Kconfig.defconfig* files as this can lead to errors.

Signed-off-by: Kumar Gala <galak@kernel.org>
2022-08-31 21:57:06 +00:00
Gerard Marull-Paretas
e81e92dbb9 boards: convert images to JPEG and reduce image size
The boards folder uses ~142.8 MB, being the largest in the repository.
This is due mostly to board images, which are in most cases not
optimized for web content. This patch tries to address this problem by
converting all pictures to JPEG (quality 75) and by adjusting its size
up to 750 px (the width of the documentation content). Images that
specified a fixed width in rst files are converted down to that value
instead.

With this patch, folder goes down to ~53.5 MB from 142.8 MB (-~63%).
Note that this patch introduces a new set of binary files to git
history, though (bad).

The process has been automated using this quickly crafted Python script:

```python
from pathlib import Path
import re
import subprocess

def process(doc, image, image_jpeg, size):
    subprocess.run(
        (
	     f"convert {image}"
	     "-background white -alpha remove -alpha off -quality 75"
	     f"-resize {size}\> {image_jpeg}"
	),
        shell=True,
        check=True,
        cwd=doc.parent,
    )
    if image != image_jpeg:
        (doc.parent / image).unlink()

for doc in Path(".").glob("boards/**/*.rst"):
    with open(doc) as f:
        content = ""
        image = None
        for line in f:
            m = re.match(r"^(\s*)\.\. (image|figure):: (.*)$", line)
            if m:
                if image:
                    process(doc, image, image_jpeg, size)

                image = Path(m.group(3))
                if image.suffix not in (".jpg", ".jpeg", ".png"):
                    content += line
                    image = None
                    continue

                image_jpeg = image.parent / (image.stem + ".jpg")
                size = 750
                content += (
                    f"{m.group(1)}.. {m.group(2)}:: {image_jpeg}\n"
                )
            elif image:
                m = re.match(r"\s*:height:\s*[0-9]+.*$", line)
                if m:
                    continue

                m = re.match(r"\s*:width:\s*([0-9]+).*$", line)
                if m:
                    size = min(int(m.group(1)), size)
                    continue

                content += line
                if line == "\n":
                    process(doc, image, image_jpeg, size)
                    image = None
            else:
                content += line

    with open(doc, "w") as f:
        f.write(content)
```

Signed-off-by: Gerard Marull-Paretas <gerard.marull@nordicsemi.no>
2022-08-29 10:18:18 +02:00
Dinesh Kumar K
346c485a88 boards: shields: waveshare_epaper: fix mismatch in compatible property
renamed gooddisplay,gdew042t2 to gooddisplay,gdew075t7 as like the
shield device file name.

Signed-off-by: Dinesh Kumar K <dinesh@linumiz.com>
2022-08-16 15:56:39 -05:00
Andreas Sandberg
a43fd92c4e drivers: ssd16xx: Make SSD1673 registers optional
The SSD16xx driver currently hard-codes a couple of register overrides
that aren't relevant or even correct for many devices. Make them
optional device tree properties instead.

Note that this changes the behavior for panels that expect
SSD16XX_CMD_DUMMY_LINE and SSD16XX_CMD_GATE_LINE_WIDTH to be set by
the driver. This fixes a bug where the incorrect value
was written to all SSD16xx panels except for GDEH0213B1 and GDEH029A1.

The overlay files for devices that need dummy line and gate line width
to be specified have been updated as a part of this commit.

Signed-off-by: Andreas Sandberg <andreas@sandberg.uk>
2022-08-16 11:32:26 +02:00