From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id A3F4DC61DD3 for ; Mon, 31 Aug 2026 23:33:12 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender:List-Subscribe:List-Help :List-Post:List-Archive:List-Unsubscribe:List-Id:Cc:To:In-Reply-To:References :Message-Id:Content-Transfer-Encoding:Content-Type:MIME-Version:Subject:Date: From:Reply-To:Content-ID:Content-Description:Resent-Date:Resent-From: Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=Oe/+b6soCrWQD2YEO2XBQ9XzBFUniWrh2jlWRQSn7jg=; b=rFGrY6bERKc6eTzHNlHdgssLot urWxj5063jUygnFTKb0xYKYgZNVqBtSH2DuOT8OF1qJaaFBGBvMrGUnCAMcRLBxZ/9amjz9qGmoDY GnvKYvOoOBIEmt6MvOWFfa8AU1PeoGBdbEDqBCs6o63OYsv4x8D4kQIpv5gl1PcF/2P1x5DUqy5R0 DeX0jTofsmCtyo9Rpci6YZXomnEnG+TgIUcb8EvzpRlwUBHWS7rLvudMWSsNWU4ivdw2BwsupbHJR D58E0nZTtRV9VC34nZVcHGVGJ/nM+tg56RI8i0JsymPscb9xhKvC5KSoJXDIbQbCKUuvfbjNBrNnz /uVNXTbw==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.99.1 #2 (Red Hat Linux)) id 1x1BUr-0000000AfKr-3mSQ; Mon, 31 Aug 2026 23:33:01 +0000 Received: from mail-pg1-x536.google.com ([2607:f8b0:4864:20::536]) by bombadil.infradead.org with esmtps (Exim 4.99.1 #2 (Red Hat Linux)) id 1x1BUo-0000000AfJl-2OwG for linux-arm-kernel@lists.infradead.org; Mon, 31 Aug 2026 23:33:00 +0000 Received: by mail-pg1-x536.google.com with SMTP id 41be03b00d2f7-cb20b0a387bso412848a12.0 for ; Mon, 31 Aug 2026 16:32:58 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1788219178; x=1788823978; darn=lists.infradead.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :content-type:mime-version:subject:date:from:from:to:cc:subject:date :message-id:reply-to:content-type; bh=Oe/+b6soCrWQD2YEO2XBQ9XzBFUniWrh2jlWRQSn7jg=; b=VWs4P49XQwycW3rr9e6qefovsKD40VB+AHryhaj8xPCunQjefrsZ5Fi7NIZiWXyNqD syBGWNVSPZfk7PB6d/BTON0yqBiYVlti2+gW4AXucPWztsnkFvewNUtvaQ3IcOFM883c Aj7O9/stwLmSMlo3dyBjR4G5ubww1ySLyc5ZgLQysQA31h/1sevgKtlwTNs9MzXZ8cEY QFQR2j5C31x9ZSlA77gC6hvn9zr5IIn2dxxu6tRrqnO9YOdsEOadUowTrznPpHELtkxN N5kgj1H0CZI7VZlkLzSNOkoFXXpEUn59YuIrhuoa+guvCZo36Ie1mWGs/IcZaNBN737I 7gcQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1788219178; x=1788823978; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :content-type:mime-version:subject:date:from:x-gm-gg :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to :content-type; bh=Oe/+b6soCrWQD2YEO2XBQ9XzBFUniWrh2jlWRQSn7jg=; b=lrbfuKVpcjEtd4YxiYHIaXQkz6EpgNsCwhVvmvaeD25487oeVF0TZ/og2JxYI4vb3Y KUrNY9/W4KUiECZIUUaYjCob5r/i3ujqmoEOW7T3nAL2nL7xjC2gW8j7+kEv6VvuwAWy vb9MoxVv9n3baM5FXacBwMh02qX3amC8tdKLAf+cBh4NK7OWNiO9Du3VT5lEibKzuT0p Vug3+HXuelTHehz0zYMf6tf78tPw5LXrxNp3KpUu+G1TF6eb72i2iJ7TwUruiviJDL+O +SrcMvUvj/kBiazsjfumIHYl61vDmGqdSkHPl+7hqwwdIeoSv21SWbwxuGus/WLe3xD9 aFLQ== X-Forwarded-Encrypted: i=1; AHgh+RpixrNZ1uBAjfdXdqlAiC51AxJ7jLpPFnv+AB1KwPvFOo+QdsOHdKo5C0hztlXxHxRLxBV44HOI1G9xt25K5PDN@lists.infradead.org X-Gm-Message-State: AFuF++m442QncOO5I8wQTkVQzs6duV+Y6fKX0RZzqxzgkBpQA4BBHxHC 3BJPBaxTuQaZoPyK3JuTDPDC5hwU6AJbSF35oPUJBrpzoMZHt2UZHW+s X-Gm-Gg: AR+sD117QGP6garNjQmTvi1wCU0h8r5ZhnT4pKTppf9lMO4/JwhuXW2TFzWEEoyF1D9 c4LSNxvLbxAjZSM++4TwdQBjEsXhtNOAdKBuavnwsqmq6A02OWrfA5sSzYAGD/ew7igIQwjvw2+ FnaSr0YwXokd81M/OUz/Went1nQAptWKpfRTH0EDoJ901u7QHs50JlYKOKNjwTd/hCp2F3QfrmZ h2CCmTLRiOTRS2OKK9C5ExcxVKbIhyKfyAm8WuNt7T2MIWa4wC5xEObqGa0K3wI/KXwbavtoWUK 1044W5SR+r4ECJB18v0keh8paf1MUeu+q3gsGwlhH6dPGCQrUYJbQuwDRvw6WwzUlymOcncbJgA 5GJvzVpBREa3ub2etJYcHV0al0zjBrQg1auiecivKf1nlVMpPiWgDlyMQsoPokA/WVUSr7LTdpx Yh9wd4YnNBhJx2pxH1+l0nLDzp7pRbE+FR+/DAV0PIC7v91A20AakNr3Tj2KZdF9i0XJnEhzo= X-Received: by 2002:a05:6a00:4449:b0:851:c2bd:43d1 with SMTP id d2e1a72fcca58-85628a85b9amr17918783b3a.1.1788219177621; Mon, 31 Aug 2026 16:32:57 -0700 (PDT) Received: from [10.60.78.252] ([2409:40c2:5002:4362:354a:8f21:7ceb:c8a6]) by smtp.gmail.com with ESMTPSA id d2e1a72fcca58-85be5ca747csm154393b3a.5.2026.08.31.16.32.45 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 31 Aug 2026 16:32:56 -0700 (PDT) From: Bhargav Joshi Date: Tue, 01 Sep 2026 05:02:11 +0530 Subject: [PATCH v4 2/2] spi: dt-bindings: ti,davinci-spi: Convert to DT schema MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 7bit Message-Id: <20260901-ti-davinci-spi-v4-2-92e9c0b2e1d4@gmail.com> References: <20260901-ti-davinci-spi-v4-0-92e9c0b2e1d4@gmail.com> In-Reply-To: <20260901-ti-davinci-spi-v4-0-92e9c0b2e1d4@gmail.com> To: Mark Brown , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Bartosz Golaszewski , Nishanth Menon , Santosh Shilimkar Cc: linux-spi@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, goledhruva@gmail.com, m-chawdhry@ti.com, daniel.baluta@gmail.com, simona.toaca@nxp.com, j.bhargav.u@gmail.com X-Mailer: b4 0.14.3 X-Developer-Signature: v=1; a=ed25519-sha256; t=1788219139; l=9793; i=j.bhargav.u@gmail.com; h=from:subject:message-id; bh=AoHlLmUVrv0UCPPJiNi0th1LWyobNOZqM6w5kHqkUGA=; b=oN0aF37xkqWQ77+dtc3pNHFk+Lt7OJhSd5aVl2EXhCB1gPISphfMF7RK5YTESE9gEtwxsKG13 8chIjncM9KaBObhgfSUpcJOaSE1hJFrPqSawPdXcAN+WQA3ibfiyyKw X-Developer-Key: i=j.bhargav.u@gmail.com; a=ed25519; pk=IqNDwUZKECEA+n8wXctFLBbYL9NhFstZNbOznm/nX1k= X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.9.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20260831_163258_635367_6EDBAAA9 X-CRM114-Status: GOOD ( 26.61 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org Convert the TI DaVinci/Keystone SPI controller binding from text format to DT schema. Changes during the conversion: - Create a separate ti,davinci-spi-peripheral-props.yaml schema to properly define the ti,spi-wdelay peripheral property. - Add missing dmas and dma-names properties. - Add constraints to ti,spi-wdelay based on the 6-bit width of the SPIFMTn.WDELAY hardware register field. Reviewed-by: Rob Herring (Arm) Signed-off-by: Bhargav Joshi --- .../devicetree/bindings/spi/spi-davinci.txt | 100 ----------------- .../bindings/spi/spi-peripheral-props.yaml | 1 + .../spi/ti,davinci-spi-peripheral-props.yaml | 25 +++++ .../devicetree/bindings/spi/ti,davinci-spi.yaml | 124 +++++++++++++++++++++ 4 files changed, 150 insertions(+), 100 deletions(-) diff --git a/Documentation/devicetree/bindings/spi/spi-davinci.txt b/Documentation/devicetree/bindings/spi/spi-davinci.txt deleted file mode 100644 index f012888656ec..000000000000 --- a/Documentation/devicetree/bindings/spi/spi-davinci.txt +++ /dev/null @@ -1,100 +0,0 @@ -Davinci SPI controller device bindings - -Links on DM: -Keystone 2 - https://www.ti.com/lit/ug/sprugp2a/sprugp2a.pdf -dm644x - https://www.ti.com/lit/ug/sprue32a/sprue32a.pdf -OMAP-L138/da830 - http://www.ti.com/lit/ug/spruh77a/spruh77a.pdf - -Required properties: -- #address-cells: number of cells required to define a chip select - address on the SPI bus. Should be set to 1. -- #size-cells: should be zero. -- compatible: - - "ti,dm6441-spi" for SPI used similar to that on DM644x SoC family - - "ti,da830-spi" for SPI used similar to that on DA8xx SoC family - - "ti,keystone-spi" for SPI used similar to that on Keystone2 SoC - family -- reg: Offset and length of SPI controller register space -- num-cs: Number of chip selects. This includes internal as well as - GPIO chip selects. -- ti,davinci-spi-intr-line: interrupt line used to connect the SPI - IP to the interrupt controller within the SoC. Possible values - are 0 and 1. Manual says one of the two possible interrupt - lines can be tied to the interrupt controller. Set this - based on a specific SoC configuration. -- interrupts: interrupt number mapped to CPU. -- clocks: spi clk phandle - For 66AK2G this property should be set per binding, - Documentation/devicetree/bindings/clock/ti,sci-clk.yaml - -SoC-specific Required Properties: - -The following are mandatory properties for Keystone 2 66AK2G SoCs only: - -- power-domains: Should contain a phandle to a PM domain provider node - and an args specifier containing the SPI device id - value. This property is as per the binding, - -Optional: -- cs-gpios: gpio chip selects - For example to have 3 internal CS and 2 GPIO CS, user could define - cs-gpios = <0>, <0>, <0>, <&gpio1 30 0>, <&gpio1 31 0>; - where first three are internal CS and last two are GPIO CS. - -Optional properties for slave devices: -SPI slave nodes can contain the following properties. -Not all SPI Peripherals from Texas Instruments support this. -Please check SPI peripheral documentation for a device before using these. - -- ti,spi-wdelay : delay between transmission of words - (SPIFMTn.WDELAY, SPIDAT1.WDEL) must be specified in number of SPI module - clock periods. - - delay = WDELAY * SPI_module_clock_period + 2 * SPI_module_clock_period - -Below is timing diagram which shows functional meaning of -"ti,spi-wdelay" parameter. - - +-+ +-+ +-+ +-+ +-+ +-+ +-+ +-+ -SPI_CLK | | | | | | | | | | | | | | | | - +----------+ +-+ +-+ +-+ +-+ +---------------------------+ +-+ +-+ +- - -SPI_SOMI/SIMO+-----------------+ +----------- - +----------+ word1 +---------------------------+word2 - +-----------------+ +----------- - WDELAY - <--------------------------> - -Example of a NOR flash slave device (n25q032) connected to DaVinci -SPI controller device over the SPI bus. - -spi0:spi@20bf0000 { - #address-cells = <1>; - #size-cells = <0>; - compatible = "ti,dm6446-spi"; - reg = <0x20BF0000 0x1000>; - num-cs = <4>; - ti,davinci-spi-intr-line = <0>; - interrupts = <338>; - clocks = <&clkspi>; - - flash: flash@0 { - #address-cells = <1>; - #size-cells = <1>; - compatible = "st,m25p32"; - spi-max-frequency = <25000000>; - reg = <0>; - ti,spi-wdelay = <8>; - - partition@0 { - label = "u-boot-spl"; - reg = <0x0 0x80000>; - read-only; - }; - - partition@1 { - label = "test"; - reg = <0x80000 0x380000>; - }; - }; -}; diff --git a/Documentation/devicetree/bindings/spi/spi-peripheral-props.yaml b/Documentation/devicetree/bindings/spi/spi-peripheral-props.yaml index 880a9f624566..cb5d608998e1 100644 --- a/Documentation/devicetree/bindings/spi/spi-peripheral-props.yaml +++ b/Documentation/devicetree/bindings/spi/spi-peripheral-props.yaml @@ -155,5 +155,6 @@ allOf: - $ref: fsl,dspi-peripheral-props.yaml# - $ref: samsung,spi-peripheral-props.yaml# - $ref: nvidia,tegra210-quad-peripheral-props.yaml# + - $ref: ti,davinci-spi-peripheral-props.yaml# additionalProperties: true diff --git a/Documentation/devicetree/bindings/spi/ti,davinci-spi-peripheral-props.yaml b/Documentation/devicetree/bindings/spi/ti,davinci-spi-peripheral-props.yaml new file mode 100644 index 000000000000..1060f176c6cb --- /dev/null +++ b/Documentation/devicetree/bindings/spi/ti,davinci-spi-peripheral-props.yaml @@ -0,0 +1,25 @@ +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) +%YAML 1.2 +--- +$id: http://devicetree.org/schemas/spi/ti,davinci-spi-peripheral-props.yaml# +$schema: http://devicetree.org/meta-schemas/core.yaml# + +title: TI DaVinci/Keystone SPI Peripheral Properties + +maintainers: + - Bartosz Golaszewski + +description: + Peripheral-specific properties for SPI devices attached to a TI + DaVinci/Keystone SPI controller. + +properties: + ti,spi-wdelay: + $ref: /schemas/types.yaml#/definitions/uint32 + minimum: 0 + maximum: 63 + description: + delay between transmission of words (SPIFMTn.WDELAY, SPIDAT1.WDEL) + must be specified in number of SPI module clock periods. + +additionalProperties: true diff --git a/Documentation/devicetree/bindings/spi/ti,davinci-spi.yaml b/Documentation/devicetree/bindings/spi/ti,davinci-spi.yaml new file mode 100644 index 000000000000..672d03d2492b --- /dev/null +++ b/Documentation/devicetree/bindings/spi/ti,davinci-spi.yaml @@ -0,0 +1,124 @@ +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) +%YAML 1.2 +--- +$id: http://devicetree.org/schemas/spi/ti,davinci-spi.yaml# +$schema: http://devicetree.org/meta-schemas/core.yaml# + +title: TI DaVinci/Keystone SPI Controller + +maintainers: + - Bartosz Golaszewski + +properties: + compatible: + oneOf: + - enum: + - ti,da830-spi + - ti,keystone-spi + - ti,dm6441-spi + - items: + - const: ti,keystone-spi + - const: ti,dm6441-spi + + reg: + maxItems: 1 + + interrupts: + maxItems: 1 + + clocks: + maxItems: 1 + + power-domains: + maxItems: 1 + description: + Should contain a phandle to a PM domain provider node + and an args specifier containing the SPI device id + value. + + num-cs: + minimum: 1 + default: 1 + description: + Number of chip selects supported by the controller. This + includes both internal and GPIO chip selects. + + ti,davinci-spi-intr-line: + $ref: /schemas/types.yaml#/definitions/uint32 + enum: [0, 1] + description: + Interrupt line used to connect the SPI IP to the interrupt + controller within the SoC. The SPI peripheral can route its + interrupt output to one of two lines (INT0 or INT1). Set + this based on the SoC-specific wiring to the interrupt + controller. + + dmas: + items: + - description: RX DMA channel + - description: TX DMA channel + + dma-names: + items: + - const: rx + - const: tx + + "#address-cells": + const: 1 + +required: + - compatible + - reg + - interrupts + - clocks + - ti,davinci-spi-intr-line + - num-cs + - "#address-cells" + - "#size-cells" + +allOf: + - $ref: spi-controller.yaml# + - if: + properties: + compatible: + const: ti,keystone-spi + then: + required: + - power-domains + +unevaluatedProperties: false + +examples: + - | + spi@20bf0000 { + compatible = "ti,keystone-spi", "ti,dm6441-spi"; + reg = <0x20bf0000 0x1000>; + num-cs = <4>; + ti,davinci-spi-intr-line = <0>; + interrupts = <338>; + clocks = <&clkspi>; + #address-cells = <1>; + #size-cells = <0>; + + flash@0 { + compatible = "jedec,spi-nor"; + spi-max-frequency = <25000000>; + reg = <0>; + ti,spi-wdelay = <8>; + }; + }; + + - | + spi@41000 { + compatible = "ti,da830-spi"; + reg = <0x41000 0x1000>; + num-cs = <6>; + ti,davinci-spi-intr-line = <1>; + interrupts = <20>; + dmas = <&edma0 14 0>, <&edma0 15 0>; + dma-names = "rx", "tx"; + clocks = <&psc0 4>; + power-domains = <&psc0 4>; + #address-cells = <1>; + #size-cells = <0>; + }; -- 2.55.0