mbox series

[v4,00/12] riscv: Add FPIOA and GPIO support for Kendryte K210

Message ID 20200624102947.359794-1-seanga2@gmail.com
Headers show
Series riscv: Add FPIOA and GPIO support for Kendryte K210 | expand

Message

Sean Anderson June 24, 2020, 10:29 a.m. UTC
This patch series adds support for pinmuxing, gpios, and leds on the Kendyte
K210.

This patch series was previously part of
https://patchwork.ozlabs.org/project/uboot/list/?series=161576

This patch series depends on
https://patchwork.ozlabs.org/project/uboot/list/?series=178480

Changes in v4:
- Add sandbox dt-binding headers to MAINTAINERS
- Add test for led behavior
- Add test/dm/pinmux.c to patch
- Move sandbox_* variables into a priv structure. This resets them to the
  default state every time we re-probe.
- Reformat documentation in dm/pinctrl.h

Changes in v3:
- Add dt-bindings/pinctrl/sandbox-pinmux.h to patch

Changes in v2:
- Add test for pinmuxing
- Don't clear existing pinctrl settings on probe
- Re-order GPIOs to match the defaults more closely
- Rebase onto v13 of "riscv: Add Sipeed Maix support"
- Rewrite FPIOA driver to use pinmux property
- Support muxing the output enable signal for each function in the FPIOA
- Support output and input inversion in the pinmux driver
- Support pinmux property in pinctrl-generic

Sean Anderson (12):
  pinctrl: Add pinmux property support to pinctrl-generic
  pinctrl: Reformat documentation in dm/pinctrl.h
  test: pinmux: Add test for pin muxing
  pinctrl: Add support for Kendryte K210 FPIOA
  gpio: sifive: Use generic reg read function
  gpio: dw: Fix warnings about casting int to pointer
  gpio: dw: Add a trailing underscore to generated name
  gpio: dw: Return output value when direction is out
  led: gpio: Default to using node name if label is absent
  test: dm: Test for default led naming
  riscv: Add pinmux and gpio bindings for Kendryte K210
  riscv: Add FPIOA and GPIO support for Kendryte K210

 MAINTAINERS                                   |   3 +
 arch/riscv/dts/k210-maix-bit.dts              | 104 +++
 arch/riscv/dts/k210.dtsi                      |  12 +
 arch/sandbox/dts/test.dts                     |  47 +-
 board/sipeed/maix/Kconfig                     |   9 +
 doc/board/sipeed/maix.rst                     |  64 +-
 .../pinctrl/kendryte,k210-fpioa.txt           | 102 +++
 .../pinctrl/pinctrl-bindings.txt              |  65 +-
 drivers/gpio/dwapb_gpio.c                     |  33 +-
 drivers/gpio/sifive-gpio.c                    |   2 +-
 drivers/led/led_gpio.c                        |   7 +-
 drivers/pinctrl/Kconfig                       |   1 +
 drivers/pinctrl/Makefile                      |   1 +
 drivers/pinctrl/kendryte/Kconfig              |   7 +
 drivers/pinctrl/kendryte/Makefile             |   1 +
 drivers/pinctrl/kendryte/pinctrl.c            | 678 ++++++++++++++++++
 drivers/pinctrl/kendryte/pinctrl.h            |  70 ++
 drivers/pinctrl/pinctrl-generic.c             | 125 +++-
 drivers/pinctrl/pinctrl-sandbox.c             | 186 +++--
 include/dm/pinctrl.h                          | 360 +++++++---
 include/dt-bindings/pinctrl/k210-pinctrl.h    | 277 +++++++
 include/dt-bindings/pinctrl/sandbox-pinmux.h  |  19 +
 test/dm/Makefile                              |   3 +
 test/dm/led.c                                 |   3 +-
 test/dm/pinmux.c                              |  57 ++
 test/py/tests/test_pinmux.py                  |  36 +-
 26 files changed, 2027 insertions(+), 245 deletions(-)
 create mode 100644 doc/device-tree-bindings/pinctrl/kendryte,k210-fpioa.txt
 create mode 100644 drivers/pinctrl/kendryte/Kconfig
 create mode 100644 drivers/pinctrl/kendryte/Makefile
 create mode 100644 drivers/pinctrl/kendryte/pinctrl.c
 create mode 100644 drivers/pinctrl/kendryte/pinctrl.h
 create mode 100644 include/dt-bindings/pinctrl/k210-pinctrl.h
 create mode 100644 include/dt-bindings/pinctrl/sandbox-pinmux.h
 create mode 100644 test/dm/pinmux.c

