2020-04-20 17:35:27

by Manivannan Sadhasivam

[permalink] [raw]
Subject: [PATCH 0/6] Add Stinger96 and IoT Box board support

From: Manivannan Sadhasivam <[email protected]>

Hello,

This series adds Stinger96 and IoT Box board support. These boards are
based on STM32MP157A SoC, designed and manufactured by Shiratech solutions.

The Stinger96 is a base board (96Boards IoT Extended edition) while IoT Box
adds one mezzanine on top of it and sold as a gateway device.

This series depends on below patchsets already submitted and gone through
reviews:

[PATCH v3 0/3] Add Reset and Wakeup support for CCS811
[PATCH v3 0/2] Add CTS/RTS gpio support to STM32 UART

More information about these boards can be found in below links:

https://www.shiratech-solutions.com/products/stinger96/
https://www.shiratech-solutions.com/products/iot-box/

Thanks,
Mani

Manivannan Sadhasivam (6):
dt-bindings: Add vendor prefix for Shiratech Solutions
ARM: dts: Add missing pinctrl entries for STM32MP15
dt-bindings: arm: stm32: Document Stinger96 compatible
ARM: dts: stm32mp1: Add Stinger96 board support
dt-bindings: arm: stm32: Document IoT Box compatible
ARM: dts: stm32mp1: Add IoT Box board support

.../devicetree/bindings/arm/stm32/stm32.yaml | 2 +
.../devicetree/bindings/vendor-prefixes.yaml | 2 +
arch/arm/boot/dts/Makefile | 2 +
arch/arm/boot/dts/stm32mp15-pinctrl.dtsi | 64 ++++
arch/arm/boot/dts/stm32mp157a-iot-box.dts | 92 +++++
arch/arm/boot/dts/stm32mp157a-stinger96.dts | 12 +
arch/arm/boot/dts/stm32mp157a-stinger96.dtsi | 342 ++++++++++++++++++
7 files changed, 516 insertions(+)
create mode 100644 arch/arm/boot/dts/stm32mp157a-iot-box.dts
create mode 100644 arch/arm/boot/dts/stm32mp157a-stinger96.dts
create mode 100644 arch/arm/boot/dts/stm32mp157a-stinger96.dtsi

--
2.17.1


2020-04-20 17:36:06

by Manivannan Sadhasivam

[permalink] [raw]
Subject: [PATCH 3/6] dt-bindings: arm: stm32: Document Stinger96 compatible

From: Manivannan Sadhasivam <[email protected]>

Document devicetree compatible of Shiratech Stinger96 board.

Signed-off-by: Manivannan Sadhasivam <[email protected]>
---
Documentation/devicetree/bindings/arm/stm32/stm32.yaml | 1 +
1 file changed, 1 insertion(+)

diff --git a/Documentation/devicetree/bindings/arm/stm32/stm32.yaml b/Documentation/devicetree/bindings/arm/stm32/stm32.yaml
index 71ea3f04ab9c..3849f1d0e03e 100644
--- a/Documentation/devicetree/bindings/arm/stm32/stm32.yaml
+++ b/Documentation/devicetree/bindings/arm/stm32/stm32.yaml
@@ -39,6 +39,7 @@ properties:
- enum:
- arrow,stm32mp157a-avenger96 # Avenger96
- lxa,stm32mp157c-mc1
+ - shiratech,stm32mp157a-stinger96 # Stinger96
- st,stm32mp157c-ed1
- st,stm32mp157a-dk1
- st,stm32mp157c-dk2
--
2.17.1

2020-04-20 17:37:01

by Manivannan Sadhasivam

[permalink] [raw]
Subject: [PATCH 6/6] ARM: dts: stm32mp1: Add IoT Box board support

From: Manivannan Sadhasivam <[email protected]>

IoT Box is an IoT gateway device based on Stinger96 board powered by
STM32MP1 SoC, designed and manufactured by Shiratech Solutions. This
device makes use of Stinger96 board by having it as a base board with
one additional mezzanine on top.

