Unverified Commit 207656f7 authored by Arnd Bergmann's avatar Arnd Bergmann
Browse files

Merge branch 'nuvoton/ma35d1' into soc/newsoc

This patchset adds initial support for the Nuvoton ma35d1 SoC, including
initial device tree, clock driver, reset driver, and serial driver.

This patchset cover letter is based from the initial support for Nuvoton
ma35d1 to keep tracking the version history.

This patchset had been applied to Linux kernel 6.4.0-rc5
and tested on the Nuvoton ma35d1 SOM evaluation board.

(ma35d1 information: https://www.nuvoton.com/products/microprocessors/arm-cortex-a35-mpus/)
MA35D1 porting on linux-5.10.y can be found at: https://github.com/OpenNuvoton/MPU-Family

Link: https://lore.kernel.org/linux-arm-kernel/20230605040749.67964-1-ychuang570808@gmail.com/



[arnd: merging everything aside from the serial port driver for now, as
 that is still waiting for an Ack]

* nuvoton/ma35d1:
  reset: Add Nuvoton ma35d1 reset driver support
  clk: nuvoton: Add clock driver for ma35d1 clock controller
  arm64: dts: nuvoton: Add initial ma35d1 device tree
  dt-bindings: serial: Document ma35d1 uart controller
  dt-bindings: arm: Add initial bindings for Nuvoton platform
  dt-bindings: reset: nuvoton: Document ma35d1 reset control
  dt-bindings: clock: nuvoton: add binding for ma35d1 clock controller
  arm64: defconfig: Add support for Nuvoton MA35 family SoCs
  arm64: Kconfig.platforms: Add config for Nuvoton MA35 platform

Signed-off-by: default avatarArnd Bergmann <arnd@arndb.de>
parents f1fcbaa1 e4bb55d6
Loading
Loading
Loading
Loading
+30 −0
Original line number Diff line number Diff line
# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
%YAML 1.2
---
$id: http://devicetree.org/schemas/arm/nuvoton/nuvoton,ma35d1.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: Nuvoton MA35 series SoC based platforms

maintainers:
  - Jacky Huang <ychuang3@nuvoton.com>

description: |
  Boards with an ARMv8 based Nuvoton MA35 series SoC shall have
  the following properties.

properties:
  $nodename:
    const: '/'
  compatible:
    oneOf:

      - description: MA35D1 based boards
        items:
          - enum:
              - nuvoton,ma35d1-iot
              - nuvoton,ma35d1-som
          - const: nuvoton,ma35d1

additionalProperties: true
...
+1 −1
Original line number Diff line number Diff line
# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
%YAML 1.2
---
$id: http://devicetree.org/schemas/arm/npcm/npcm.yaml#
$id: http://devicetree.org/schemas/arm/nuvoton/nuvoton,npcm.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: NPCM Platforms
+63 −0
Original line number Diff line number Diff line
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/clock/nuvoton,ma35d1-clk.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: Nuvoton MA35D1 Clock Controller Module

maintainers:
  - Chi-Fang Li <cfli0@nuvoton.com>
  - Jacky Huang <ychuang3@nuvoton.com>

description: |
  The MA35D1 clock controller generates clocks for the whole chip,
  including system clocks and all peripheral clocks.

  See also:
    include/dt-bindings/clock/ma35d1-clk.h

properties:
  compatible:
    items:
      - const: nuvoton,ma35d1-clk

  reg:
    maxItems: 1

  "#clock-cells":
    const: 1

  clocks:
    maxItems: 1

  nuvoton,pll-mode:
    description:
      A list of PLL operation mode corresponding to CAPLL, DDRPLL, APLL,
      EPLL, and VPLL in sequential.
    maxItems: 5
    items:
      enum:
        - integer
        - fractional
        - spread-spectrum
    $ref: /schemas/types.yaml#/definitions/non-unique-string-array

required:
  - compatible
  - reg
  - "#clock-cells"
  - clocks

additionalProperties: false

examples:
  - |

    clock-controller@40460200 {
        compatible = "nuvoton,ma35d1-clk";
        reg = <0x40460200 0x100>;
        #clock-cells = <1>;
        clocks = <&clk_hxt>;
    };
...
+45 −0
Original line number Diff line number Diff line
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/reset/nuvoton,ma35d1-reset.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: Nuvoton MA35D1 Reset Controller

maintainers:
  - Chi-Fang Li <cfli0@nuvoton.com>
  - Jacky Huang <ychuang3@nuvoton.com>

description:
  The system reset controller can be used to reset various peripheral
  controllers in MA35D1 SoC.

properties:
  compatible:
    items:
      - const: nuvoton,ma35d1-reset

  reg:
    maxItems: 1

  '#reset-cells':
    const: 1

required:
  - compatible
  - reg
  - '#reset-cells'

additionalProperties: false

examples:
  # system reset controller node:
  - |

    system-management@40460000 {
        compatible = "nuvoton,ma35d1-reset";
        reg = <0x40460000 0x200>;
        #reset-cells = <1>;
    };
...
+48 −0
Original line number Diff line number Diff line
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/serial/nuvoton,ma35d1-serial.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: Nuvoton MA35D1 Universal Asynchronous Receiver/Transmitter (UART)

maintainers:
  - Min-Jen Chen <mjchen@nuvoton.com>
  - Jacky Huang <ychuang3@nuvoton.com>

allOf:
  - $ref: serial.yaml

properties:
  compatible:
    const: nuvoton,ma35d1-uart

  reg:
    maxItems: 1

  interrupts:
    maxItems: 1

  clocks:
    maxItems: 1

required:
  - compatible
  - reg
  - interrupts
  - clocks

unevaluatedProperties: false

examples:
  - |
    #include <dt-bindings/interrupt-controller/arm-gic.h>
    #include <dt-bindings/clock/nuvoton,ma35d1-clk.h>

    serial@40700000 {
        compatible = "nuvoton,ma35d1-uart";
        reg = <0x40700000 0x100>;
        interrupts = <GIC_SPI 59 IRQ_TYPE_LEVEL_HIGH>;
        clocks = <&clk UART0_GATE>;
    };
...
Loading