Comments

Sean Anderson Aug. 12, 2020, 2:03 p.m. UTC | #1
On 6/24/20 6:29 AM, Sean Anderson wrote:
> This patch series adds support for pinmuxing, gpios, and leds on the Kendyte

> K210.

> 

> This patch series was previously part of

> https://patchwork.ozlabs.org/project/uboot/list/?series=161576

> 

> This patch series depends on

> https://patchwork.ozlabs.org/project/uboot/list/?series=178480

> 

> Changes in v4:

> - Add sandbox dt-binding headers to MAINTAINERS

> - Add test for led behavior

> - Add test/dm/pinmux.c to patch

> - Move sandbox_* variables into a priv structure. This resets them to the

>   default state every time we re-probe.

> - Reformat documentation in dm/pinctrl.h

> 

> Changes in v3:

> - Add dt-bindings/pinctrl/sandbox-pinmux.h to patch

> 

> Changes in v2:

> - Add test for pinmuxing

> - Don't clear existing pinctrl settings on probe

> - Re-order GPIOs to match the defaults more closely

> - Rebase onto v13 of "riscv: Add Sipeed Maix support"

> - Rewrite FPIOA driver to use pinmux property

> - Support muxing the output enable signal for each function in the FPIOA

> - Support output and input inversion in the pinmux driver

> - Support pinmux property in pinctrl-generic

> 

> Sean Anderson (12):

>   pinctrl: Add pinmux property support to pinctrl-generic

>   pinctrl: Reformat documentation in dm/pinctrl.h

>   test: pinmux: Add test for pin muxing

>   pinctrl: Add support for Kendryte K210 FPIOA

>   gpio: sifive: Use generic reg read function

>   gpio: dw: Fix warnings about casting int to pointer

>   gpio: dw: Add a trailing underscore to generated name

>   gpio: dw: Return output value when direction is out

>   led: gpio: Default to using node name if label is absent

>   test: dm: Test for default led naming

>   riscv: Add pinmux and gpio bindings for Kendryte K210

>   riscv: Add FPIOA and GPIO support for Kendryte K210

> 

>  MAINTAINERS                                   |   3 +

>  arch/riscv/dts/k210-maix-bit.dts              | 104 +++

>  arch/riscv/dts/k210.dtsi                      |  12 +

>  arch/sandbox/dts/test.dts                     |  47 +-

>  board/sipeed/maix/Kconfig                     |   9 +

>  doc/board/sipeed/maix.rst                     |  64 +-

>  .../pinctrl/kendryte,k210-fpioa.txt           | 102 +++

>  .../pinctrl/pinctrl-bindings.txt              |  65 +-

>  drivers/gpio/dwapb_gpio.c                     |  33 +-

>  drivers/gpio/sifive-gpio.c                    |   2 +-

>  drivers/led/led_gpio.c                        |   7 +-

>  drivers/pinctrl/Kconfig                       |   1 +

>  drivers/pinctrl/Makefile                      |   1 +

>  drivers/pinctrl/kendryte/Kconfig              |   7 +

>  drivers/pinctrl/kendryte/Makefile             |   1 +

>  drivers/pinctrl/kendryte/pinctrl.c            | 678 ++++++++++++++++++

>  drivers/pinctrl/kendryte/pinctrl.h            |  70 ++

>  drivers/pinctrl/pinctrl-generic.c             | 125 +++-

>  drivers/pinctrl/pinctrl-sandbox.c             | 186 +++--

>  include/dm/pinctrl.h                          | 360 +++++++---

>  include/dt-bindings/pinctrl/k210-pinctrl.h    | 277 +++++++

>  include/dt-bindings/pinctrl/sandbox-pinmux.h  |  19 +

>  test/dm/Makefile                              |   3 +

>  test/dm/led.c                                 |   3 +-

