spi: s3c64xx: Allow controller-data to be optional
authorKrzysztof Kozlowski <krzysztof.kozlowski@canonical.com>
Mon, 24 Jan 2022 08:23:47 +0000 (09:23 +0100)
committerLee Jones <lee.jones@linaro.org>
Mon, 7 Mar 2022 12:55:36 +0000 (12:55 +0000)
The Samsung SoC SPI driver requires to provide controller-data node
for each of SPI peripheral device nodes.  Make this controller-data node
optional, so DTS could be simpler.

Suggested-by: Rob Herring <robh@kernel.org>
Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@canonical.com>
Reviewed-by: Sam Protsenko <semen.protsenko@linaro.org>
Reviewed-by: Andi Shyti <andi@etezian.org>
Reviwed-by: Mark Brown <broonie@kernel.org>
Signed-off-by: Lee Jones <lee.jones@linaro.org>
Link: https://lore.kernel.org/r/20220124082347.32747-5-krzysztof.kozlowski@canonical.com
drivers/spi/spi-s3c64xx.c

index 8755cd8..386550f 100644 (file)
@@ -796,16 +796,14 @@ static struct s3c64xx_spi_csinfo *s3c64xx_get_slave_ctrldata(
                return ERR_PTR(-EINVAL);
        }
 
-       data_np = of_get_child_by_name(slave_np, "controller-data");
-       if (!data_np) {
-               dev_err(&spi->dev, "child node 'controller-data' not found\n");
-               return ERR_PTR(-EINVAL);
-       }
-
        cs = kzalloc(sizeof(*cs), GFP_KERNEL);
-       if (!cs) {
-               of_node_put(data_np);
+       if (!cs)
                return ERR_PTR(-ENOMEM);
+
+       data_np = of_get_child_by_name(slave_np, "controller-data");
+       if (!data_np) {
+               dev_info(&spi->dev, "feedback delay set to default (0)\n");
+               return cs;
        }
 
        of_property_read_u32(data_np, "samsung,spi-feedback-delay", &fb_delay);