mbox series

[v5,0/8] Enable ili9341 and l3gd20 on stm32f429-disco

Message ID 1590378062-7965-1-git-send-email-dillon.minfei@gmail.com
Headers show
Series Enable ili9341 and l3gd20 on stm32f429-disco | expand

Message

Dillon Min May 25, 2020, 3:40 a.m. UTC
From: dillon min <dillon.minfei@gmail.com>

V5's update based on Mark Brown's suggestion, use 'SPI_MASTER_MUST_RX'
for SPI_SIMPLEX_RX mode on stm32 spi controller.

V5:
1 instead of add send dummy data out under SIMPLEX_RX mode,
   add flags 'SPI_CONTROLLER_MUST_TX' for stm32 spi driver
2 bypass 'SPI_CONTROLLER_MUST_TX' and 'SPI_CONTROLLER_MUST_RX' under
'SPI_3WIRE' mode

V4:
According to alexandre torgue's suggestion, combine ili9341 and
l3gd20's modification on stm32f429-disco board to one patchset.

Changes:

ili9341:

1 update ili9341 panel driver according to Linus's suggestion
2 drop V1's No.5 patch, sumbit new changes for clk-stm32f4
3 merge l3gd20's change to this patchset

V3:
1 merge original tiny/ili9341.c driver to panel/panel-ilitek-ili9341.c
  to support serial spi & parallel rgb interface in one driver.
2 update ilitek,ili9341.yaml dts binding documentation.
3 update stm32f429-disco dts binding

V2:
1 verify ilitek,ili9341.yaml with make O=../linux-stm32
  dt_binding_check
  DT_SCHEMA_FILES=Documentation/devicetree/bindings/display/panel/
  ilitek,ili9341.yaml

V1:
1 add ili9341 drm panel driver
2 add ltdc, spi5 controller for stm32f429-disco
3 add ltdc, spi5 pin map for stm32f429-disco
4 add docs about ili9341
5 fix ltdc driver loading hang in clk set rate bug


L3gd20:
V3:
1 merge stm32f429-disco dtbs binding with ili9341 part

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 (8):
  ARM: dts: stm32: Add dma config for spi5
  ARM: dts: stm32: Add pin map for ltdc & spi5 on stm32f429-disco board
  ARM: dts: stm32: enable ltdc binding with ili9341, gyro l3gd20 on    
    stm32429-disco board
  dt-bindings: display: panel: Add ilitek ili9341 panel bindings
  clk: stm32: Fix stm32f429's ltdc driver hang in set clock rate,    
    fix duplicated ltdc clock register to 'clk_core' case ltdc's clock  
      turn off by clk_disable_unused()
  drm/panel: Add ilitek ili9341 panel driver
  spi: stm32: Add 'SPI_SIMPLEX_RX', 'SPI_3WIRE_RX' support for stm32f4
  spi: flags 'SPI_CONTROLLER_MUST_RX' and 'SPI_CONTROLLER_MUST_TX' can't
    be     coexit with 'SPI_3WIRE' mode

 .../bindings/display/panel/ilitek,ili9341.yaml     |   69 ++
 arch/arm/boot/dts/stm32f4-pinctrl.dtsi             |   67 +
 arch/arm/boot/dts/stm32f429-disco.dts              |   48 +
 arch/arm/boot/dts/stm32f429.dtsi                   |    3 +
 drivers/clk/clk-stm32f4.c                          |    7 +-
 drivers/gpu/drm/panel/Kconfig                      |   12 +
 drivers/gpu/drm/panel/Makefile                     |    1 +
 drivers/gpu/drm/panel/panel-ilitek-ili9341.c       | 1301 ++++++++++++++++++++
 drivers/spi/spi-stm32.c                            |   19 +-
 drivers/spi/spi.c                                  |    3 +-
 10 files changed, 1521 insertions(+), 9 deletions(-)
 create mode 100644 Documentation/devicetree/bindings/display/panel/ilitek,ili9341.yaml
 create mode 100644 drivers/gpu/drm/panel/panel-ilitek-ili9341.c

Comments

Alexandre TORGUE July 21, 2020, 9:19 a.m. UTC | #1
Hi Dillon

On 5/25/20 5:40 AM, dillon.minfei@gmail.com wrote:
> From: dillon min <dillon.minfei@gmail.com>

> 

