Нужно сделать драйвер SPI master.
делаю как platform_device, в этом месте все в порядке. Создаю
spi_master в функции probe:
master = spi_alloc_master(&pdev->dev, sizeof(struct spi_gpio_cs));
выставляю его свойства
master->bus_num = pdev->id;
master->num_chipselect = pdata->numcs;
master->transfer_one_message = spi_gpio_cs_transfer_one;
master->mode_bits = (SPI_CPOL | SPI_CPHA | SPI_CS_HIGH);
master->bits_per_word_mask = SPI_BPW_MASK(8);
....
и регистрирую
status = spi_register_master(master);
Появляется
/sys/class/spi_master/spi0, со ссылкой на устройство
device -> ../../../spi_gpio_cs.0
Но субдиректории spi0.0 не появляется. И соответственно /dev/spidev0.0 тоже нет.
Я внимательно сравнил с другими драйверами в /drivers/spi, и как-то я не вижу, чего я не делаю нужного.
код драйвера
https://github.com/vladtcvs/linux/commit/95d1b1a49cae7a31bd4d5daf32ccad233585...