[PATCH] arm64: dts: rockchip: set num-cs property for spi on px30
Johan Jonker
jbx6244 at gmail.com
Mon Jan 22 08:05:11 PST 2024
Hi,
On 1/19/24 11:16, Heiko Stuebner wrote:
> From: Heiko Stuebner <heiko.stuebner at cherry.de>
>
> The px30 has two spi controllers with two chip-selects each.
> The num-cs property is specified as the total number of chip
> selects a controllers has and is used since 2020 to find uses
> of chipselects outside that range in the Rockchip spi driver.
> Without the property set, the default is 1, so spi devices
> using the second chipselect will not be created.
num-cs is defined as 32 bit:
num-cs:
$ref: /schemas/types.yaml#/definitions/uint32
description:
Total number of chip selects.
===
num-cs is parsed as 16 bit in spi-rockchip.c:
#define ROCKCHIP_SPI_MAX_CS_NUM <https://elixir.bootlin.com/linux/latest/C/ident/ROCKCHIP_SPI_MAX_CS_NUM> 4+ ctlr->max_native_cs = ROCKCHIP_SPI_MAX_CS_NUM; + /* + * rk spi0 has two native cs, spi1..5 one cs only + * if num-cs is missing in the dts, default to 1 + */ + if (of_property_read_u16(np, "num-cs", &ctlr->num_chipselect)) u32 + ctlr->num_chipselect = 1; + ctlr->use_gpio_descriptors = true; === num-cs: minimum: 1 maximum: 4
default: 1
Both the driver as the binding need a little update. Johan
>
> Fixes: eb1262e3cc8b ("spi: spi-rockchip: use num-cs property and ctlr->enable_gpiods")
> Signed-off-by: Heiko Stuebner <heiko.stuebner at cherry.de>
> ---
> arch/arm64/boot/dts/rockchip/px30.dtsi | 2 ++
> 1 file changed, 2 insertions(+)
>
> diff --git a/arch/arm64/boot/dts/rockchip/px30.dtsi b/arch/arm64/boot/dts/rockchip/px30.dtsi
> index 42ce78beb413..20955556b624 100644
> --- a/arch/arm64/boot/dts/rockchip/px30.dtsi
> +++ b/arch/arm64/boot/dts/rockchip/px30.dtsi
> @@ -632,6 +632,7 @@ spi0: spi at ff1d0000 {
> clock-names = "spiclk", "apb_pclk";
> dmas = <&dmac 12>, <&dmac 13>;
> dma-names = "tx", "rx";
> + num-cs = <2>;
> pinctrl-names = "default";
> pinctrl-0 = <&spi0_clk &spi0_csn &spi0_miso &spi0_mosi>;
> #address-cells = <1>;
> @@ -647,6 +648,7 @@ spi1: spi at ff1d8000 {
> clock-names = "spiclk", "apb_pclk";
> dmas = <&dmac 14>, <&dmac 15>;
> dma-names = "tx", "rx";
> + num-cs = <2>;
> pinctrl-names = "default";
> pinctrl-0 = <&spi1_clk &spi1_csn0 &spi1_csn1 &spi1_miso &spi1_mosi>;
> #address-cells = <1>;
More information about the Linux-rockchip
mailing list