Following are the features exposed by this device in addition to the
Stinger96 board:

* WiFi/BT
* CCS811 VOC sensor
* 2x Digital microphones IM69D130
* 12x WS2812B LEDs

Following peripherals are tested and known to work:

* WiFi/BT
* CCS811

More information about this device can be found in Shiratech website:
https://www.shiratech-solutions.com/products/iot-box/

Signed-off-by: Manivannan Sadhasivam <[email protected]>
---
arch/arm/boot/dts/Makefile | 1 +
arch/arm/boot/dts/stm32mp157a-iot-box.dts | 92 +++++++++++++++++++++++
2 files changed, 93 insertions(+)
create mode 100644 arch/arm/boot/dts/stm32mp157a-iot-box.dts

diff --git a/arch/arm/boot/dts/Makefile b/arch/arm/boot/dts/Makefile
index 966b81dfffd6..455ec6eb6303 100644
--- a/arch/arm/boot/dts/Makefile
+++ b/arch/arm/boot/dts/Makefile
@@ -1030,6 +1030,7 @@ dtb-$(CONFIG_ARCH_STM32) += \
stm32h743i-disco.dtb \
stm32mp157a-avenger96.dtb \
stm32mp157a-dk1.dtb \
+ stm32mp157a-iot-box.dtb \
stm32mp157a-stinger96.dtb \
stm32mp157c-dhcom-pdk2.dtb \
stm32mp157c-dk2.dtb \
diff --git a/arch/arm/boot/dts/stm32mp157a-iot-box.dts b/arch/arm/boot/dts/stm32mp157a-iot-box.dts
new file mode 100644
index 000000000000..fa1c006ce531
--- /dev/null
+++ b/arch/arm/boot/dts/stm32mp157a-iot-box.dts
@@ -0,0 +1,92 @@
+// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
+/*
+ * Copyright (C) 2020 Manivannan Sadhasivam
+ */
+
+/dts-v1/;
+#include "stm32mp157a-stinger96.dtsi"
+
+/ {
+ model = "Shiratech STM32MP157A IoT Box";
+ compatible = "shiratech,stm32mp157a-iot-box", "st,stm32mp157";
+
+ wlan_pwr: regulator-wlan {
+ compatible = "regulator-fixed";
+
+ regulator-name = "wl-reg";
+ regulator-min-microvolt = <3300000>;
+ regulator-max-microvolt = <3300000>;
+
+ gpios = <&gpiog 3 GPIO_ACTIVE_HIGH>;
+ enable-active-high;
+ };
+};
+
+&i2c2 {
+ ccs811@5b {
+ compatible = "ams,ccs811";
+ reg = <0x5b>;
+ wakeup-gpios = <&gpioa 12 GPIO_ACTIVE_LOW>;
+ reset-gpios = <&gpioa 11 GPIO_ACTIVE_LOW>;
+ };
+};
+
+&pinctrl {
+ /*
+ * Note: The SDMMC2 pins lack external pullups on data lines. Hence,
+ * we need to enable it in the SoC.
+ */
+ sdmmc2_b4_pins_pull: sdmmc2-b4-pull {
+ pins1 {
+ pinmux = <STM32_PINMUX('B', 14, AF9)>, /* SDMMC2_D0 */
+ <STM32_PINMUX('B', 15, AF9)>, /* SDMMC2_D1 */
+ <STM32_PINMUX('B', 3, AF9)>, /* SDMMC2_D2 */
+ <STM32_PINMUX('B', 4, AF9)>, /* SDMMC2_D3 */
+ <STM32_PINMUX('G', 6, AF10)>; /* SDMMC2_CMD */
+ slew-rate = <1>;
+ bias-pull-up;
+ };
+ pins2 {
+ pinmux = <STM32_PINMUX('E', 3, AF9)>; /* SDMMC2_CK */
+ slew-rate = <2>;
+ drive-push-pull;
+ bias-disable;
+ };
+ };
+};
+
+/* WiFi */
+&sdmmc2 {
+ pinctrl-names = "default", "opendrain", "sleep";
+ pinctrl-0 = <&sdmmc2_b4_pins_pull>;
+ pinctrl-1 = <&sdmmc2_b4_od_pins_b>;
+ pinctrl-2 = <&sdmmc2_b4_sleep_pins_a>;
+ broken-cd;
+ non-removable;
+ st,neg-edge;
+ bus-width = <1>;
+ vmmc-supply = <&wlan_pwr>;
+ status = "okay";
+
+ #address-cells = <1>;
+ #size-cells = <0>;
+ brcmf: bcrmf@1 {
+ reg = <1>;
+ compatible = "brcm,bcm4329-fmac";
+ };
+};
+
+/* Bluetooth */
+&uart4 {
+ /* Note: HW flow control is broken, hence using custom CTS/RTS gpios */
+ /delete-property/st,hw-flow-ctrl;
+ cts-gpios = <&gpioa 15 GPIO_ACTIVE_LOW>;
+ rts-gpios = <&gpiob 0 GPIO_ACTIVE_LOW>;
+ status = "okay";
+
+ bluetooth {
+ shutdown-gpios = <&gpiog 2 GPIO_ACTIVE_HIGH>;
+ compatible = "brcm,bcm43438-bt";
+ max-speed = <115200>;
+ };
+};
--
2.17.1

