| .. | .. |
|---|
| 201 | 201 | static int soft_spi_ofdata_to_platdata(struct udevice *dev) |
|---|
| 202 | 202 | { |
|---|
| 203 | 203 | struct soft_spi_platdata *plat = dev->platdata; |
|---|
| 204 | | - const void *blob = gd->fdt_blob; |
|---|
| 205 | | - int node = dev_of_offset(dev); |
|---|
| 206 | 204 | |
|---|
| 207 | | - plat->spi_delay_us = fdtdec_get_int(blob, node, "spi-delay-us", 0); |
|---|
| 205 | + plat->spi_delay_us = dev_read_u32_default(dev, "spi-delay-us", 0); |
|---|
| 208 | 206 | |
|---|
| 209 | 207 | return 0; |
|---|
| 210 | 208 | } |
|---|
| .. | .. |
|---|
| 216 | 214 | int cs_flags, clk_flags; |
|---|
| 217 | 215 | int ret; |
|---|
| 218 | 216 | |
|---|
| 219 | | - cs_flags = (slave->mode & SPI_CS_HIGH) ? 0 : GPIOD_ACTIVE_LOW; |
|---|
| 220 | | - clk_flags = (slave->mode & SPI_CPOL) ? GPIOD_ACTIVE_LOW : 0; |
|---|
| 217 | + if (slave) { |
|---|
| 218 | + cs_flags = (slave->mode & SPI_CS_HIGH) ? 0 : GPIOD_ACTIVE_LOW; |
|---|
| 219 | + clk_flags = (slave->mode & SPI_CPOL) ? GPIOD_ACTIVE_LOW : 0; |
|---|
| 220 | + } else { |
|---|
| 221 | + cs_flags = GPIOD_ACTIVE_LOW; |
|---|
| 222 | + clk_flags = 0; |
|---|
| 223 | + } |
|---|
| 221 | 224 | |
|---|
| 222 | | - if (gpio_request_by_name(dev, "cs-gpios", 0, &plat->cs, |
|---|
| 223 | | - GPIOD_IS_OUT | cs_flags) || |
|---|
| 224 | | - gpio_request_by_name(dev, "gpio-sck", 0, &plat->sclk, |
|---|
| 225 | | - GPIOD_IS_OUT | clk_flags)) |
|---|
| 225 | + if (gpio_request_by_name(dev, "cs-gpios", 0, &plat->cs, GPIOD_IS_OUT | cs_flags) || |
|---|
| 226 | + (gpio_request_by_name(dev, "gpio-sck", 0, &plat->sclk, GPIOD_IS_OUT | clk_flags) && |
|---|
| 227 | + gpio_request_by_name(dev, "sck-gpios", 0, &plat->sclk, GPIOD_IS_OUT | clk_flags))) |
|---|
| 226 | 228 | return -EINVAL; |
|---|
| 227 | 229 | |
|---|
| 228 | 230 | ret = gpio_request_by_name(dev, "gpio-mosi", 0, &plat->mosi, |
|---|
| 229 | 231 | GPIOD_IS_OUT | GPIOD_IS_OUT_ACTIVE); |
|---|
| 230 | | - if (ret) |
|---|
| 231 | | - plat->flags |= SPI_MASTER_NO_TX; |
|---|
| 232 | + if (ret) { |
|---|
| 233 | + if (gpio_request_by_name(dev, "mosi-gpios", 0, &plat->mosi, |
|---|
| 234 | + GPIOD_IS_OUT | GPIOD_IS_OUT_ACTIVE)) |
|---|
| 235 | + plat->flags |= SPI_MASTER_NO_TX; |
|---|
| 236 | + } |
|---|
| 232 | 237 | |
|---|
| 233 | 238 | ret = gpio_request_by_name(dev, "gpio-miso", 0, &plat->miso, |
|---|
| 234 | 239 | GPIOD_IS_IN); |
|---|
| 235 | | - if (ret) |
|---|
| 236 | | - plat->flags |= SPI_MASTER_NO_RX; |
|---|
| 240 | + if (ret) { |
|---|
| 241 | + if (gpio_request_by_name(dev, "miso-gpios", 0, &plat->miso, |
|---|
| 242 | + GPIOD_IS_IN)) |
|---|
| 243 | + plat->flags |= SPI_MASTER_NO_RX; |
|---|
| 244 | + } |
|---|
| 237 | 245 | |
|---|
| 238 | 246 | if ((plat->flags & (SPI_MASTER_NO_RX | SPI_MASTER_NO_TX)) == |
|---|
| 239 | 247 | (SPI_MASTER_NO_RX | SPI_MASTER_NO_TX)) |
|---|