> V5's update based on Mark Brown's suggestion, use 'SPI_MASTER_MUST_RX'

> for SPI_SIMPLEX_RX mode on stm32 spi controller.

> 

> V5:

> 1 instead of add send dummy data out under SIMPLEX_RX mode,

>     add flags 'SPI_CONTROLLER_MUST_TX' for stm32 spi driver

> 2 bypass 'SPI_CONTROLLER_MUST_TX' and 'SPI_CONTROLLER_MUST_RX' under

> 'SPI_3WIRE' mode

> 


Concerning DT patches, they look goods for me. However I'll merge them 
when drivers parts will be merged.

regards
Alex



> V4:

> According to alexandre torgue's suggestion, combine ili9341 and

> l3gd20's modification on stm32f429-disco board to one patchset.

> 

> Changes:

> 

> ili9341:

> 

> 1 update ili9341 panel driver according to Linus's suggestion

> 2 drop V1's No.5 patch, sumbit new changes for clk-stm32f4

> 3 merge l3gd20's change to this patchset

> 

> V3:

> 1 merge original tiny/ili9341.c driver to panel/panel-ilitek-ili9341.c

>    to support serial spi & parallel rgb interface in one driver.

> 2 update ilitek,ili9341.yaml dts binding documentation.

> 3 update stm32f429-disco dts binding

> 

> V2:

> 1 verify ilitek,ili9341.yaml with make O=../linux-stm32

>    dt_binding_check

>    DT_SCHEMA_FILES=Documentation/devicetree/bindings/display/panel/

>    ilitek,ili9341.yaml

> 

> V1:

> 1 add ili9341 drm panel driver

> 2 add ltdc, spi5 controller for stm32f429-disco

> 3 add ltdc, spi5 pin map for stm32f429-disco

> 4 add docs about ili9341

> 5 fix ltdc driver loading hang in clk set rate bug

> 

> 

> L3gd20:

> V3:

> 1 merge stm32f429-disco dtbs binding with ili9341 part

> 

> 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 (8):

>    ARM: dts: stm32: Add dma config for spi5

>    ARM: dts: stm32: Add pin map for ltdc & spi5 on stm32f429-disco board

>    ARM: dts: stm32: enable ltdc binding with ili9341, gyro l3gd20 on

>      stm32429-disco board

>    dt-bindings: display: panel: Add ilitek ili9341 panel bindings

>    clk: stm32: Fix stm32f429's ltdc driver hang in set clock rate,

>      fix duplicated ltdc clock register to 'clk_core' case ltdc's clock

>        turn off by clk_disable_unused()

>    drm/panel: Add ilitek ili9341 panel driver

>    spi: stm32: Add 'SPI_SIMPLEX_RX', 'SPI_3WIRE_RX' support for stm32f4

>    spi: flags 'SPI_CONTROLLER_MUST_RX' and 'SPI_CONTROLLER_MUST_TX' can't

>      be     coexit with 'SPI_3WIRE' mode

> 

>   .../bindings/display/panel/ilitek,ili9341.yaml     |   69 ++

>   arch/arm/boot/dts/stm32f4-pinctrl.dtsi             |   67 +

>   arch/arm/boot/dts/stm32f429-disco.dts              |   48 +

>   arch/arm/boot/dts/stm32f429.dtsi                   |    3 +

>   drivers/clk/clk-stm32f4.c                          |    7 +-

>   drivers/gpu/drm/panel/Kconfig                      |   12 +

>   drivers/gpu/drm/panel/Makefile                     |    1 +

>   drivers/gpu/drm/panel/panel-ilitek-ili9341.c       | 1301 ++++++++++++++++++++

>   drivers/spi/spi-stm32.c                            |   19 +-

>   drivers/spi/spi.c                                  |    3 +-

>   10 files changed, 1521 insertions(+), 9 deletions(-)

>   create mode 100644 Documentation/devicetree/bindings/display/panel/ilitek,ili9341.yaml

>   create mode 100644 drivers/gpu/drm/panel/panel-ilitek-ili9341.c

>
Dillon Min July 21, 2020, 10:39 a.m. UTC | #2
Hi Alexandre,

On Tue, Jul 21, 2020 at 5:19 PM Alexandre Torgue
<alexandre.torgue@st.com> wrote:
>

> Hi Dillon

>

> On 5/25/20 5:40 AM, dillon.minfei@gmail.com wrote:

> > From: dillon min <dillon.minfei@gmail.com>

> >

> > V5's update based on Mark Brown's suggestion, use 'SPI_MASTER_MUST_RX'

> > for SPI_SIMPLEX_RX mode on stm32 spi controller.

> >

> > V5:

> > 1 instead of add send dummy data out under SIMPLEX_RX mode,

> >     add flags 'SPI_CONTROLLER_MUST_TX' for stm32 spi driver

> > 2 bypass 'SPI_CONTROLLER_MUST_TX' and 'SPI_CONTROLLER_MUST_RX' under

> > 'SPI_3WIRE' mode

> >

>

> Concerning DT patches, they look goods for me. However I'll merge them

> when drivers parts will be merged.

>

> regards

> Alex

This patchset status is :
dts:
    ARM: dts: stm32: Add dma config for spi5
    ARM: dts: stm32: Add pin map for ltdc & spi5 on stm32f429-disco board
    ARM: dts: stm32: enable ltdc binding with ili9341, gyro l3gd20 on
      stm32429-disco board

panel-bindings: Reviewed-by: Rob Herring, need more reviewing to merge
    dt-bindings: display: panel: Add ilitek ili9341 panel bindings

clk: Acked-by: Stephen Boyd , need more reviewing to merge
    clk: stm32: Fix stm32f429's ltdc driver hang in set clock rate,
      fix duplicated ltdc clock register to 'clk_core' case ltdc's clock
        turn off by clk_disable_unused()

drm-panel:  Reviewed-by: Linus Walleij . need more reviewing to merge
    drm/panel: Add ilitek ili9341 panel driver

spi-driver: Acked-by: Mark Brown ,merged into mainline
    spi: stm32: Add 'SPI_SIMPLEX_RX', 'SPI_3WIRE_RX' support for stm32f4
    spi: flags 'SPI_CONTROLLER_MUST_RX' and 'SPI_CONTROLLER_MUST_TX' can't
      becoexit with 'SPI_3WIRE' mode

For ili9341 drivers, it seems to need more time to review, or might be dropped.
since the drm maintainer might create a new interface to support
DPI,DBI,DSI in one driver.
Currently it's under discussion. I will rework the ili9341 driver after that.

But, we can use the existing "drivers/gpu/drm/tiny/ili9341.c" driver to support
ili9341 on stm32f429-disco board only using the spi bus. except the
display refresh performance is not as good as the ltdc interface.

I can submit a new patch just with dts changed this week for it, if you need.

Thanks,
Dillon.
>

>

>

> > V4:

> > According to alexandre torgue's suggestion, combine ili9341 and

> > l3gd20's modification on stm32f429-disco board to one patchset.

> >

> > Changes:

> >

> > ili9341:

> >

> > 1 update ili9341 panel driver according to Linus's suggestion

> > 2 drop V1's No.5 patch, sumbit new changes for clk-stm32f4

> > 3 merge l3gd20's change to this patchset

> >

> > V3:

> > 1 merge original tiny/ili9341.c driver to panel/panel-ilitek-ili9341.c

> >    to support serial spi & parallel rgb interface in one driver.

> > 2 update ilitek,ili9341.yaml dts binding documentation.

> > 3 update stm32f429-disco dts binding

> >

> > V2:

> > 1 verify ilitek,ili9341.yaml with make O=../linux-stm32

> >    dt_binding_check

> >    DT_SCHEMA_FILES=Documentation/devicetree/bindings/display/panel/

> >    ilitek,ili9341.yaml

> >

> > V1:

> > 1 add ili9341 drm panel driver

> > 2 add ltdc, spi5 controller for stm32f429-disco

> > 3 add ltdc, spi5 pin map for stm32f429-disco

> > 4 add docs about ili9341

> > 5 fix ltdc driver loading hang in clk set rate bug

> >

> >

> > L3gd20:

> > V3:

> > 1 merge stm32f429-disco dtbs binding with ili9341 part

> >

> > 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 (8):

> >    ARM: dts: stm32: Add dma config for spi5

> >    ARM: dts: stm32: Add pin map for ltdc & spi5 on stm32f429-disco board

> >    ARM: dts: stm32: enable ltdc binding with ili9341, gyro l3gd20 on

> >      stm32429-disco board

> >    dt-bindings: display: panel: Add ilitek ili9341 panel bindings

> >    clk: stm32: Fix stm32f429's ltdc driver hang in set clock rate,

> >      fix duplicated ltdc clock register to 'clk_core' case ltdc's clock

> >        turn off by clk_disable_unused()

> >    drm/panel: Add ilitek ili9341 panel driver

> >    spi: stm32: Add 'SPI_SIMPLEX_RX', 'SPI_3WIRE_RX' support for stm32f4

> >    spi: flags 'SPI_CONTROLLER_MUST_RX' and 'SPI_CONTROLLER_MUST_TX' can't

> >      be     coexit with 'SPI_3WIRE' mode

> >

> >   .../bindings/display/panel/ilitek,ili9341.yaml     |   69 ++

> >   arch/arm/boot/dts/stm32f4-pinctrl.dtsi             |   67 +

> >   arch/arm/boot/dts/stm32f429-disco.dts              |   48 +

> >   arch/arm/boot/dts/stm32f429.dtsi                   |    3 +

> >   drivers/clk/clk-stm32f4.c                          |    7 +-

> >   drivers/gpu/drm/panel/Kconfig                      |   12 +

> >   drivers/gpu/drm/panel/Makefile                     |    1 +

> >   drivers/gpu/drm/panel/panel-ilitek-ili9341.c       | 1301 ++++++++++++++++++++

> >   drivers/spi/spi-stm32.c                            |   19 +-

> >   drivers/spi/spi.c                                  |    3 +-

> >   10 files changed, 1521 insertions(+), 9 deletions(-)

> >   create mode 100644 Documentation/devicetree/bindings/display/panel/ilitek,ili9341.yaml

> >   create mode 100644 drivers/gpu/drm/panel/panel-ilitek-ili9341.c

> >
Alexandre TORGUE July 21, 2020, 11:54 a.m. UTC | #3
On 7/21/20 12:39 PM, dillon min wrote:
> Hi Alexandre,

> 

> On Tue, Jul 21, 2020 at 5:19 PM Alexandre Torgue

> <alexandre.torgue@st.com> wrote:

>>

>> Hi Dillon

>>

>> On 5/25/20 5:40 AM, dillon.minfei@gmail.com wrote:

>>> From: dillon min <dillon.minfei@gmail.com>

>>>

>>> V5's update based on Mark Brown's suggestion, use 'SPI_MASTER_MUST_RX'

>>> for SPI_SIMPLEX_RX mode on stm32 spi controller.

>>>

>>> V5:

>>> 1 instead of add send dummy data out under SIMPLEX_RX mode,

>>>      add flags 'SPI_CONTROLLER_MUST_TX' for stm32 spi driver

>>> 2 bypass 'SPI_CONTROLLER_MUST_TX' and 'SPI_CONTROLLER_MUST_RX' under

>>> 'SPI_3WIRE' mode

>>>

>>

>> Concerning DT patches, they look goods for me. However I'll merge them

>> when drivers parts will be merged.

>>

>> regards

>> Alex

> This patchset status is :

> dts:

>      ARM: dts: stm32: Add dma config for spi5

>      ARM: dts: stm32: Add pin map for ltdc & spi5 on stm32f429-disco board

>      ARM: dts: stm32: enable ltdc binding with ili9341, gyro l3gd20 on

>        stm32429-disco board

> 

> panel-bindings: Reviewed-by: Rob Herring, need more reviewing to merge

>      dt-bindings: display: panel: Add ilitek ili9341 panel bindings

> 

> clk: Acked-by: Stephen Boyd , need more reviewing to merge

>      clk: stm32: Fix stm32f429's ltdc driver hang in set clock rate,

>        fix duplicated ltdc clock register to 'clk_core' case ltdc's clock

>          turn off by clk_disable_unused()

> 

> drm-panel:  Reviewed-by: Linus Walleij . need more reviewing to merge

>      drm/panel: Add ilitek ili9341 panel driver

> 

> spi-driver: Acked-by: Mark Brown ,merged into mainline

>      spi: stm32: Add 'SPI_SIMPLEX_RX', 'SPI_3WIRE_RX' support for stm32f4

>      spi: flags 'SPI_CONTROLLER_MUST_RX' and 'SPI_CONTROLLER_MUST_TX' can't

>        becoexit with 'SPI_3WIRE' mode

> 

> For ili9341 drivers, it seems to need more time to review, or might be dropped.

> since the drm maintainer might create a new interface to support

> DPI,DBI,DSI in one driver.

> Currently it's under discussion. I will rework the ili9341 driver after that.

> 

> But, we can use the existing "drivers/gpu/drm/tiny/ili9341.c" driver to support

> ili9341 on stm32f429-disco board only using the spi bus. except the

> display refresh performance is not as good as the ltdc interface.

> 

> I can submit a new patch just with dts changed this week for it, if you need.

>



Thanks for this status. I'm close to send my PR for v5.9. There is no 
needs to have an intermediate version (Except you absolutely want it).

Thanks
alex

> Thanks,

> Dillon.

>>

>>

>>

>>> V4:

>>> According to alexandre torgue's suggestion, combine ili9341 and

>>> l3gd20's modification on stm32f429-disco board to one patchset.

>>>

>>> Changes:

>>>

>>> ili9341:

>>>

>>> 1 update ili9341 panel driver according to Linus's suggestion

>>> 2 drop V1's No.5 patch, sumbit new changes for clk-stm32f4

>>> 3 merge l3gd20's change to this patchset

>>>

>>> V3:

>>> 1 merge original tiny/ili9341.c driver to panel/panel-ilitek-ili9341.c

>>>     to support serial spi & parallel rgb interface in one driver.

>>> 2 update ilitek,ili9341.yaml dts binding documentation.

>>> 3 update stm32f429-disco dts binding

>>>

>>> V2:

>>> 1 verify ilitek,ili9341.yaml with make O=../linux-stm32

>>>     dt_binding_check

>>>     DT_SCHEMA_FILES=Documentation/devicetree/bindings/display/panel/

>>>     ilitek,ili9341.yaml

>>>

>>> V1:

>>> 1 add ili9341 drm panel driver

>>> 2 add ltdc, spi5 controller for stm32f429-disco

>>> 3 add ltdc, spi5 pin map for stm32f429-disco

>>> 4 add docs about ili9341

>>> 5 fix ltdc driver loading hang in clk set rate bug

>>>

>>>

>>> L3gd20:

>>> V3:

>>> 1 merge stm32f429-disco dtbs binding with ili9341 part

>>>

>>> 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 (8):

>>>     ARM: dts: stm32: Add dma config for spi5

>>>     ARM: dts: stm32: Add pin map for ltdc & spi5 on stm32f429-disco board

>>>     ARM: dts: stm32: enable ltdc binding with ili9341, gyro l3gd20 on

>>>       stm32429-disco board

>>>     dt-bindings: display: panel: Add ilitek ili9341 panel bindings

>>>     clk: stm32: Fix stm32f429's ltdc driver hang in set clock rate,

>>>       fix duplicated ltdc clock register to 'clk_core' case ltdc's clock

>>>         turn off by clk_disable_unused()

>>>     drm/panel: Add ilitek ili9341 panel driver

>>>     spi: stm32: Add 'SPI_SIMPLEX_RX', 'SPI_3WIRE_RX' support for stm32f4

>>>     spi: flags 'SPI_CONTROLLER_MUST_RX' and 'SPI_CONTROLLER_MUST_TX' can't

>>>       be     coexit with 'SPI_3WIRE' mode

>>>

>>>    .../bindings/display/panel/ilitek,ili9341.yaml     |   69 ++

>>>    arch/arm/boot/dts/stm32f4-pinctrl.dtsi             |   67 +

>>>    arch/arm/boot/dts/stm32f429-disco.dts              |   48 +

>>>    arch/arm/boot/dts/stm32f429.dtsi                   |    3 +

>>>    drivers/clk/clk-stm32f4.c                          |    7 +-

>>>    drivers/gpu/drm/panel/Kconfig                      |   12 +

>>>    drivers/gpu/drm/panel/Makefile                     |    1 +

>>>    drivers/gpu/drm/panel/panel-ilitek-ili9341.c       | 1301 ++++++++++++++++++++

>>>    drivers/spi/spi-stm32.c                            |   19 +-

>>>    drivers/spi/spi.c                                  |    3 +-

>>>    10 files changed, 1521 insertions(+), 9 deletions(-)

>>>    create mode 100644 Documentation/devicetree/bindings/display/panel/ilitek,ili9341.yaml

>>>    create mode 100644 drivers/gpu/drm/panel/panel-ilitek-ili9341.c

>>>