diff options
author | Tom Rini <trini@konsulko.com> | 2023-07-13 20:39:10 -0400 |
---|---|---|
committer | Tom Rini <trini@konsulko.com> | 2023-07-13 20:39:10 -0400 |
commit | cef36755094f0c5463ff34ac89de8d88ef68982b (patch) | |
tree | 9c49b6e79e099a40cf58b01794b1d6293ecfdc11 /doc | |
parent | c990ecba4d8b73a0fcf6f33d758ff1ed176e44ae (diff) | |
parent | 4a31e145217cecc3d421f96eafcd2cfd9c670929 (diff) | |
download | u-boot-cef36755094f0c5463ff34ac89de8d88ef68982b.zip u-boot-cef36755094f0c5463ff34ac89de8d88ef68982b.tar.gz u-boot-cef36755094f0c5463ff34ac89de8d88ef68982b.tar.bz2 |
Merge https://gitlab.denx.de/u-boot/custodians/u-boot-spiWIP/13Jul2023
- Add xtxtech spi-nor chip parts (Bruce Suen)
- Add bcm63xx-hsspi driver fixes (William Zhang)
Diffstat (limited to 'doc')
-rw-r--r-- | doc/device-tree-bindings/spi/brcm,bcm63xx-hsspi.yaml | 134 | ||||
-rw-r--r-- | doc/device-tree-bindings/spi/soft-spi.txt | 12 |
2 files changed, 140 insertions, 6 deletions
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 0000000..6554978 --- /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>; + }; diff --git a/doc/device-tree-bindings/spi/soft-spi.txt b/doc/device-tree-bindings/spi/soft-spi.txt index dfb5066..bdf7e86 100644 --- a/doc/device-tree-bindings/spi/soft-spi.txt +++ b/doc/device-tree-bindings/spi/soft-spi.txt @@ -9,10 +9,10 @@ The soft SPI node requires the following properties: Mandatory properties: compatible: "spi-gpio" cs-gpios: GPIOs to use for SPI chip select (output) -gpio-sck: GPIO to use for SPI clock (output) +sck-gpios: GPIO to use for SPI clock (output) And at least one of: -gpio-mosi: GPIO to use for SPI MOSI line (output) -gpio-miso: GPIO to use for SPI MISO line (input) +mosi-gpios: GPIO to use for SPI MOSI line (output) +miso-gpios: GPIO to use for SPI MISO line (input) Optional propertie: spi-delay-us: Number of microseconds of delay between each CS transition @@ -27,9 +27,9 @@ Example: soft-spi { compatible = "spi-gpio"; cs-gpios = <&gpio 235 0>; /* Y43 */ - gpio-sck = <&gpio 225 0>; /* Y31 */ - gpio-mosi = <&gpio 227 0>; /* Y33 */ - gpio-miso = <&gpio 224 0>; /* Y30 */ + sck-gpios = <&gpio 225 0>; /* Y31 */ + mosi-gpios = <&gpio 227 0>; /* Y33 */ + miso-gpios = <&gpio 224 0>; /* Y30 */ spi-delay-us = <1>; #address-cells = <1>; #size-cells = <0>; |