[Letux-kernel] [RFC 00/28] Add support for Ingenic JZ4730

H. Nikolaus Schaller hns at goldelico.com
Sat Jan 23 17:28:26 CET 2021


This series adds kernel support for the Ingenic JZ430 SoC.

The jz4730 SoC is similar but not identical to the other
Ingenic SoC. Hence we add code to some existing drivers,
add some new variants and provide a device tree include
file.

This chip is used by the Skytone Alpha 400 and derivatives.
A machine definition for the alpha400 is in a separate
series.

We also have some small fixes for DRM and jz4740 in this
series.

There have been multiple authors working on the project:
- Paul Boddie <paul at boddie.org.uk>
- Lubomir Rintel <lkundrak at v3.sk>
- H. Nikolaus Schaller <hns at goldelico.com>


H. Nikolaus Schaller (17):
  MIPS: ingenic: introduce MACH_JZ4730
  MIPS: add jz4730 to generic/board-ingenic
  Bindings: clock: ingenic,cgu: add jz4730
  Bindings: timer: ingenic,tcu: add jz4730
  Bindings: timer: ingenic: add jz4730-pwm
  Bindings: pinctrl: ingenic: add jz4730
  Bindings: i2c: ingenic: add jz4730
  Bindings: dma: ingenic: add jz4730
  drm/fourcc: add legacy conversion from bpp=32 to depth=16
  drm/client: handle potential NULL pointer dereference
  drm/fb-helper: fix potential NULL dereference in drm_fbdev_cleanup()
  drm/ingenic: write JZ_REG_LCD_IPUR only if there is an ipu_plane
  drm/ingenic: fix assignment of DMA channels
  Bindings: drm/ingenic: add jz4730
  drm/ingenic: add jz4730 SoC info
  MIPS: DTS: jz4740: add i2c support
  hack: disable DMA for mmc

Paul Boddie (11):
  MIPS: DTS: add JZ4730 DT file
  clock/ingenic/cgu: introduce clock driver for the JZ4730
  clock/ingenic/tcu: add JZ4730 definitons
  timer: ingenic: Add TCU declarations for the JZ4730
  pwm: introduce jz4730 pwm driver
  irq: ingenic: add JZ4730 interrupt controller identification
  irqchip/ingenic: Pass the whole priv struct to callbacks and add
    jz4730
  pinctrl/ingenic: Add pinctrl support for the JZ4730
  i2c: introduce JZ4730/JZ4740 I2C driver
  dmaengine: jz4780: add JZ4730 DMA customisations
  watchdog: jz4740: add JZ4730 watchdog timer support

 .../bindings/clock/ingenic,cgu.yaml           |   1 +
 .../bindings/display/ingenic,lcd.yaml         |   2 +
 .../devicetree/bindings/dma/ingenic,dma.yaml  |   1 +
 .../devicetree/bindings/i2c/ingenic,i2c.yaml  |   2 +
 .../bindings/pinctrl/ingenic,pinctrl.yaml     |   1 +
 .../bindings/timer/ingenic,tcu.yaml           |   4 +
 arch/mips/boot/dts/ingenic/jz4730.dtsi        | 363 +++++++++++++++
 arch/mips/boot/dts/ingenic/jz4740.dtsi        |  16 +
 arch/mips/generic/board-ingenic.c             |   3 +
 arch/mips/ingenic/Kconfig                     |   5 +
 drivers/clk/ingenic/Kconfig                   |  10 +
 drivers/clk/ingenic/Makefile                  |   1 +
 drivers/clk/ingenic/jz4730-cgu.c              | 268 +++++++++++
 drivers/clk/ingenic/tcu.c                     | 185 ++++++--
 drivers/clocksource/ingenic-timer.c           |  73 ++-
 drivers/dma/dma-jz4780.c                      | 101 +++-
 drivers/gpu/drm/drm_client.c                  |   5 +
 drivers/gpu/drm/drm_fb_helper.c               |   2 +-
 drivers/gpu/drm/drm_fourcc.c                  |   3 +
 drivers/gpu/drm/ingenic/ingenic-drm-drv.c     |  33 +-
 drivers/i2c/busses/Kconfig                    |   9 +
 drivers/i2c/busses/Makefile                   |   1 +
 drivers/i2c/busses/i2c-jz4730.c               | 430 ++++++++++++++++++
 drivers/irqchip/irq-ingenic-tcu.c             |  75 ++-
 drivers/irqchip/irq-ingenic.c                 |   1 +
 drivers/mmc/host/jz4740_mmc.c                 |   1 +
 drivers/pinctrl/pinctrl-ingenic.c             | 197 +++++++-
 drivers/pwm/Kconfig                           |  10 +
 drivers/pwm/Makefile                          |   1 +
 drivers/pwm/pwm-jz4730.c                      | 248 ++++++++++
 drivers/watchdog/jz4740_wdt.c                 | 104 ++++-
 include/dt-bindings/clock/jz4730-cgu.h        |  48 ++
 include/linux/mfd/ingenic-tcu.h               |  25 +-
 33 files changed, 2130 insertions(+), 99 deletions(-)
 create mode 100644 arch/mips/boot/dts/ingenic/jz4730.dtsi
 create mode 100644 drivers/clk/ingenic/jz4730-cgu.c
 create mode 100644 drivers/i2c/busses/i2c-jz4730.c
 create mode 100644 drivers/pwm/pwm-jz4730.c
 create mode 100644 include/dt-bindings/clock/jz4730-cgu.h

-- 
2.26.2



More information about the Letux-kernel mailing list