boards: shields: lmp90100_evb: add TI LMP90100 EVB shield
Add shield definition for the Texas Instruments LMP90100 Sensor Analog
Frontend (AFE) Evaluation Board (EVB).
Signed-off-by: Henrik Brix Andersen <hebad@vestas.com>
diff --git a/boards/shields/lmp90100_evb/Kconfig.defconfig b/boards/shields/lmp90100_evb/Kconfig.defconfig
new file mode 100644
index 0000000..e7488e5
--- /dev/null
+++ b/boards/shields/lmp90100_evb/Kconfig.defconfig
@@ -0,0 +1,29 @@
+# Copyright (c) 2019 Vestas Wind Systems A/S
+# SPDX-License-Identifier: Apache-2.0
+
+if SHIELD_LMP90100_EVB
+
+if ADC
+
+config SPI
+ default y
+
+config ADC_LMP90XXX
+ default y
+
+config ADC_LMP90XXX_GPIO
+ default y
+
+endif # ADC
+
+if EEPROM
+
+config I2C
+ default y
+
+config EEPROM_AT24
+ default y
+
+endif # EEPROM
+
+endif # SHIELD_LMP90100_EVB
diff --git a/boards/shields/lmp90100_evb/Kconfig.shield b/boards/shields/lmp90100_evb/Kconfig.shield
new file mode 100644
index 0000000..c48aec9
--- /dev/null
+++ b/boards/shields/lmp90100_evb/Kconfig.shield
@@ -0,0 +1,5 @@
+# Copyright (c) 2019 Vestas Wind Systems A/S
+# SPDX-License-Identifier: Apache-2.0
+
+config SHIELD_LMP90100_EVB
+ def_bool $(shields_list_contains,lmp90100_evb)
diff --git a/boards/shields/lmp90100_evb/doc/index.rst b/boards/shields/lmp90100_evb/doc/index.rst
new file mode 100644
index 0000000..1e55d8d
--- /dev/null
+++ b/boards/shields/lmp90100_evb/doc/index.rst
@@ -0,0 +1,57 @@
+.. _lmp90100_evb_shield:
+
+LMP90100 Sensor AFE Evaluation Board
+####################################
+
+Overview
+********
+
+The Texas Instruments LMP90100 Sensor AFE Evaluation Board (EVB) is a
+development kit for the TI LMP90xxx series of analog sensor frontends.
+
+.. figure:: ./lmp90100eb_lmp90100eb.jpg
+ :width: 640px
+ :align: center
+ :alt: LMP90100 EVB
+
+ LMP90100 EVB (Credit: Texas Instruments)
+
+Requirements
+************
+
+This shield can only be used with a development board that provides a
+configuration for Arduino connectors and defines a node alias for the
+SPI interface (see :ref:`shields` for more details).
+
+The SPIO connector pins on the LMP90100 EVB can be connected to the
+Arduino headers of the development board using jumper wires.
+
+For more information about interfacing the LMP90xxx series and the
+LMP90100 EVB in particular, see these TI documents:
+
+- `LMP90100 Sensor AFE Evaluation Board User's Guide`_
+- `LMP90100 Multi-Channel, Low Power 24-Bit Sensor AFE`_
+
+Samples
+*******
+
+Zephyr RTOS includes one sample targeting the LMP90100 EVB:
+
+* :ref:`lmp90100_evb_rtd_sample`
+
+Programming
+***********
+
+Set ``-DSHIELD=lmp90100_evb`` when you invoke ``west build``. For example:
+
+.. zephyr-app-commands::
+ :zephyr-app: samples/shields/lmp90100_evb/thermocouple
+ :board: frdm_k64f
+ :shield: lmp90100_evb
+ :goals: build
+
+.. _LMP90100 Sensor AFE Evaluation Board User's Guide:
+ http://www.ti.com/lit/pdf/snau028
+
+.. _LMP90100 Multi-Channel, Low Power 24-Bit Sensor AFE:
+ http://www.ti.com/product/LMP90100
diff --git a/boards/shields/lmp90100_evb/doc/lmp90100eb_lmp90100eb.jpg b/boards/shields/lmp90100_evb/doc/lmp90100eb_lmp90100eb.jpg
new file mode 100644
index 0000000..9755666
--- /dev/null
+++ b/boards/shields/lmp90100_evb/doc/lmp90100eb_lmp90100eb.jpg
Binary files differ
diff --git a/boards/shields/lmp90100_evb/lmp90100_evb.overlay b/boards/shields/lmp90100_evb/lmp90100_evb.overlay
new file mode 100644
index 0000000..a16bc94
--- /dev/null
+++ b/boards/shields/lmp90100_evb/lmp90100_evb.overlay
@@ -0,0 +1,40 @@
+/*
+ * Copyright (c) 2019 Vestas Wind Systems A/S
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ */
+
+&arduino_spi {
+ status = "okay";
+
+ lmp90100: lmp90100@0 {
+ compatible = "ti,lmp90100";
+ reg = <0x0>;
+ spi-max-frequency = <1000000>;
+ label = "LMP90100";
+ /* Uncomment to use IRQ instead of polling: */
+ /* drdyb-gpios = <&arduino_header 15 GPIO_INT_ACTIVE_LOW>; */
+ #io-channel-cells = <2>;
+
+ gpio {
+ compatible = "ti,lmp90xxx-gpio";
+ gpio-controller;
+ label = "LMP90100_GPIO";
+ #gpio-cells = <2>;
+ };
+ };
+};
+
+&arduino_i2c {
+ status = "okay";
+
+ eeprom0: eeprom@57 {
+ compatible = "atmel,at24";
+ reg = <0x57>;
+ label = "EEPROM_LMP90100_EVB";
+ size = <256>;
+ pagesize = <8>;
+ address-width = <8>;
+ timeout = <5>;
+ };
+};