Source
421
421
spi_gpio->pdev = pdev;
422
422
if (pdata)
423
423
spi_gpio->pdata = *pdata;
424
424
425
425
status = spi_gpio_request(&pdev->dev, spi_gpio,
426
426
pdata->num_chipselect, &master_flags);
427
427
if (status)
428
428
return status;
429
429
430
430
master->bits_per_word_mask = SPI_BPW_RANGE_MASK(1, 32);
431
-
master->mode_bits = SPI_3WIRE | SPI_3WIRE_HIZ | SPI_CPHA | SPI_CPOL;
431
+
master->mode_bits = SPI_3WIRE | SPI_3WIRE_HIZ | SPI_CPHA | SPI_CPOL |
432
+
SPI_CS_HIGH;
432
433
master->flags = master_flags;
433
434
master->bus_num = pdev->id;
434
435
/* The master needs to think there is a chipselect even if not connected */
435
436
master->num_chipselect = spi_gpio->has_cs ? pdata->num_chipselect : 1;
436
437
master->setup = spi_gpio_setup;
437
438
master->cleanup = spi_gpio_cleanup;
438
439
#ifdef CONFIG_OF
439
440
master->dev.of_node = pdev->dev.of_node;
440
441
#endif
441
442
448
449
spi_gpio->bitbang.txrx_word[SPI_MODE_1] = spi_gpio_txrx_word_mode1;
449
450
spi_gpio->bitbang.txrx_word[SPI_MODE_2] = spi_gpio_txrx_word_mode2;
450
451
spi_gpio->bitbang.txrx_word[SPI_MODE_3] = spi_gpio_txrx_word_mode3;
451
452
} else {
452
453
spi_gpio->bitbang.txrx_word[SPI_MODE_0] = spi_gpio_spec_txrx_word_mode0;
453
454
spi_gpio->bitbang.txrx_word[SPI_MODE_1] = spi_gpio_spec_txrx_word_mode1;
454
455
spi_gpio->bitbang.txrx_word[SPI_MODE_2] = spi_gpio_spec_txrx_word_mode2;
455
456
spi_gpio->bitbang.txrx_word[SPI_MODE_3] = spi_gpio_spec_txrx_word_mode3;
456
457
}
457
458
spi_gpio->bitbang.setup_transfer = spi_bitbang_setup_transfer;
458
-
spi_gpio->bitbang.flags = SPI_CS_HIGH;
459
459
460
460
status = spi_bitbang_start(&spi_gpio->bitbang);
461
461
if (status)
462
462
spi_master_put(master);
463
463
464
464
return status;
465
465
}
466
466
467
467
static int spi_gpio_remove(struct platform_device *pdev)
468
468
{