Message ID | 1513610272-7824-10-git-send-email-ludovic.Barre@st.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
On Mon, Dec 18, 2017 at 4:17 PM, Ludovic Barre <ludovic.Barre@st.com> wrote: = > + > +/ { > + model = "STMicroelectronics STM32MP157C eval daughter"; > + compatible = "st,stm32mp157c-ed1", "st,stm32mp157"; > + > + chosen { > + bootargs = "earlyprintk console=ttySTM3,115200 root=/dev/ram"; > + stdout-path = "serial3:115200n8"; > + }; I'd remove the bootargs here and let the boot loader take care of that, in particular since all three arguments are rather old-school: earlycon is preferred over earlyprintk, console= should not be needed if you set stdout-path, and /dev/ram is obsoleted by initramfs. Arnd
On 12/18/2017 09:20 PM, Arnd Bergmann wrote: > On Mon, Dec 18, 2017 at 4:17 PM, Ludovic Barre <ludovic.Barre@st.com> wrote: > = >> + >> +/ { >> + model = "STMicroelectronics STM32MP157C eval daughter"; >> + compatible = "st,stm32mp157c-ed1", "st,stm32mp157"; >> + >> + chosen { >> + bootargs = "earlyprintk console=ttySTM3,115200 root=/dev/ram"; >> + stdout-path = "serial3:115200n8"; >> + }; > > I'd remove the bootargs here and let the boot loader take care of > that, in particular > since all three arguments are rather old-school: earlycon is preferred over > earlyprintk, console= should not be needed if you set stdout-path, and > /dev/ram is obsoleted by initramfs. OK, thanks BR Ludo > > Arnd >
Hi, On 12/18/2017 09:20 PM, Arnd Bergmann wrote: > On Mon, Dec 18, 2017 at 4:17 PM, Ludovic Barre <ludovic.Barre@st.com> wrote: > = >> + >> +/ { >> + model = "STMicroelectronics STM32MP157C eval daughter"; >> + compatible = "st,stm32mp157c-ed1", "st,stm32mp157"; >> + >> + chosen { >> + bootargs = "earlyprintk console=ttySTM3,115200 root=/dev/ram"; >> + stdout-path = "serial3:115200n8"; >> + }; > > I'd remove the bootargs here and let the boot loader take care of > that, in particular > since all three arguments are rather old-school: earlycon is preferred over > earlyprintk, console= should not be needed if you set stdout-path, and > /dev/ram is obsoleted by initramfs. In this case I will modify also stm32 mcu devicetree in this way. Thanks Alex > > Arnd >
On Mon, Dec 18, 2017 at 4:17 PM, Ludovic Barre <ludovic.Barre@st.com> wrote: > From: Ludovic Barre <ludovic.barre@st.com> > > Add support of stm32mp157c evaluation board (part number: STM32MP157C-EV1) > split in 2 elements: > -Daughter board (part number: STM32MP157C-ED1) > which includes CPU, memory and power supply > -Mother board (part number: STM32MP157C-EM1) > which includes external peripherals (like display, camera,...) > and extension connectors. > > The daughter board can run alone, this is why the device tree files > are split in two layers, for the complete evaluation board (ev1) > and for the daughter board alone (ed1). > > Signed-off-by: Ludovic Barre <ludovic.barre@st.com> > Signed-off-by: Alexandre Torgue <alexandre.torgue@st.com> (...) > diff --git a/arch/arm/boot/dts/stm32mp157c-ev1.dts b/arch/arm/boot/dts/stm32mp157c-ev1.dts Evaluation boards are important because they set a pattern that customers will use. Please consider to include nodes for all GPIO blocks used in this evaluation board, and add: gpio-line-names = "foo", "bar" ...; See for example arch/arm/boot/dts/bcm2835-rpi-a.dts arch/arm/boot/dts/ste-snowball.dts It's good to have because probably you guys have proper schematics and know rail names of the stuff connected to those GPIO lines and so on, so you can give the lines proper names. It will be helpful for people using the reference design, especially with the new character device, and also sets a pattern for people doing devices based on the reference design and we really want to do that. Yours, Linus Walleij
Hi Linus On 12/20/2017 08:44 AM, Linus Walleij wrote: > On Mon, Dec 18, 2017 at 4:17 PM, Ludovic Barre <ludovic.Barre@st.com> wrote: > >> From: Ludovic Barre <ludovic.barre@st.com> >> >> Add support of stm32mp157c evaluation board (part number: STM32MP157C-EV1) >> split in 2 elements: >> -Daughter board (part number: STM32MP157C-ED1) >> which includes CPU, memory and power supply >> -Mother board (part number: STM32MP157C-EM1) >> which includes external peripherals (like display, camera,...) >> and extension connectors. >> >> The daughter board can run alone, this is why the device tree files >> are split in two layers, for the complete evaluation board (ev1) >> and for the daughter board alone (ed1). >> >> Signed-off-by: Ludovic Barre <ludovic.barre@st.com> >> Signed-off-by: Alexandre Torgue <alexandre.torgue@st.com> > (...) >> diff --git a/arch/arm/boot/dts/stm32mp157c-ev1.dts b/arch/arm/boot/dts/stm32mp157c-ev1.dts > > Evaluation boards are important because they set a pattern that customers > will use. > > Please consider to include nodes for all GPIO blocks used in this > evaluation board, and add: > > gpio-line-names = "foo", "bar" ...; > > See for example > arch/arm/boot/dts/bcm2835-rpi-a.dts > arch/arm/boot/dts/ste-snowball.dts > > It's good to have because probably you guys have proper schematics and > know rail names of the stuff connected to those GPIO lines and so on, > so you can give the lines proper names. It looks like useful for pins used as gpio line. Are you saying that we also have to describe pins used as Alternate Function ? Currently for stm32 MCU we add (for each pins in a group) a comment in stm32xxx-pinctrl.dtsi file to describe the pinmux (to help developers). On driver side for each stm32 pinctrl driver (ex: drivers/pinctrl/stm32/pinctrl-stm32f429.c) we add for each possible muxing a name: STM32_PIN( PINCTRL_PIN(0, "PA0"), STM32_FUNCTION(0, "GPIOA0"), STM32_FUNCTION(2, "TIM2_CH1 TIM2_ETR"), STM32_FUNCTION(3, "TIM5_CH1"), STM32_FUNCTION(4, "TIM8_ETR"), STM32_FUNCTION(8, "USART2_CTS"), STM32_FUNCTION(9, "UART4_TX"), STM32_FUNCTION(12, "ETH_MII_CRS"), STM32_FUNCTION(16, "EVENTOUT"), STM32_FUNCTION(17, "ANALOG") ), To be honest, currently there is a an issue to printout the name :) but I have a patch to send for that. regards Alex > > It will be helpful for people using the reference design, especially with the > new character device, and also sets a pattern for people doing devices > based on the reference design and we really want to do that. > > Yours, > Linus Walleij >
On Wed, Dec 20, 2017 at 10:19 AM, Alexandre Torgue <alexandre.torgue@st.com> wrote: > On 12/20/2017 08:44 AM, Linus Walleij wrote: >> gpio-line-names = "foo", "bar" ...; >> >> See for example >> arch/arm/boot/dts/bcm2835-rpi-a.dts >> arch/arm/boot/dts/ste-snowball.dts (...) > > It looks like useful for pins used as gpio line. Are you saying that we also > have to describe pins used as Alternate Function ? No. The use of the names is up to the platform maintainer (you), leaving a blank string for non-GPIO lines is just fine. Some platforms add the name of the actual function used by the line on the design, if it is not GPIO, sometimes something in brachets like "[i2c0-SDA]" that says what it is used for and explains why you can't use it for GPIO on this setup. But just leaving it blank is just as good. Yours, Linus Walleij
On 12/21/2017 10:18 AM, Linus Walleij wrote: > On Wed, Dec 20, 2017 at 10:19 AM, Alexandre Torgue > <alexandre.torgue@st.com> wrote: >> On 12/20/2017 08:44 AM, Linus Walleij wrote: > >>> gpio-line-names = "foo", "bar" ...; >>> >>> See for example >>> arch/arm/boot/dts/bcm2835-rpi-a.dts >>> arch/arm/boot/dts/ste-snowball.dts > (...) >> >> It looks like useful for pins used as gpio line. Are you saying that we also >> have to describe pins used as Alternate Function ? > > No. The use of the names is up to the platform maintainer (you), > leaving a blank string for non-GPIO lines is just fine. > > Some platforms add the name of the actual function used by the > line on the design, if it is not GPIO, sometimes something in > brachets like "[i2c0-SDA]" that says what it is used for and explains > why you can't use it for GPIO on this setup. > > But just leaving it blank is just as good. Ok thanks Linus. I will take it into account. It could be useful to add it for MCU and future MPU boards. Regards Alex > > Yours, > Linus Walleij >
diff --git a/arch/arm/boot/dts/Makefile b/arch/arm/boot/dts/Makefile index d0381e9..d72c71c 100644 --- a/arch/arm/boot/dts/Makefile +++ b/arch/arm/boot/dts/Makefile @@ -839,7 +839,7 @@ dtb-$(CONFIG_ARCH_STI) += \ stih410-b2120.dtb \ stih410-b2260.dtb \ stih418-b2199.dtb -dtb-$(CONFIG_ARCH_STM32)+= \ +dtb-$(CONFIG_ARCH_STM32) += \ stm32f429-disco.dtb \ stm32f469-disco.dtb \ stm32f746-disco.dtb \ @@ -847,7 +847,9 @@ dtb-$(CONFIG_ARCH_STM32)+= \ stm32429i-eval.dtb \ stm32746g-eval.dtb \ stm32h743i-eval.dtb \ - stm32h743i-disco.dtb + stm32h743i-disco.dtb \ + stm32mp157c-ed1.dtb \ + stm32mp157c-ev1.dtb dtb-$(CONFIG_MACH_SUN4I) += \ sun4i-a10-a1000.dtb \ sun4i-a10-ba10-tvbox.dtb \ diff --git a/arch/arm/boot/dts/stm32mp157-pinctrl.dtsi b/arch/arm/boot/dts/stm32mp157-pinctrl.dtsi index 440276a..7ac65f4 100644 --- a/arch/arm/boot/dts/stm32mp157-pinctrl.dtsi +++ b/arch/arm/boot/dts/stm32mp157-pinctrl.dtsi @@ -145,6 +145,19 @@ ngpios = <8>; gpio-ranges = <&pinctrl 0 160 8>; }; + + uart4_pins_a: uart4@0 { + pins1 { + pinmux = <STM32_PINMUX('G', 11, AF6)>; /* UART4_TX */ + bias-disable; + drive-push-pull; + slew-rate = <0>; + }; + pins2 { + pinmux = <STM32_PINMUX('B', 2, AF8)>; /* UART4_RX */ + bias-disable; + }; + }; }; pinctrl_z: pin-controller-z { diff --git a/arch/arm/boot/dts/stm32mp157c-ed1.dts b/arch/arm/boot/dts/stm32mp157c-ed1.dts new file mode 100644 index 0000000..86acdb4 --- /dev/null +++ b/arch/arm/boot/dts/stm32mp157c-ed1.dts @@ -0,0 +1,29 @@ +/* SPDX-License-Identifier: (GPL-2.0+ OR BSD-3-Clause) */ +/* + * Copyright (C) STMicroelectronics 2017 - All Rights Reserved + * Author: Ludovic Barre <ludovic.barre@st.com> for STMicroelectronics. + */ +/dts-v1/; + +#include "stm32mp157c.dtsi" +#include "stm32mp157-pinctrl.dtsi" + +/ { + model = "STMicroelectronics STM32MP157C eval daughter"; + compatible = "st,stm32mp157c-ed1", "st,stm32mp157"; + + chosen { + bootargs = "earlyprintk console=ttySTM3,115200 root=/dev/ram"; + stdout-path = "serial3:115200n8"; + }; + + memory { + reg = <0xC0000000 0x40000000>; + }; +}; + +&uart4 { + pinctrl-names = "default"; + pinctrl-0 = <&uart4_pins_a>; + status = "okay"; +}; diff --git a/arch/arm/boot/dts/stm32mp157c-ev1.dts b/arch/arm/boot/dts/stm32mp157c-ev1.dts new file mode 100644 index 0000000..a310703 --- /dev/null +++ b/arch/arm/boot/dts/stm32mp157c-ev1.dts @@ -0,0 +1,19 @@ +/* SPDX-License-Identifier: (GPL-2.0+ OR BSD-3-Clause) */ +/* + * Copyright (C) STMicroelectronics 2017 - All Rights Reserved + * Author: Ludovic Barre <ludovic.barre@st.com> for STMicroelectronics. + */ +/dts-v1/; + +#include "stm32mp157c-ed1.dts" + +/ { + model = "STMicroelectronics STM32MP157C eval daughter on eval mother"; + compatible = "st,stm32mp157c-ev1", "st,stm32mp157c-ed1", "st,stm32mp157"; + + chosen { + bootargs = "earlyprintk console=ttySTM3,115200 root=/dev/ram"; + stdout-path = "serial3:115200n8"; + }; +}; +