[PATCH 2/5] ARM: dts: stm32: Add Engicam MicroGEA STM32MP1 SoM

Alexandre Torgue alexandre.torgue at st.com
Mon Jan 25 10:07:14 EST 2021



On 1/25/21 4:05 PM, Alexandre TORGUE wrote:
> Hi,
> 
> On 12/23/20 8:13 PM, Jagan Teki wrote:
>> MicroGEA STM32MP1 is an EDIMM SoM based on STM32MP157A from Engicam.
>>
>> General features:
>> - STM32MP157AAC
>> - Up to 1GB DDR3L-800
>> - 512MB Nand flash
>> - I2S
>>
>> MicroGEA STM32MP1 needs to mount on top of Engicam MicroDev carrier
>> boards for creating complete platform solutions.
>>
>> Add support for it.
>>
>> Signed-off-by: Matteo Lisi <matteo.lisi at engicam.com>
>> Signed-off-by: Francesco Utel <francesco.utel at engicam.com>
>> Signed-off-by: Mirko Ardinghi <mirko.ardinghi at engicam.com>
>> Signed-off-by: Jagan Teki <jagan at amarulasolutions.com>
>> ---
>>   .../dts/stm32mp157a-microgea-stm32mp1.dtsi    | 147 ++++++++++++++++++
>>   1 file changed, 147 insertions(+)
>>   create mode 100644 arch/arm/boot/dts/stm32mp157a-microgea-stm32mp1.dtsi
>>
>> diff --git a/arch/arm/boot/dts/stm32mp157a-microgea-stm32mp1.dtsi 
>> b/arch/arm/boot/dts/stm32mp157a-microgea-stm32mp1.dtsi
>> new file mode 100644
>> index 000000000000..97d569107bfe
>> --- /dev/null
>> +++ b/arch/arm/boot/dts/stm32mp157a-microgea-stm32mp1.dtsi
>> @@ -0,0 +1,147 @@
>> +// SPDX-License-Identifier: (GPL-2.0+ OR BSD-3-Clause)
>> +/*
>> + * Copyright (c) STMicroelectronics 2019 - All Rights Reserved
>> + * Copyright (c) 2020 Engicam srl
>> + * Copyright (c) 2020 Amarula Solutons(India)
>> + */
>> +
> 
> If STM32MP157AAC is soldered onto this board, you should include SoC 
> dtsi here and no into MicroDev 2.0 board. No ?
> 
> +#include "stm32mp15-pinctrl.dtsi"
> +#include "stm32mp15xxaa-pinctrl.dtsi"

and this one:
+#include "stm32mp157.dtsi"

> 
> 
> Regards
> Alex
> 
>> +/ {
>> +    compatible = "engicam,microgea-stm32mp1", "st,stm32mp157";
>> +
>> +    memory at c0000000 {
>> +        reg = <0xc0000000 0x10000000>;
>> +    };
>> +
>> +    reserved-memory {
>> +        #address-cells = <1>;
>> +        #size-cells = <1>;
>> +        ranges;
>> +
>> +        mcuram2: mcuram2 at 10000000 {
>> +            compatible = "shared-dma-pool";
>> +            reg = <0x10000000 0x40000>;
>> +            no-map;
>> +        };
>> +
>> +        vdev0vring0: vdev0vring0 at 10040000 {
>> +            compatible = "shared-dma-pool";
>> +            reg = <0x10040000 0x1000>;
>> +            no-map;
>> +        };
>> +
>> +        vdev0vring1: vdev0vring1 at 10041000 {
>> +            compatible = "shared-dma-pool";
>> +            reg = <0x10041000 0x1000>;
>> +            no-map;
>> +        };
>> +
>> +        vdev0buffer: vdev0buffer at 10042000 {
>> +            compatible = "shared-dma-pool";
>> +            reg = <0x10042000 0x4000>;
>> +            no-map;
>> +        };
>> +
>> +        mcuram: mcuram at 30000000 {
>> +            compatible = "shared-dma-pool";
>> +            reg = <0x30000000 0x40000>;
>> +            no-map;
>> +        };
>> +
>> +        retram: retram at 38000000 {
>> +            compatible = "shared-dma-pool";
>> +            reg = <0x38000000 0x10000>;
>> +            no-map;
>> +        };
>> +    };
>> +
>> +    vin: regulator-vin {
>> +        compatible = "regulator-fixed";
>> +        regulator-name = "vin";
>> +        regulator-min-microvolt = <5000000>;
>> +        regulator-max-microvolt = <5000000>;
>> +        regulator-always-on;
>> +    };
>> +
>> +    vddcore: regulator-vddcore {
>> +        compatible = "regulator-fixed";
>> +        regulator-name = "vddcore";
>> +        regulator-min-microvolt = <1200000>;
>> +        regulator-max-microvolt = <1200000>;
>> +        regulator-always-on;
>> +        vin-supply = <&vin>;
>> +    };
>> +
>> +    vdd: regulator-vdd {
>> +        compatible = "regulator-fixed";
>> +        regulator-name = "vdd";
>> +        regulator-min-microvolt = <3300000>;
>> +        regulator-max-microvolt = <3300000>;
>> +        regulator-always-on;
>> +        vin-supply = <&vin>;
>> +    };
>> +
>> +    vddq_ddr: regulator-vddq-ddr {
>> +        compatible = "regulator-fixed";
>> +        regulator-name = "vddq_ddr";
>> +        regulator-min-microvolt = <1350000>;
>> +        regulator-max-microvolt = <1350000>;
>> +        regulator-always-on;
>> +        vin-supply = <&vin>;
>> +    };
>> +};
>> +
>> +&dts {
>> +    status = "okay";
>> +};
>> +
>> +&fmc {
>> +    pinctrl-names = "default", "sleep";
>> +    pinctrl-0 = <&fmc_pins_a>;
>> +    pinctrl-1 = <&fmc_sleep_pins_a>;
>> +    status = "okay";
>> +
>> +    nand-controller at 4,0 {
>> +        status = "okay";
>> +
>> +        nand at 0 {
>> +            reg = <0>;
>> +            nand-on-flash-bbt;
>> +            #address-cells = <1>;
>> +            #size-cells = <1>;
>> +        };
>> +    };
>> +};
>> +
>> +&ipcc {
>> +    status = "okay";
>> +};
>> +
>> +&iwdg2{
>> +    timeout-sec = <32>;
>> +    status = "okay";
>> +};
>> +
>> +&m4_rproc{
>> +    memory-region = <&retram>, <&mcuram>, <&mcuram2>, <&vdev0vring0>,
>> +            <&vdev0vring1>, <&vdev0buffer>;
>> +    mboxes = <&ipcc 0>, <&ipcc 1>, <&ipcc 2>;
>> +    mbox-names = "vq0", "vq1", "shutdown";
>> +    interrupt-parent = <&exti>;
>> +    interrupts = <68 1>;
>> +    status = "okay";
>> +};
>> +
>> +&rng1 {
>> +    status = "okay";
>> +};
>> +
>> +&rtc{
>> +    status = "okay";
>> +};
>> +
>> +&vrefbuf {
>> +    regulator-min-microvolt = <2500000>;
>> +    regulator-max-microvolt = <2500000>;
>> +    vdda-supply = <&vdd>;
>> +    status = "okay";
>> +};
>>



More information about the linux-arm-kernel mailing list