From 244b2c5ca8b14627e4a17755e5922221e121c771 Mon Sep 17 00:00:00 2001
From: hc <hc@nodka.com>
Date: Wed, 09 Oct 2024 06:15:07 +0000
Subject: [PATCH] change system file
---
u-boot/drivers/spi/soft_spi.c | 34 +++++++++++++++++++++-------------
1 files changed, 21 insertions(+), 13 deletions(-)
diff --git a/u-boot/drivers/spi/soft_spi.c b/u-boot/drivers/spi/soft_spi.c
index 1690cd7..64a4862 100644
--- a/u-boot/drivers/spi/soft_spi.c
+++ b/u-boot/drivers/spi/soft_spi.c
@@ -201,10 +201,8 @@
static int soft_spi_ofdata_to_platdata(struct udevice *dev)
{
struct soft_spi_platdata *plat = dev->platdata;
- const void *blob = gd->fdt_blob;
- int node = dev_of_offset(dev);
- plat->spi_delay_us = fdtdec_get_int(blob, node, "spi-delay-us", 0);
+ plat->spi_delay_us = dev_read_u32_default(dev, "spi-delay-us", 0);
return 0;
}
@@ -216,24 +214,34 @@
int cs_flags, clk_flags;
int ret;
- cs_flags = (slave->mode & SPI_CS_HIGH) ? 0 : GPIOD_ACTIVE_LOW;
- clk_flags = (slave->mode & SPI_CPOL) ? GPIOD_ACTIVE_LOW : 0;
+ if (slave) {
+ cs_flags = (slave->mode & SPI_CS_HIGH) ? 0 : GPIOD_ACTIVE_LOW;
+ clk_flags = (slave->mode & SPI_CPOL) ? GPIOD_ACTIVE_LOW : 0;
+ } else {
+ cs_flags = GPIOD_ACTIVE_LOW;
+ clk_flags = 0;
+ }
- if (gpio_request_by_name(dev, "cs-gpios", 0, &plat->cs,
- GPIOD_IS_OUT | cs_flags) ||
- gpio_request_by_name(dev, "gpio-sck", 0, &plat->sclk,
- GPIOD_IS_OUT | clk_flags))
+ if (gpio_request_by_name(dev, "cs-gpios", 0, &plat->cs, GPIOD_IS_OUT | cs_flags) ||
+ (gpio_request_by_name(dev, "gpio-sck", 0, &plat->sclk, GPIOD_IS_OUT | clk_flags) &&
+ gpio_request_by_name(dev, "sck-gpios", 0, &plat->sclk, GPIOD_IS_OUT | clk_flags)))
return -EINVAL;
ret = gpio_request_by_name(dev, "gpio-mosi", 0, &plat->mosi,
GPIOD_IS_OUT | GPIOD_IS_OUT_ACTIVE);
- if (ret)
- plat->flags |= SPI_MASTER_NO_TX;
+ if (ret) {
+ if (gpio_request_by_name(dev, "mosi-gpios", 0, &plat->mosi,
+ GPIOD_IS_OUT | GPIOD_IS_OUT_ACTIVE))
+ plat->flags |= SPI_MASTER_NO_TX;
+ }
ret = gpio_request_by_name(dev, "gpio-miso", 0, &plat->miso,
GPIOD_IS_IN);
- if (ret)
- plat->flags |= SPI_MASTER_NO_RX;
+ if (ret) {
+ if (gpio_request_by_name(dev, "miso-gpios", 0, &plat->miso,
+ GPIOD_IS_IN))
+ plat->flags |= SPI_MASTER_NO_RX;
+ }
if ((plat->flags & (SPI_MASTER_NO_RX | SPI_MASTER_NO_TX)) ==
(SPI_MASTER_NO_RX | SPI_MASTER_NO_TX))
--
Gitblit v1.6.2