# SPDX-License-Identifier: GPL-2.0 OR BSD-2-Clause
%YAML 1.2
---
$id: http://devicetree.org/schemas/spi/brcm,bcm63xx-spi.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: Broadcom BCM6348/BCM6358 SPI controller

maintainers:
  - Jonas Gorski <jonas.gorski@gmail.com>

description: |
  Broadcom "Low Speed" SPI controller found in many older MIPS based Broadband
  SoCs.

  This controller has a limitation that can not keep the chip select line active
  between the SPI transfers within the same SPI message. This can terminate the
  transaction to some SPI devices prematurely. The issue can be worked around by
  the controller's prepend mode.

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

properties:
  compatible:
    oneOf:
      - items:
          - enum:
              - brcm,bcm6368-spi
              - brcm,bcm6362-spi
              - brcm,bcm63268-spi
          - const: brcm,bcm6358-spi
      - enum:
          - brcm,bcm6348-spi
          - brcm,bcm6358-spi

  reg:
    maxItems: 1

  clocks:
    items:
      - description: SPI master reference clock

  clock-names:
    items:
      - const: spi

  interrupts:
    maxItems: 1

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

unevaluatedProperties: false

examples:
  - |
    spi@10000800 {
        compatible = "brcm,bcm6368-spi", "brcm,bcm6358-spi";
        reg = <0x10000800 0x70c>;
        interrupts = <1>;
        clocks = <&clkctl 9>;
        clock-names = "spi";
        num-cs = <5>;
        #address-cells = <1>;
        #size-cells = <0>;
    };