From: dillon min <[email protected]>
This patchset is for enable l3gd20 on stm32f429-disco board
has following changes:
V2:
1, insert blank line at stm32f420-disco.dts line 143
2, add more description for l3gd20 in commit message
V1:
1, enable spi5 controller on stm32f429-disco (dts)
2, add spi5 pinmap for stm32f429-disco (dts)
3, add SPI_SIMPLEX_RX, SPI_3WIRE_RX support for stm32f4
dillon min (3):
ARM: dts: stm32: Add pin map for spi5 on stm32f429-disco board
ARM: dts: stm32: enable l3gd20 on stm32429-disco board
spi: stm32: Add SPI_SIMPLEX_RX, SPI_3WIRE_RX support for stm32f4
arch/arm/boot/dts/stm32f4-pinctrl.dtsi | 17 +++++++++++++++++
arch/arm/boot/dts/stm32f429-disco.dts | 25 +++++++++++++++++++++++++
drivers/spi/spi-stm32.c | 29 +++++++++++++++++++++++++----
3 files changed, 67 insertions(+), 4 deletions(-)
--
2.7.4
From: dillon min <[email protected]>
L3gd20, st mems motion sensor, 3-axis digital output gyroscope,
connect to stm32f429 via spi5
Signed-off-by: dillon min <[email protected]>
---
Hi Alexandre,
V2:
1, insert blank line at stm32f420-disco.dts line 143
2, add more description about l3gd20 in commit message
V1:
enable l3gd20 dts binding on stm32f429-disco
thanks.
dillon,
arch/arm/boot/dts/stm32f429-disco.dts | 25 +++++++++++++++++++++++++
1 file changed, 25 insertions(+)
diff --git a/arch/arm/boot/dts/stm32f429-disco.dts b/arch/arm/boot/dts/stm32f429-disco.dts
index 30c0f67..1bfb903 100644
--- a/arch/arm/boot/dts/stm32f429-disco.dts
+++ b/arch/arm/boot/dts/stm32f429-disco.dts
@@ -49,6 +49,8 @@
#include "stm32f429.dtsi"
#include "stm32f429-pinctrl.dtsi"
#include <dt-bindings/input/input.h>
+#include <dt-bindings/interrupt-controller/irq.h>
+#include <dt-bindings/gpio/gpio.h>
/ {
model = "STMicroelectronics STM32F429i-DISCO board";
@@ -127,3 +129,26 @@
pinctrl-names = "default";
status = "okay";
};
+
+&spi5 {
+ status = "okay";
+ pinctrl-0 = <&spi5_pins>;
+ pinctrl-names = "default";
+ #address-cells = <1>;
+ #size-cells = <0>;
+ cs-gpios = <&gpioc 1 GPIO_ACTIVE_LOW>;
+ dmas = <&dma2 3 2 0x400 0x0>,
+ <&dma2 4 2 0x400 0x0>;
+ dma-names = "rx", "tx";
+
+ l3gd20: l3gd20@0 {
+ compatible = "st,l3gd20-gyro";
+ spi-max-frequency = <10000000>;
+ st,drdy-int-pin = <2>;
+ interrupt-parent = <&gpioa>;
+ interrupts = <1 IRQ_TYPE_EDGE_RISING>,
+ <2 IRQ_TYPE_EDGE_RISING>;
+ reg = <0>;
+ status = "okay";
+ };
+};
--
2.7.4
From: dillon min <[email protected]>
This patch adds the pin configuration for ltdc, spi5 controller
on stm32f429-disco board.
Signed-off-by: dillon min <[email protected]>
---
arch/arm/boot/dts/stm32f4-pinctrl.dtsi | 17 +++++++++++++++++
1 file changed, 17 insertions(+)
diff --git a/arch/arm/boot/dts/stm32f4-pinctrl.dtsi b/arch/arm/boot/dts/stm32f4-pinctrl.dtsi
index 392fa14..54c1b27 100644
--- a/arch/arm/boot/dts/stm32f4-pinctrl.dtsi
+++ b/arch/arm/boot/dts/stm32f4-pinctrl.dtsi
@@ -316,6 +316,23 @@
};
};
+ spi5_pins: spi5-0 {
+ pins1 {
+ pinmux = <STM32_PINMUX('F', 7, AF5)>,
+ /* SPI5_CLK */
+ <STM32_PINMUX('F', 9, AF5)>;
+ /* SPI5_MOSI */
+ bias-disable;
+ drive-push-pull;
+ slew-rate = <0>;
+ };
+ pins2 {
+ pinmux = <STM32_PINMUX('F', 8, AF5)>;
+ /* SPI5_MISO */
+ bias-disable;
+ };
+ };
+
dcmi_pins: dcmi-0 {
pins {
pinmux = <STM32_PINMUX('A', 4, AF13)>, /* DCMI_HSYNC */
--
2.7.4
Hi Dillon
On 5/12/20 9:36 AM, [email protected] wrote:
> From: dillon min <[email protected]>
>
> L3gd20, st mems motion sensor, 3-axis digital output gyroscope,
> connect to stm32f429 via spi5
>
> Signed-off-by: dillon min <[email protected]>
> ---
>
> Hi Alexandre,
>
> V2:
> 1, insert blank line at stm32f420-disco.dts line 143
> 2, add more description about l3gd20 in commit message
>
> V1:
> enable l3gd20 dts binding on stm32f429-disco
>
> thanks.
>
> dillon,
>
> arch/arm/boot/dts/stm32f429-disco.dts | 25 +++++++++++++++++++++++++
> 1 file changed, 25 insertions(+)
>
> diff --git a/arch/arm/boot/dts/stm32f429-disco.dts b/arch/arm/boot/dts/stm32f429-disco.dts
> index 30c0f67..1bfb903 100644
> --- a/arch/arm/boot/dts/stm32f429-disco.dts
> +++ b/arch/arm/boot/dts/stm32f429-disco.dts
> @@ -49,6 +49,8 @@
> #include "stm32f429.dtsi"
> #include "stm32f429-pinctrl.dtsi"
> #include <dt-bindings/input/input.h>
> +#include <dt-bindings/interrupt-controller/irq.h>
> +#include <dt-bindings/gpio/gpio.h>
>
> / {
> model = "STMicroelectronics STM32F429i-DISCO board";
> @@ -127,3 +129,26 @@
> pinctrl-names = "default";
> status = "okay";
> };
> +
> +&spi5 {
> + status = "okay";
> + pinctrl-0 = <&spi5_pins>;
> + pinctrl-names = "default";
> + #address-cells = <1>;
> + #size-cells = <0>;
> + cs-gpios = <&gpioc 1 GPIO_ACTIVE_LOW>;
> + dmas = <&dma2 3 2 0x400 0x0>,
> + <&dma2 4 2 0x400 0x0>;
> + dma-names = "rx", "tx";
> +
You added this spi5 node in this patch but also in the display series. I
will have issue to merge. Even if I could fix it easily, as you are
going to resend, the good practice could be to have several patches in
one series: one patch for spi5 controller, another for gyro and another
for display.
And also same remark than Linus did in display series move DMA to soc
dtsi file please.
> + l3gd20: l3gd20@0 {
> + compatible = "st,l3gd20-gyro";
> + spi-max-frequency = <10000000>;
> + st,drdy-int-pin = <2>;
> + interrupt-parent = <&gpioa>;
> + interrupts = <1 IRQ_TYPE_EDGE_RISING>,
> + <2 IRQ_TYPE_EDGE_RISING>;
> + reg = <0>;
> + status = "okay";
> + };
> +};
>
Hi Alexandre,
Alexandre Torgue <[email protected]> 于2020年5月14日周四 下午10:10写道:
>
> Hi Dillon
>
> On 5/12/20 9:36 AM, [email protected] wrote:
> > From: dillon min <[email protected]>
> >
> > L3gd20, st mems motion sensor, 3-axis digital output gyroscope,
> > connect to stm32f429 via spi5
> >
> > Signed-off-by: dillon min <[email protected]>
> > ---
> >
> > Hi Alexandre,
> >
> > V2:
> > 1, insert blank line at stm32f420-disco.dts line 143
> > 2, add more description about l3gd20 in commit message
> >
> > V1:
> > enable l3gd20 dts binding on stm32f429-disco
> >
> > thanks.
> >
> > dillon,
> >
> > arch/arm/boot/dts/stm32f429-disco.dts | 25 +++++++++++++++++++++++++
> > 1 file changed, 25 insertions(+)
> >
> > diff --git a/arch/arm/boot/dts/stm32f429-disco.dts b/arch/arm/boot/dts/stm32f429-disco.dts
> > index 30c0f67..1bfb903 100644
> > --- a/arch/arm/boot/dts/stm32f429-disco.dts
> > +++ b/arch/arm/boot/dts/stm32f429-disco.dts
> > @@ -49,6 +49,8 @@
> > #include "stm32f429.dtsi"
> > #include "stm32f429-pinctrl.dtsi"
> > #include <dt-bindings/input/input.h>
> > +#include <dt-bindings/interrupt-controller/irq.h>
> > +#include <dt-bindings/gpio/gpio.h>
> >
> > / {
> > model = "STMicroelectronics STM32F429i-DISCO board";
> > @@ -127,3 +129,26 @@
> > pinctrl-names = "default";
> > status = "okay";
> > };
> > +
> > +&spi5 {
> > + status = "okay";
> > + pinctrl-0 = <&spi5_pins>;
> > + pinctrl-names = "default";
> > + #address-cells = <1>;
> > + #size-cells = <0>;
> > + cs-gpios = <&gpioc 1 GPIO_ACTIVE_LOW>;
> > + dmas = <&dma2 3 2 0x400 0x0>,
> > + <&dma2 4 2 0x400 0x0>;
> > + dma-names = "rx", "tx";
> > +
>
> You added this spi5 node in this patch but also in the display series. I
> will have issue to merge. Even if I could fix it easily, as you are
> going to resend, the good practice could be to have several patches in
> one series: one patch for spi5 controller, another for gyro and another
> for display.
>
> And also same remark than Linus did in display series move DMA to soc
> dtsi file please.
Sure, how about this patch sequence:
1 add spi5 dma to soc (stm32f429.dtsi)
2 add pin map for spi5 (stm32f4-pinctrl.dtsi)
3 add spi5 controller with gyro (stm32f429-disco.dts)
4 add spi modification to support gyro (spi-stm32.c)
5 add ltdc pin map for stm32f429-disco board (stm32f4-pinctrl.dtsi)
6 add ilitek-ili9341 dts bindings for disco (stm32f429-disco.dts,
depends on above step 3)
7 add yaml document about ilitek-ili9341 (ilitek,ili9341.yaml)
8 add clk changes to support ltdc driver (clk-stm32f4.c)
so, i will combine gyro and display two patches to one patchset next
time. right ?
thanks.
>
>
> > + l3gd20: l3gd20@0 {
> > + compatible = "st,l3gd20-gyro";
> > + spi-max-frequency = <10000000>;
> > + st,drdy-int-pin = <2>;
> > + interrupt-parent = <&gpioa>;
> > + interrupts = <1 IRQ_TYPE_EDGE_RISING>,
> > + <2 IRQ_TYPE_EDGE_RISING>;
> > + reg = <0>;
> > + status = "okay";
> > + };
> > +};
> >
On 5/14/20 9:07 AM, dillon min wrote:
> Hi Alexandre,
>
> Alexandre Torgue <[email protected]> 于2020年5月14日周四 下午10:10写道:
>>
>> Hi Dillon
>>
>> On 5/12/20 9:36 AM, [email protected] wrote:
>>> From: dillon min <[email protected]>
>>>
>>> L3gd20, st mems motion sensor, 3-axis digital output gyroscope,
>>> connect to stm32f429 via spi5
>>>
>>> Signed-off-by: dillon min <[email protected]>
>>> ---
>>>
>>> Hi Alexandre,
>>>
>>> V2:
>>> 1, insert blank line at stm32f420-disco.dts line 143
>>> 2, add more description about l3gd20 in commit message
>>>
>>> V1:
>>> enable l3gd20 dts binding on stm32f429-disco
>>>
>>> thanks.
>>>
>>> dillon,
>>>
>>> arch/arm/boot/dts/stm32f429-disco.dts | 25 +++++++++++++++++++++++++
>>> 1 file changed, 25 insertions(+)
>>>
>>> diff --git a/arch/arm/boot/dts/stm32f429-disco.dts b/arch/arm/boot/dts/stm32f429-disco.dts
>>> index 30c0f67..1bfb903 100644
>>> --- a/arch/arm/boot/dts/stm32f429-disco.dts
>>> +++ b/arch/arm/boot/dts/stm32f429-disco.dts
>>> @@ -49,6 +49,8 @@
>>> #include "stm32f429.dtsi"
>>> #include "stm32f429-pinctrl.dtsi"
>>> #include <dt-bindings/input/input.h>
>>> +#include <dt-bindings/interrupt-controller/irq.h>
>>> +#include <dt-bindings/gpio/gpio.h>
>>>
>>> / {
>>> model = "STMicroelectronics STM32F429i-DISCO board";
>>> @@ -127,3 +129,26 @@
>>> pinctrl-names = "default";
>>> status = "okay";
>>> };
>>> +
>>> +&spi5 {
>>> + status = "okay";
>>> + pinctrl-0 = <&spi5_pins>;
>>> + pinctrl-names = "default";
>>> + #address-cells = <1>;
>>> + #size-cells = <0>;
>>> + cs-gpios = <&gpioc 1 GPIO_ACTIVE_LOW>;
>>> + dmas = <&dma2 3 2 0x400 0x0>,
>>> + <&dma2 4 2 0x400 0x0>;
>>> + dma-names = "rx", "tx";
>>> +
>>
>> You added this spi5 node in this patch but also in the display series. I
>> will have issue to merge. Even if I could fix it easily, as you are
>> going to resend, the good practice could be to have several patches in
>> one series: one patch for spi5 controller, another for gyro and another
>> for display.
>>
>> And also same remark than Linus did in display series move DMA to soc
>> dtsi file please.
>
> Sure, how about this patch sequence:
> 1 add spi5 dma to soc (stm32f429.dtsi)
> 2 add pin map for spi5 (stm32f4-pinctrl.dtsi)
> 3 add spi5 controller with gyro (stm32f429-disco.dts)
> 4 add spi modification to support gyro (spi-stm32.c)
>
> 5 add ltdc pin map for stm32f429-disco board (stm32f4-pinctrl.dtsi)
> 6 add ilitek-ili9341 dts bindings for disco (stm32f429-disco.dts,
> depends on above step 3)
> 7 add yaml document about ilitek-ili9341 (ilitek,ili9341.yaml)
> 8 add clk changes to support ltdc driver (clk-stm32f4.c)
>
> so, i will combine gyro and display two patches to one patchset next
> time. right ?
>
looks good
> thanks.
>>
>>
>>> + l3gd20: l3gd20@0 {
>>> + compatible = "st,l3gd20-gyro";
>>> + spi-max-frequency = <10000000>;
>>> + st,drdy-int-pin = <2>;
>>> + interrupt-parent = <&gpioa>;
>>> + interrupts = <1 IRQ_TYPE_EDGE_RISING>,
>>> + <2 IRQ_TYPE_EDGE_RISING>;
>>> + reg = <0>;
>>> + status = "okay";
>>> + };
>>> +};
>>>