Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- static int axonSPI_getSingleFPGARegister(struct axonSPI_device* axonSPI, uint16_t card, uint16_t reg, uint16_t* data)
- {
- int status;
- struct axonSPI_control *ctlData = &axonSPI_ctl[cards[card].bus];
- axonSPI_setSingleFPGARegister(axonSPI, card, reg);
- spi_message_init(&ctlData->msg);
- memset(ctlData->rx_buff, 0, 2);
- ctlData->transfer.tx_buf = NULL;
- ctlData->transfer.rx_buf = ctlData->rx_buff;
- ctlData->transfer.len = 2;
- spi_message_add_tail(&ctlData->transfer, &ctlData->msg);
- gpio_set_value(cards[card].readLatch, 0);
- axonSPI->spi_device->mode = SPI_MODE_1;
- status = spi_setup(axonSPI->spi_device);
- status = spi_sync(axonSPI->spi_device, &ctlData->msg);
- gpio_set_value(cards[card].readLatch, 1);
- printk(KERN_ALERT "SPI Read: Card: %d, Reg: %d, Val: 0x%04X \n", card, reg, ctlData->rx_buff[0]);
- status = copy_to_user(data, &(ctlData->rx_buff[0]), 2);
- if (status < 0)
- {
- printk(KERN_ALERT "Copy to user failed in get single FPGA register\n");
- }
- return status;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement