From: William Zhang <william.zhang@broadcom.com>
To: anand.gore@broadcom.com, kursad.oney@broadcom.com,
U-Boot Mailing List <u-boot@lists.denx.de>,
noltari@gmail.com, philippe.reynes@softathome.com,
tomer.yacoby@broadcom.com, dregan@mail.com
Cc: William Zhang <william.zhang@broadcom.com>,
joel.peshkin@broadcom.com, dan.beygelman@broadcom.com,
Jagan Teki <jagan@amarulasolutions.com>
Subject: [PATCH v2 1/9] dt-bindings: spi: Add bcm63xx-hsspi controller support
Date: Tue, 2 May 2023 11:58:08 -0700 [thread overview]
Message-ID: <20230502185817.374951-2-william.zhang@broadcom.com> (raw)
In-Reply-To: <20230502185817.374951-1-william.zhang@broadcom.com>
Bring the device tree binding document from Linux to u-boot
Port from linux patches:
Link: https://lore.kernel.org/r/20230207065826.285013-2-william.zhang@broadcom.com
Link: https://lore.kernel.org/r/20230207065826.285013-3-william.zhang@broadcom.com
Signed-off-by: William Zhang <william.zhang@broadcom.com>
---
Changes in v2: None
.../spi/brcm,bcm63xx-hsspi.yaml | 134 ++++++++++++++++++
1 file changed, 134 insertions(+)
create mode 100644 doc/device-tree-bindings/spi/brcm,bcm63xx-hsspi.yaml
diff --git a/doc/device-tree-bindings/spi/brcm,bcm63xx-hsspi.yaml b/doc/device-tree-bindings/spi/brcm,bcm63xx-hsspi.yaml
new file mode 100644
index 000000000000..6554978583f8
--- /dev/null
+++ b/doc/device-tree-bindings/spi/brcm,bcm63xx-hsspi.yaml
@@ -0,0 +1,134 @@
+# SPDX-License-Identifier: GPL-2.0 OR BSD-2-Clause
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/spi/brcm,bcm63xx-hsspi.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Broadcom Broadband SoC High Speed SPI controller
+
+maintainers:
+ - William Zhang <william.zhang@broadcom.com>
+ - Kursad Oney <kursad.oney@broadcom.com>
+ - Jonas Gorski <jonas.gorski@gmail.com>
+
+description: |
+ Broadcom Broadband SoC supports High Speed SPI master controller since the
+ early MIPS based chips such as BCM6328 and BCM63268. This initial rev 1.0
+ controller was carried over to recent ARM based chips, such as BCM63138,
+ BCM4908 and BCM6858. The old MIPS based chip should continue to use the
+ brcm,bcm6328-hsspi compatible string. The recent ARM based chip is required to
+ use the brcm,bcmbca-hsspi-v1.0 as part of its compatible string list as
+ defined below to match the specific chip along with ip revision info.
+
+ This rev 1.0 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 either the controller's prepend mode or using the dummy chip
+ select workaround. Driver automatically picks the suitable mode based on
+ transfer type so it is transparent to the user.
+
+ The newer SoCs such as BCM6756, BCM4912 and BCM6855 include an updated SPI
+ controller rev 1.1 that add the capability to allow the driver to control chip
+ select explicitly. This solves the issue in the old controller.
+
+properties:
+ compatible:
+ oneOf:
+ - const: brcm,bcm6328-hsspi
+ - items:
+ - enum:
+ - brcm,bcm47622-hsspi
+ - brcm,bcm4908-hsspi
+ - brcm,bcm63138-hsspi
+ - brcm,bcm63146-hsspi
+ - brcm,bcm63148-hsspi
+ - brcm,bcm63158-hsspi
+ - brcm,bcm63178-hsspi
+ - brcm,bcm6846-hsspi
+ - brcm,bcm6856-hsspi
+ - brcm,bcm6858-hsspi
+ - brcm,bcm6878-hsspi
+ - const: brcm,bcmbca-hsspi-v1.0
+ - items:
+ - enum:
+ - brcm,bcm4912-hsspi
+ - brcm,bcm6756-hsspi
+ - brcm,bcm6813-hsspi
+ - brcm,bcm6855-hsspi
+ - const: brcm,bcmbca-hsspi-v1.1
+
+ reg:
+ items:
+ - description: main registers
+ - description: miscellaneous control registers
+ minItems: 1
+
+ reg-names:
+ items:
+ - const: hsspi
+ - const: spim-ctrl
+ minItems: 1
+
+ clocks:
+ items:
+ - description: SPI master reference clock
+ - description: SPI master pll clock
+
+ clock-names:
+ items:
+ - const: hsspi
+ - const: pll
+
+ interrupts:
+ maxItems: 1
+
+required:
+ - compatible
+ - reg
+ - clocks
+ - clock-names
+ - interrupts
+
+allOf:
+ - $ref: spi-controller.yaml#
+ - if:
+ properties:
+ compatible:
+ contains:
+ enum:
+ - brcm,bcm6328-hsspi
+ - brcm,bcmbca-hsspi-v1.0
+ then:
+ properties:
+ reg:
+ maxItems: 1
+ reg-names:
+ maxItems: 1
+ else:
+ properties:
+ reg:
+ minItems: 2
+ maxItems: 2
+ reg-names:
+ minItems: 2
+ maxItems: 2
+ required:
+ - reg-names
+
+unevaluatedProperties: false
+
+examples:
+ - |
+ #include <dt-bindings/interrupt-controller/arm-gic.h>
+ spi@ff801000 {
+ compatible = "brcm,bcm6756-hsspi", "brcm,bcmbca-hsspi-v1.1";
+ reg = <0xff801000 0x1000>,
+ <0xff802610 0x4>;
+ reg-names = "hsspi", "spim-ctrl";
+ interrupts = <GIC_SPI 36 IRQ_TYPE_LEVEL_HIGH>;
+ clocks = <&hsspi>, <&hsspi_pll>;
+ clock-names = "hsspi", "pll";
+ num-cs = <8>;
+ #address-cells = <1>;
+ #size-cells = <0>;
+ };
--
2.37.3
next prev parent reply other threads:[~2023-05-02 18:59 UTC|newest]
Thread overview: 20+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-05-02 18:58 [PATCH v2 0/9] spi: bcm63xx-hsspi: driver and doc updates William Zhang
2023-05-02 18:58 ` William Zhang [this message]
2023-05-02 18:58 ` [PATCH v2 2/9] ARM: dts: broadcom: bcmbca: Add spi controller node William Zhang
2023-05-02 18:58 ` [PATCH v2 3/9] arm64: " William Zhang
2023-05-02 18:58 ` [PATCH v2 4/9] spi: bcm63xx-hsspi: Enable SPI drivers by default William Zhang
2023-05-02 18:58 ` [PATCH v2 5/9] spi: bcm63xx-hsspi: Add new compatible string support William Zhang
2023-06-02 5:46 ` Jagan Teki
2023-05-02 18:58 ` [PATCH v2 6/9] spi: bcm63xx-hsspi: Fix multi-bit mode setting William Zhang
2023-06-02 5:47 ` Jagan Teki
2023-05-02 18:58 ` [PATCH v2 7/9] spi: bcm63xx-hsspi: Add prepend mode support William Zhang
2023-05-02 18:58 ` [PATCH v2 8/9] spi: bcmbca-hsspi: Add driver for newer HSSPI controller William Zhang
2023-06-02 5:54 ` Jagan Teki
2023-06-02 18:53 ` William Zhang
2023-05-02 18:58 ` [PATCH v2 9/9] MAINTAINERS: Add Broadcom Broadband SoC HS SPI drivers William Zhang
2023-06-01 23:52 ` [PATCH v2 0/9] spi: bcm63xx-hsspi: driver and doc updates William Zhang
2023-06-02 6:01 ` Jagan Teki
2023-06-02 18:56 ` William Zhang
2023-06-06 20:19 ` William Zhang
2023-06-07 20:05 ` Tom Rini
2023-06-07 20:31 ` William Zhang
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20230502185817.374951-2-william.zhang@broadcom.com \
--to=william.zhang@broadcom.com \
--cc=anand.gore@broadcom.com \
--cc=dan.beygelman@broadcom.com \
--cc=dregan@mail.com \
--cc=jagan@amarulasolutions.com \
--cc=joel.peshkin@broadcom.com \
--cc=kursad.oney@broadcom.com \
--cc=noltari@gmail.com \
--cc=philippe.reynes@softathome.com \
--cc=tomer.yacoby@broadcom.com \
--cc=u-boot@lists.denx.de \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox