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>;
+	};
+};