2020-04-29 08:04:29

by Alexandre Torgue

[permalink] [raw]
Subject: Re: [PATCH 6/6] ARM: dts: stm32mp1: Add IoT Box board support

Hi Mani

On 4/20/20 7:31 PM, [email protected] wrote:
> From: Manivannan Sadhasivam <[email protected]>
>
> IoT Box is an IoT gateway device based on Stinger96 board powered by
> STM32MP1 SoC, designed and manufactured by Shiratech Solutions. This
> device makes use of Stinger96 board by having it as a base board with
> one additional mezzanine on top.
>
> Following are the features exposed by this device in addition to the
> Stinger96 board:
>
> * WiFi/BT
> * CCS811 VOC sensor
> * 2x Digital microphones IM69D130
> * 12x WS2812B LEDs
>
> Following peripherals are tested and known to work:
>
> * WiFi/BT
> * CCS811
>
> More information about this device can be found in Shiratech website:
> https://www.shiratech-solutions.com/products/iot-box/
>
> Signed-off-by: Manivannan Sadhasivam <[email protected]>
> ---
> arch/arm/boot/dts/Makefile | 1 +
> arch/arm/boot/dts/stm32mp157a-iot-box.dts | 92 +++++++++++++++++++++++
> 2 files changed, 93 insertions(+)
> create mode 100644 arch/arm/boot/dts/stm32mp157a-iot-box.dts
>
> diff --git a/arch/arm/boot/dts/Makefile b/arch/arm/boot/dts/Makefile
> index 966b81dfffd6..455ec6eb6303 100644
> --- a/arch/arm/boot/dts/Makefile
> +++ b/arch/arm/boot/dts/Makefile
> @@ -1030,6 +1030,7 @@ dtb-$(CONFIG_ARCH_STM32) += \
> stm32h743i-disco.dtb \
> stm32mp157a-avenger96.dtb \
> stm32mp157a-dk1.dtb \
> + stm32mp157a-iot-box.dtb \
> stm32mp157a-stinger96.dtb \
> stm32mp157c-dhcom-pdk2.dtb \
> stm32mp157c-dk2.dtb \
> diff --git a/arch/arm/boot/dts/stm32mp157a-iot-box.dts b/arch/arm/boot/dts/stm32mp157a-iot-box.dts
> new file mode 100644
> index 000000000000..fa1c006ce531
> --- /dev/null
> +++ b/arch/arm/boot/dts/stm32mp157a-iot-box.dts
> @@ -0,0 +1,92 @@
> +// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
> +/*
> + * Copyright (C) 2020 Manivannan Sadhasivam
> + */
> +
> +/dts-v1/;
> +#include "stm32mp157a-stinger96.dtsi"
> +
> +/ {
> + model = "Shiratech STM32MP157A IoT Box";
> + compatible = "shiratech,stm32mp157a-iot-box", "st,stm32mp157";
> +
> + wlan_pwr: regulator-wlan {
> + compatible = "regulator-fixed";
> +
> + regulator-name = "wl-reg";
> + regulator-min-microvolt = <3300000>;
> + regulator-max-microvolt = <3300000>;
> +
> + gpios = <&gpiog 3 GPIO_ACTIVE_HIGH>;
> + enable-active-high;
> + };
> +};
> +
> +&i2c2 {
> + ccs811@5b {
> + compatible = "ams,ccs811";
> + reg = <0x5b>;
> + wakeup-gpios = <&gpioa 12 GPIO_ACTIVE_LOW>;
> + reset-gpios = <&gpioa 11 GPIO_ACTIVE_LOW>;
> + };
> +};
> +
> +&pinctrl {

Currently all pinmux definition are done in stm32mp15-pinctrl.dtsi file.
Can you move it ?

Otherwise (except commit title) it is ok for me.

thanks
alex

> + /*
> + * Note: The SDMMC2 pins lack external pullups on data lines. Hence,
> + * we need to enable it in the SoC.
> + */
> + sdmmc2_b4_pins_pull: sdmmc2-b4-pull {
> + pins1 {
> + pinmux = <STM32_PINMUX('B', 14, AF9)>, /* SDMMC2_D0 */
> + <STM32_PINMUX('B', 15, AF9)>, /* SDMMC2_D1 */
> + <STM32_PINMUX('B', 3, AF9)>, /* SDMMC2_D2 */
> + <STM32_PINMUX('B', 4, AF9)>, /* SDMMC2_D3 */
> + <STM32_PINMUX('G', 6, AF10)>; /* SDMMC2_CMD */
> + slew-rate = <1>;
> + bias-pull-up;
> + };
> + pins2 {
> + pinmux = <STM32_PINMUX('E', 3, AF9)>; /* SDMMC2_CK */
> + slew-rate = <2>;
> + drive-push-pull;
> + bias-disable;
> + };
> + };
> +};
> +
> +/* WiFi */
> +&sdmmc2 {
> + pinctrl-names = "default", "opendrain", "sleep";
> + pinctrl-0 = <&sdmmc2_b4_pins_pull>;
> + pinctrl-1 = <&sdmmc2_b4_od_pins_b>;
> + pinctrl-2 = <&sdmmc2_b4_sleep_pins_a>;
> + broken-cd;
> + non-removable;
> + st,neg-edge;
> + bus-width = <1>;
> + vmmc-supply = <&wlan_pwr>;
> + status = "okay";
> +
> + #address-cells = <1>;
> + #size-cells = <0>;
> + brcmf: bcrmf@1 {
> + reg = <1>;
> + compatible = "brcm,bcm4329-fmac";
> + };
> +};
> +
> +/* Bluetooth */
> +&uart4 {
> + /* Note: HW flow control is broken, hence using custom CTS/RTS gpios */
> + /delete-property/st,hw-flow-ctrl;
> + cts-gpios = <&gpioa 15 GPIO_ACTIVE_LOW>;
> + rts-gpios = <&gpiob 0 GPIO_ACTIVE_LOW>;
> + status = "okay";
> +
> + bluetooth {
> + shutdown-gpios = <&gpiog 2 GPIO_ACTIVE_HIGH>;
> + compatible = "brcm,bcm43438-bt";
> + max-speed = <115200>;
> + };
> +};
>