Aspeed AST2400, AST2500 and AST2600 JTAG controller driver. Signed-off-by: Oleksandr Shamray <oleksandrs@xxxxxxxxxxxx> Signed-off-by: Jiri Pirko <jiri@xxxxxxxxxx> Signed-off-by: Ernesto Corona <ernesto.corona@xxxxxxxxx> Signed-off-by: Omar Castro <omar.eduardo.castro@xxxxxxxxxxxxxxx> Acked-by: Rob Herring <robh@xxxxxxxxxx> Cc: Jonathan Corbet <corbet@xxxxxxx> Cc: Mauro Carvalho Chehab <mchehab+samsung@xxxxxxxxxx> Cc: Alexandre Belloni <alexandre.belloni@xxxxxxxxxxx> Cc: "Theodore Ts'o" <tytso@xxxxxxx> Cc: Arnd Bergmann <arnd@xxxxxxxx> Cc: Eric Biggers <ebiggers@xxxxxxxxxx> Cc: Mark Rutland <mark.rutland@xxxxxxx> Cc: Joel Stanley <joel@xxxxxxxxx> Cc: Andrew Jeffery <andrew@xxxxxxxx> Cc: Steven Filary <steven.a.filary@xxxxxxxxx> Cc: Vadim Pasternak <vadimp@xxxxxxxxxxxx> Cc: Amithash Prasad <amithash@xxxxxx> Cc: Patrick Williams <patrickw3@xxxxxx> Cc: Luke Chen <luke_chen@xxxxxxxxxxxxxx> Cc: Billy Tsai <billy_tsai@xxxxxxxxxxxxxx> Cc: Rgrs <rgrs@xxxxxxxxxxxxxx> --- v29->v30 Comments pointed by Steven Filary <steven.a.filary@xxxxxxxxx> - Add Suport for 26xx series v28->v29 Comments pointed by Ernesto Corona <ernesto.corona@xxxxxxxxx> - Change documentation to the new dt-bindings yaml format. v27->v28 v26->v27 v25->v26 v24->v25 v23->v24 v22->v23 v21->v22 v20->v21 v19->v20 v18->v19 v17->v18 v16->v17 v15->v16 Comments pointed by Joel Stanley <joel.stan@xxxxxxxxx> - change clocks = <&clk_apb> to proper clocks = <&syscon ASPEED_CLK_APB> - add reset descriptions in bindings file v14->v15 v13->v14 v12->v13 v11->v12 v10->v11 v9->v10 v8->v9 v7->v8 Comments pointed by pointed by Joel Stanley <joel.stan@xxxxxxxxx> - Change compatible string to ast2400 and ast2000 V6->v7 Comments pointed by Tobias Klauser <tklauser@xxxxxxxxxx> - Fix spell "Doccumentation" -> "Documentation" v5->v6 Comments pointed by Tobias Klauser <tklauser@xxxxxxxxxx> - Small nit: s/documentation/Documentation/ v4->v5 V3->v4 Comments pointed by Rob Herring <robh@xxxxxxxxxx> - delete unnecessary "status" and "reg-shift" descriptions in bindings file v2->v3 Comments pointed by Rob Herring <robh@xxxxxxxxxx> - split Aspeed jtag driver and binding to separate patches - delete unnecessary "status" and "reg-shift" descriptions in bindings file --- .../devicetree/bindings/jtag/aspeed-jtag.yaml | 85 +++++++++++++++++++ 1 file changed, 85 insertions(+) create mode 100644 Documentation/devicetree/bindings/jtag/aspeed-jtag.yaml diff --git a/Documentation/devicetree/bindings/jtag/aspeed-jtag.yaml b/Documentation/devicetree/bindings/jtag/aspeed-jtag.yaml new file mode 100644 index 000000000000..1a412e83b81b --- /dev/null +++ b/Documentation/devicetree/bindings/jtag/aspeed-jtag.yaml @@ -0,0 +1,85 @@ +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) +%YAML 1.2 +--- +$id: http://devicetree.org/schemas/jtag/aspeed-jtag.yaml# +$schema: http://devicetree.org/meta-schemas/core.yaml# + +title: Aspeed JTAG driver for ast2400, ast2500 and ast2600 SoC + +description: + Driver adds support of Aspeed 24/25/2600 series SOC JTAG controller. + Driver implements the following jtag ops + freq_get + freq_set + status_get + status_set + xfer + mode_set + bitbang + enable + disable + + It has been tested on Mellanox system with BMC equipped with + Aspeed 2520 SoC for programming CPLD devices. + + It has also been tested on Intel system using Aspeed 25xx SoC + for JTAG communication. + + Tested on Intel system using Aspeed 26xx SoC for JTAG communication. + +maintainers: + - Oleksandr Shamray <oleksandrs@xxxxxxxxxxxx> + - Jiri Pirko <jiri@xxxxxxxxxx> + - Ernesto Corona<ernesto.corona@xxxxxxxxx> + +properties: + compatible: + oneOf: + - items: + - enum: + - aspeed,ast2400-jtag + - aspeed,ast2500-jtag + - aspeed,ast2600-jtag + + + reg: + items: + - description: JTAG Master controller register range + + interrupts: + maxItems: 1 + + clocks: + maxItems: 1 + +required: + - compatible + - reg + - interrupts + - clocks + +examples: + - | + #include <dt-bindings/clock/aspeed-clock.h> + #include <dt-bindings/interrupt-controller/irq.h> + + jtag: jtag@1e6e4000 { + compatible = "aspeed,ast2500-jtag"; + reg = <0x1e6e4000 0x1c>; + clocks = <&syscon ASPEED_CLK_APB>; + resets = <&syscon ASPEED_RESET_JTAG_MASTER>; + interrupts = <43>; + }; + - | + #include <dt-bindings/clock/aspeed-clock.h> + #include <dt-bindings/interrupt-controller/irq.h> + + jtag1: jtag@1e6e4100 { + compatible = "aspeed,ast2600-jtag"; + reg = <0x1e6e4100 0x40>; + clocks = <&syscon ASPEED_CLK_APB1>; + resets = <&syscon ASPEED_RESET_JTAG_MASTER2>; + interrupts = <GIC_SPI 53 IRQ_TYPE_LEVEL_HIGH>; + }; + +... -- 2.25.1