>  test/dm/pinmux.c                              |  57 ++

>  test/py/tests/test_pinmux.py                  |  36 +-

>  26 files changed, 2027 insertions(+), 245 deletions(-)

>  create mode 100644 doc/device-tree-bindings/pinctrl/kendryte,k210-fpioa.txt

>  create mode 100644 drivers/pinctrl/kendryte/Kconfig

>  create mode 100644 drivers/pinctrl/kendryte/Makefile

>  create mode 100644 drivers/pinctrl/kendryte/pinctrl.c

>  create mode 100644 drivers/pinctrl/kendryte/pinctrl.h

>  create mode 100644 include/dt-bindings/pinctrl/k210-pinctrl.h

>  create mode 100644 include/dt-bindings/pinctrl/sandbox-pinmux.h

>  create mode 100644 test/dm/pinmux.c

> 


Rick can you put this in your rc3 PR? I think there are reviews for all
patches in this series.

--Sean
Rick Chen Aug. 14, 2020, 12:37 a.m. UTC | #2
Hi Sean

> On 6/24/20 6:29 AM, Sean Anderson wrote:

> > This patch series adds support for pinmuxing, gpios, and leds on the Kendyte

> > K210.

> >

> > This patch series was previously part of

> > https://patchwork.ozlabs.org/project/uboot/list/?series=161576

> >

> > This patch series depends on

> > https://patchwork.ozlabs.org/project/uboot/list/?series=178480

> >

> > Changes in v4:

> > - Add sandbox dt-binding headers to MAINTAINERS

> > - Add test for led behavior

> > - Add test/dm/pinmux.c to patch

> > - Move sandbox_* variables into a priv structure. This resets them to the

> >   default state every time we re-probe.

> > - Reformat documentation in dm/pinctrl.h

> >

> > Changes in v3:

> > - Add dt-bindings/pinctrl/sandbox-pinmux.h to patch

> >

> > Changes in v2:

> > - Add test for pinmuxing

> > - Don't clear existing pinctrl settings on probe

> > - Re-order GPIOs to match the defaults more closely

> > - Rebase onto v13 of "riscv: Add Sipeed Maix support"

> > - Rewrite FPIOA driver to use pinmux property

> > - Support muxing the output enable signal for each function in the FPIOA

> > - Support output and input inversion in the pinmux driver

> > - Support pinmux property in pinctrl-generic

> >

> > Sean Anderson (12):

> >   pinctrl: Add pinmux property support to pinctrl-generic

> >   pinctrl: Reformat documentation in dm/pinctrl.h

> >   test: pinmux: Add test for pin muxing

> >   pinctrl: Add support for Kendryte K210 FPIOA

> >   gpio: sifive: Use generic reg read function

> >   gpio: dw: Fix warnings about casting int to pointer

> >   gpio: dw: Add a trailing underscore to generated name

> >   gpio: dw: Return output value when direction is out

> >   led: gpio: Default to using node name if label is absent

> >   test: dm: Test for default led naming

> >   riscv: Add pinmux and gpio bindings for Kendryte K210

> >   riscv: Add FPIOA and GPIO support for Kendryte K210

> >

> >  MAINTAINERS                                   |   3 +

> >  arch/riscv/dts/k210-maix-bit.dts              | 104 +++

> >  arch/riscv/dts/k210.dtsi                      |  12 +

> >  arch/sandbox/dts/test.dts                     |  47 +-

> >  board/sipeed/maix/Kconfig                     |   9 +

> >  doc/board/sipeed/maix.rst                     |  64 +-

> >  .../pinctrl/kendryte,k210-fpioa.txt           | 102 +++

> >  .../pinctrl/pinctrl-bindings.txt              |  65 +-

> >  drivers/gpio/dwapb_gpio.c                     |  33 +-

> >  drivers/gpio/sifive-gpio.c                    |   2 +-

> >  drivers/led/led_gpio.c                        |   7 +-

> >  drivers/pinctrl/Kconfig                       |   1 +

> >  drivers/pinctrl/Makefile                      |   1 +

> >  drivers/pinctrl/kendryte/Kconfig              |   7 +

