[PATCH v7 09/10] ARM: dts: stm32: add STM32MP1-based Phytec SoM
Alexandre TORGUE
alexandre.torgue at foss.st.com
Mon Apr 3 02:10:47 PDT 2023
Hi Steffen
On 3/30/23 07:04, Steffen Trumtrar wrote:
> The Phytec STM32MP1 based SoMs feature up to 1 GB DDR3LP RAM, up to 1 GB
> eMMC, up to 16 MB QSPI and up to 128 GB NAND flash.
>
> Signed-off-by: Steffen Trumtrar <s.trumtrar at pengutronix.de>
> ---
I'm not so far to merge your series but I still have questions.
> Notes:
> checkpatch warns about un-documented binding
>
> According to checkpatch the binding for "winbond,w25q128"
> used in this dtsi is un-documented.
> However, 'jedec,spi-nor.yaml' defines the pattern
>
> (winbond,)?w25q(16|32(w|dw)?|64(dw)?|80bl|128(fw)?|256))$"
>
> so, this should be good!?
>
> Changes since v6:
> - rename mdio0->mdio
>
> Changes since v5:
> - cleanup dt_bindings_check warnings
>
> Changes since v4:
> - cleanup usage of "status = okay|disabled"
> - fix remaining non-generic node names
> - rework sai nodes to not duplicate the existing settings in stm32mp151.dtsi
>
> Changes since v3:
> - cleanup board-compatible
> - cleanup aliases
> - rename nodes according to schema
> - use interrupt flag
>
> .../stm32mp157c-phycore-stm32mp15-som.dtsi | 594 ++++++++++++++++++
> 1 file changed, 594 insertions(+)
> create mode 100644 arch/arm/boot/dts/stm32mp157c-phycore-stm32mp15-som.dtsi
>
> diff --git a/arch/arm/boot/dts/stm32mp157c-phycore-stm32mp15-som.dtsi b/arch/arm/boot/dts/stm32mp157c-phycore-stm32mp15-som.dtsi
> new file mode 100644
> index 0000000000000..f612daa4c66a7
> --- /dev/null
> +++ b/arch/arm/boot/dts/stm32mp157c-phycore-stm32mp15-som.dtsi
> @@ -0,0 +1,594 @@
> +// SPDX-License-Identifier: (GPL-2.0+ OR BSD-3-Clause)
> +/*
> + * Copyright (C) 2022-2023 Steffen Trumtrar <kernel at pengutronix.de>
> + * Copyright (C) Phytec GmbH 2019-2020 - All Rights Reserved
> + * Author: Dom VOVARD <dom.vovard at linrt.com>.
> + */
> +
> +#include <dt-bindings/gpio/gpio.h>
> +#include <dt-bindings/input/input.h>
> +#include <dt-bindings/interrupt-controller/arm-gic.h>
> +#include <dt-bindings/interrupt-controller/irq.h>
> +#include <dt-bindings/leds/common.h>
> +#include <dt-bindings/leds/leds-pca9532.h>
> +#include <dt-bindings/mfd/st,stpmic1.h>
> +#include <dt-bindings/net/ti-dp83867.h>
> +#include "stm32mp15-pinctrl.dtsi"
> +
> +/ {
> + model = "PHYTEC phyCORE-STM32MP15 SOM";
> + compatible = "phytec,phycore-stm32mp157c-som", "st,stm32mp157";
> +
> + aliases {
> + ethernet0 = ðernet0;
> + rtc0 = &i2c4_rtc;
> + rtc1 = &rtc;
> + };
> +
> + chosen {
> + stdout-path = "serial0:115200n8";
> + };
> +
> + gpio-keys {
> + compatible = "gpio-keys";
> +
> + key-home {
> + label = "Home";
> + gpios = <&gpioa 13 GPIO_ACTIVE_LOW>;
> + linux,code = <KEY_HOME>;
> + };
> +
> + key-enter {
> + label = "Enter";
> + gpios = <&gpioa 14 GPIO_ACTIVE_LOW>;
> + linux,code = <KEY_ENTER>;
> + };
> + };
> +
> + reserved-memory {
> + #address-cells = <1>;
> + #size-cells = <1>;
> + ranges;
> +
> + retram: retram at 38000000 {
> + compatible = "shared-dma-pool";
> + reg = <0x38000000 0x10000>;
> + no-map;
> + };
> +
> + mcuram: mcuram at 30000000 {
> + compatible = "shared-dma-pool";
> + reg = <0x30000000 0x40000>;
> + no-map;
> + };
> +
> + 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;
> + };
> +
> + gpu_reserved: gpu at f8000000 {
> + reg = <0xf8000000 0x8000000>;
> + no-map;
> + };
It seems that this region is not used. Furthermore if you plan to use it
to GPU note that it doesn't respect YAMl verification. So please remove it.
> + };
> +
> + sound {
> + compatible = "audio-graph-card";
> + label = "STM32MP1-PHYCORE";
> + routing =
> + "Playback", "MCLK", /* Set a route between "MCLK" and "playback" widgets */
> + "Capture", "MCLK";
> + dais = <&sai2b_port>,
> + <&sai2a_port>;
> + };
> +
> + regulator_vin: regulator {
> + compatible = "regulator-fixed";
> + regulator-name = "vin";
> + regulator-min-microvolt = <5000000>;
> + regulator-max-microvolt = <5000000>;
> + regulator-always-on;
> + };
> +};
> +
> +ðernet0 {
> + pinctrl-0 = <ðernet0_rgmii_pins_d>;
> + pinctrl-1 = <ðernet0_rgmii_sleep_pins_d>;
> + pinctrl-names = "default", "sleep";
> + phy-mode = "rgmii-id";
> + max-speed = <1000>;
> + phy-handle = <&phy0>;
> + st,eth-clk-sel;
> + clock-names = "stmmaceth",
> + "mac-clk-tx",
> + "mac-clk-rx",
> + "eth-ck",
> + "syscfg-clk",
> + "ethstp";
> + clocks = <&rcc ETHMAC>,
> + <&rcc ETHTX>,
> + <&rcc ETHRX>,
> + <&rcc ETHCK_K>,
> + <&rcc SYSCFG>,
> + <&rcc ETHSTP>;
Why do you re define those clocks ? They are all already defined in
stm32mp151.dtsi
> + status = "okay";
> +
> + mdio {
> + #address-cells = <1>;
> + #size-cells = <0>;
> + compatible = "snps,dwmac-mdio";
> +
> + phy0: ethernet-phy at 1 {
> + compatible = "ethernet-phy-ieee802.3-c22";
> + reg = <1>;
> + interrupt-parent = <&gpiog>;
> + interrupts = <12 IRQ_TYPE_EDGE_FALLING>;
> + ti,rx-internal-delay = <DP83867_RGMIIDCTL_2_00_NS>;
> + ti,tx-internal-delay = <DP83867_RGMIIDCTL_2_00_NS>;
> + ti,fifo-depth = <DP83867_PHYCR_FIFO_DEPTH_4_B_NIB>;
> + ti,min-output-impedance;
> + enet-phy-lane-no-swap;
> + ti,clk-output-sel = <DP83867_CLK_O_SEL_OFF>;
> + };
> + };
> +};
> +
...
More information about the linux-arm-kernel
mailing list