Unverified Commit 26cbb4dd authored by Mark Brown's avatar Mark Brown
Browse files

Axiado AX3000 SoC SPI DB controller driver

Merge series from Vladimir Moravcevic <vmoravcevic@axiado.com>:

This series introduces new SPI controller driver for Axiado AX3000 SoC
and its evaluation board.

The SPI controller provides:
- Full-duplex and half-duplex transfer support
- Configurable clock polarity and phase
- Interrupt-driven

Functionality has been verified using the `jedec,spi-nor` interface to
access onboard flash memory. This ensures compatibility with common NOR
flash devices used in boot and storage subsystem.

Further improvements, including performance tuning and extended hardware
feature support, will be submitted in follow-up patches.
parents a014c203 db4371d1
Loading
Loading
Loading
Loading
+73 −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/spi/axiado,ax3000-spi.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: Axiado AX3000 SoC SPI controller

maintainers:
  - Vladimir Moravcevic <vmoravcevic@axiado.com>
  - Tzu-Hao Wei <twei@axiado.com>
  - Swark Yang <syang@axiado.com>
  - Prasad Bolisetty <pbolisetty@axiado.com>

allOf:
  - $ref: spi-controller.yaml#

properties:
  compatible:
    enum:
      - axiado,ax3000-spi

  reg:
    maxItems: 1

  interrupts:
    maxItems: 1

  clock-names:
    items:
      - const: ref
      - const: pclk

  clocks:
    maxItems: 2

  num-cs:
    description: |
      Number of chip selects used.
    $ref: /schemas/types.yaml#/definitions/uint32
    minimum: 1
    maximum: 4
    default: 4

required:
  - compatible
  - reg
  - interrupts
  - clock-names
  - clocks

unevaluatedProperties: false

examples:
  - |
   #include <dt-bindings/interrupt-controller/irq.h>
   #include <dt-bindings/interrupt-controller/arm-gic.h>

   soc {
      #address-cells = <2>;
      #size-cells = <2>;

      spi@80510000 {
         compatible = "axiado,ax3000-spi";
         reg = <0x00 0x80510000 0x00 0x1000>;
         clock-names = "ref", "pclk";
         clocks = <&spi_clk>, <&apb_pclk>;
         interrupt-parent = <&gic500>;
         interrupts = <GIC_SPI 115 IRQ_TYPE_LEVEL_HIGH>;
         num-cs = <4>;
      };
   };
...
+11 −0
Original line number Diff line number Diff line
@@ -4276,6 +4276,17 @@ W: https://ez.analog.com/linux-software-drivers
F:	Documentation/devicetree/bindings/pwm/adi,axi-pwmgen.yaml
F:	drivers/pwm/pwm-axi-pwmgen.c
AXIADO SPI DB DRIVER
M:	Vladimir Moravcevic <vmoravcevic@axiado.com>
M:	Tzu-Hao Wei <twei@axiado.com>
M:	Swark Yang <syang@axiado.com>
M:	Prasad Bolisetty <pbolisetty@axiado.com>
L:	linux-spi@vger.kernel.org
S:	Maintained
F:	Documentation/devicetree/bindings/spi/axiado,ax3000-spi.yaml
F:	drivers/spi/spi-axiado.c
F:	drivers/spi/spi-axiado.h
AYANEO PLATFORM EC DRIVER
M:	Antheas Kapenekakis <lkml@antheas.dev>
L:	platform-driver-x86@vger.kernel.org
+10 −0
Original line number Diff line number Diff line
@@ -213,6 +213,16 @@ config SPI_AXI_SPI_ENGINE
	  It is part of the SPI Engine framework that is used in some Analog Devices
	  reference designs for FPGAs.

config SPI_AXIADO
	tristate "Axiado DB-H SPI controller"
	depends on SPI_MEM
	help
	  Enable support for the SPI controller present on Axiado AX3000 SoCs.

	  The implementation supports host-only mode and does not provide target
	  functionality. It is intended for use cases where the SoC acts as the SPI
	  host, communicating with peripheral devices such as flash memory.

config SPI_BCM2835
	tristate "BCM2835 SPI controller"
	depends on GPIOLIB
+1 −0
Original line number Diff line number Diff line
@@ -33,6 +33,7 @@ obj-$(CONFIG_SPI_AT91_USART) += spi-at91-usart.o
obj-$(CONFIG_SPI_ATH79)			+= spi-ath79.o
obj-$(CONFIG_SPI_AU1550)		+= spi-au1550.o
obj-$(CONFIG_SPI_AXI_SPI_ENGINE)	+= spi-axi-spi-engine.o
obj-$(CONFIG_SPI_AXIADO)		+= spi-axiado.o
obj-$(CONFIG_SPI_BCM2835)		+= spi-bcm2835.o
obj-$(CONFIG_SPI_BCM2835AUX)		+= spi-bcm2835aux.o
obj-$(CONFIG_SPI_BCM63XX)		+= spi-bcm63xx.o
+1007 −0

File added.

Preview size limit exceeded, changes collapsed.

Loading