> >  drivers/pinctrl/kendryte/Makefile             |   1 +

> >  drivers/pinctrl/kendryte/pinctrl.c            | 678 ++++++++++++++++++

> >  drivers/pinctrl/kendryte/pinctrl.h            |  70 ++

> >  drivers/pinctrl/pinctrl-generic.c             | 125 +++-

> >  drivers/pinctrl/pinctrl-sandbox.c             | 186 +++--

> >  include/dm/pinctrl.h                          | 360 +++++++---

> >  include/dt-bindings/pinctrl/k210-pinctrl.h    | 277 +++++++

> >  include/dt-bindings/pinctrl/sandbox-pinmux.h  |  19 +

> >  test/dm/Makefile                              |   3 +

> >  test/dm/led.c                                 |   3 +-

> >  test/dm/pinmux.c                              |  57 ++

> >  test/py/tests/test_pinmux.py                  |  36 +-

> >  26 files changed, 2027 insertions(+), 245 deletions(-)

> >  create mode 100644 doc/device-tree-bindings/pinctrl/kendryte,k210-fpioa.txt

> >  create mode 100644 drivers/pinctrl/kendryte/Kconfig

> >  create mode 100644 drivers/pinctrl/kendryte/Makefile

> >  create mode 100644 drivers/pinctrl/kendryte/pinctrl.c

> >  create mode 100644 drivers/pinctrl/kendryte/pinctrl.h

> >  create mode 100644 include/dt-bindings/pinctrl/k210-pinctrl.h

> >  create mode 100644 include/dt-bindings/pinctrl/sandbox-pinmux.h

> >  create mode 100644 test/dm/pinmux.c

> >

>

> Rick can you put this in your rc3 PR? I think there are reviews for all

> patches in this series.

>


OK, but it conflicts with u-boot/master

Applying: pinctrl: Add pinmux property support to pinctrl-generic
Applying: pinctrl: Reformat documentation in dm/pinctrl.h
Applying: test: pinmux: Add test for pin muxing
Applying: pinctrl: Add support for Kendryte K210 FPIOA
Applying: gpio: sifive: Use generic reg read function
error: patch failed: drivers/gpio/sifive-gpio.c:159
error: drivers/gpio/sifive-gpio.c: patch does not apply
Patch failed at 0005 gpio: sifive: Use generic reg read function

Thanks,
Rick

> --Sean
Sean Anderson Aug. 14, 2020, 1:52 a.m. UTC | #3
On 8/13/20 8:37 PM, Rick Chen wrote:
> Hi Sean

> 

>> On 6/24/20 6:29 AM, Sean Anderson wrote:

>>> This patch series adds support for pinmuxing, gpios, and leds on the Kendyte

>>> K210.

>>>

>>> This patch series was previously part of

>>> https://patchwork.ozlabs.org/project/uboot/list/?series=161576

>>>

>>> This patch series depends on

>>> https://patchwork.ozlabs.org/project/uboot/list/?series=178480

>>>

>>> Changes in v4:

>>> - Add sandbox dt-binding headers to MAINTAINERS

>>> - Add test for led behavior

>>> - Add test/dm/pinmux.c to patch

>>> - Move sandbox_* variables into a priv structure. This resets them to the

>>>   default state every time we re-probe.

>>> - Reformat documentation in dm/pinctrl.h

>>>

>>> Changes in v3:

>>> - Add dt-bindings/pinctrl/sandbox-pinmux.h to patch

>>>

>>> Changes in v2:

>>> - Add test for pinmuxing

>>> - Don't clear existing pinctrl settings on probe

>>> - Re-order GPIOs to match the defaults more closely

>>> - Rebase onto v13 of "riscv: Add Sipeed Maix support"

>>> - Rewrite FPIOA driver to use pinmux property

>>> - Support muxing the output enable signal for each function in the FPIOA

>>> - Support output and input inversion in the pinmux driver

>>> - Support pinmux property in pinctrl-generic

>>>

>>> Sean Anderson (12):

>>>   pinctrl: Add pinmux property support to pinctrl-generic

>>>   pinctrl: Reformat documentation in dm/pinctrl.h

>>>   test: pinmux: Add test for pin muxing

