- pr_info("%s: SPI device successfully registered at bus %s as device %s with %d bits/word\n", DRVNAME,
- spi[i]->dev.bus_id, spi[i]->modalias, spi[i]->bits_per_word);
- }
- #else
- i=0;
- while ((modalias_param[0]!='\0') && (i<SPI_DEV_MAX)) {
- struct spi_device *proxy; /* just need to check spi device result and add additional settings */
- struct spi_board_info chip; /* parport SPI board description placeholder*/
-
- modalias_param=strnarr(chip.modalias, modalias_param, " ,", sizeof(chip.modalias));
- if (modalias_param==NULL) {
- pr_err("%s: %d given modalias name is too long! See only that '%s'!\n", DRVNAME, i, chip.modalias);
- return -EINVAL;
- }
-
- /*
- * The modalias name MUST match the device_driver name
- * for the bus glue code to match and subsequently bind them.
- */
- chip.max_speed_hz = SPI_PARPORT_MAX_SPEED;
- chip.chip_select = i;
- chip.mode = spi_mode[i];
- chip.irq = pp->irq;
- chip.controller_data = pp; /* enable access to primary controller data */
- chip.platform_data = NULL; /* data area of SPI protocol driver */
- /* chip.bus_num = master->bus_num; // not needed for spi_new_device */
- i++; /* found new SPI protocol driver */
-
- if (spi_mode_cnt < i) {
- pr_warning("%s: No spi mode parameter given for device %d with driver '%s'. "
- "Will use default setting: %d\n",
- DRVNAME, i, chip.modalias, chip.mode);
- }
- pr_info("%s: Will load protocol driver: '%s' on CS%d with mode 0x%02x!\n",
- DRVNAME, chip.modalias, chip.chip_select, chip.mode);
-
- /*
- * Register spi device from board info settings.
- * Note that this will also call the probe inside the SPI protocall driver
- */
- proxy = spi_new_device(pp->bitbang.master, &chip);
- if (!proxy) {
- pr_err("%s: spi_new_device failed!\n", DRVNAME);
- return -ENODEV;
- }
- pr_info("%s: SPI device successfully registered at bus %s as device %s with %d bits/word\n", DRVNAME,
- proxy->dev.bus_id, chip.modalias, proxy->bits_per_word);
- }
- if (modalias_param[0]!='\0'){
- pr_warning("%s: Found more modalias parameters of SPI devices than allowed (max: %d)!\n",
- DRVNAME, SPI_DEV_MAX);
+ if (0 <= spi[i]->irq) {
+ pr_info("%s: SPI device successfully registered at bus %s as device %s with mode 0x%x,"
+ " %d bits/word, irq %d\n", DRVNAME, spi[i]->dev.bus_id, spi[i]->modalias,
+ spi[i]->mode, spi[i]->bits_per_word, spi[i]->irq);
+ } else {
+ pr_info("%s: SPI device successfully registered at bus %s as device %s with mode 0x%x,"
+ " %d bits/word, no irq\n", DRVNAME, spi[i]->dev.bus_id, spi[i]->modalias,
+ spi[i]->mode, spi[i]->bits_per_word);
+ }