>>>   pinctrl: Add support for Kendryte K210 FPIOA

>>>   gpio: sifive: Use generic reg read function

>>>   gpio: dw: Fix warnings about casting int to pointer

>>>   gpio: dw: Add a trailing underscore to generated name

>>>   gpio: dw: Return output value when direction is out

>>>   led: gpio: Default to using node name if label is absent

>>>   test: dm: Test for default led naming

>>>   riscv: Add pinmux and gpio bindings for Kendryte K210

>>>   riscv: Add FPIOA and GPIO support for Kendryte K210

>>>

>>>  MAINTAINERS                                   |   3 +

>>>  arch/riscv/dts/k210-maix-bit.dts              | 104 +++

>>>  arch/riscv/dts/k210.dtsi                      |  12 +

>>>  arch/sandbox/dts/test.dts                     |  47 +-

>>>  board/sipeed/maix/Kconfig                     |   9 +

>>>  doc/board/sipeed/maix.rst                     |  64 +-

>>>  .../pinctrl/kendryte,k210-fpioa.txt           | 102 +++

>>>  .../pinctrl/pinctrl-bindings.txt              |  65 +-

>>>  drivers/gpio/dwapb_gpio.c                     |  33 +-

>>>  drivers/gpio/sifive-gpio.c                    |   2 +-

>>>  drivers/led/led_gpio.c                        |   7 +-

>>>  drivers/pinctrl/Kconfig                       |   1 +

>>>  drivers/pinctrl/Makefile                      |   1 +

>>>  drivers/pinctrl/kendryte/Kconfig              |   7 +

>>>  drivers/pinctrl/kendryte/Makefile             |   1 +

>>>  drivers/pinctrl/kendryte/pinctrl.c            | 678 ++++++++++++++++++

>>>  drivers/pinctrl/kendryte/pinctrl.h            |  70 ++

>>>  drivers/pinctrl/pinctrl-generic.c             | 125 +++-

>>>  drivers/pinctrl/pinctrl-sandbox.c             | 186 +++--

>>>  include/dm/pinctrl.h                          | 360 +++++++---

>>>  include/dt-bindings/pinctrl/k210-pinctrl.h    | 277 +++++++

>>>  include/dt-bindings/pinctrl/sandbox-pinmux.h  |  19 +

>>>  test/dm/Makefile                              |   3 +

>>>  test/dm/led.c                                 |   3 +-

>>>  test/dm/pinmux.c                              |  57 ++

>>>  test/py/tests/test_pinmux.py                  |  36 +-

>>>  26 files changed, 2027 insertions(+), 245 deletions(-)

>>>  create mode 100644 doc/device-tree-bindings/pinctrl/kendryte,k210-fpioa.txt

>>>  create mode 100644 drivers/pinctrl/kendryte/Kconfig

>>>  create mode 100644 drivers/pinctrl/kendryte/Makefile

>>>  create mode 100644 drivers/pinctrl/kendryte/pinctrl.c

>>>  create mode 100644 drivers/pinctrl/kendryte/pinctrl.h

>>>  create mode 100644 include/dt-bindings/pinctrl/k210-pinctrl.h

>>>  create mode 100644 include/dt-bindings/pinctrl/sandbox-pinmux.h

>>>  create mode 100644 test/dm/pinmux.c

>>>

>>

>> Rick can you put this in your rc3 PR? I think there are reviews for all

>> patches in this series.

>>

> 

> OK, but it conflicts with u-boot/master

> 

> Applying: pinctrl: Add pinmux property support to pinctrl-generic

> Applying: pinctrl: Reformat documentation in dm/pinctrl.h

> Applying: test: pinmux: Add test for pin muxing

> Applying: pinctrl: Add support for Kendryte K210 FPIOA

> Applying: gpio: sifive: Use generic reg read function

> error: patch failed: drivers/gpio/sifive-gpio.c:159

> error: drivers/gpio/sifive-gpio.c: patch does not apply

> Patch failed at 0005 gpio: sifive: Use generic reg read function


I rebased it onto upstream/master and ran into some trouble with the
board failing to boot. I've CC'd you in a reply to the patch which
causes the breakage. Hopefully it'll end up being a minor change.

--Sean