| .. | .. |
|---|
| 1 | +// SPDX-License-Identifier: GPL-2.0-only |
|---|
| 1 | 2 | /* |
|---|
| 2 | 3 | * Copyright (C) 2013 Oskar Andero <oskar.andero@gmail.com> |
|---|
| 3 | 4 | * Copyright (C) 2014 Rose Technology |
|---|
| .. | .. |
|---|
| 26 | 27 | * MCP3553 |
|---|
| 27 | 28 | * |
|---|
| 28 | 29 | * Datasheet can be found here: |
|---|
| 29 | | - * http://ww1.microchip.com/downloads/en/DeviceDoc/21293C.pdf mcp3001 |
|---|
| 30 | | - * http://ww1.microchip.com/downloads/en/DeviceDoc/21294E.pdf mcp3002 |
|---|
| 31 | | - * http://ww1.microchip.com/downloads/en/DeviceDoc/21295d.pdf mcp3004/08 |
|---|
| 30 | + * https://ww1.microchip.com/downloads/en/DeviceDoc/21293C.pdf mcp3001 |
|---|
| 31 | + * https://ww1.microchip.com/downloads/en/DeviceDoc/21294E.pdf mcp3002 |
|---|
| 32 | + * https://ww1.microchip.com/downloads/en/DeviceDoc/21295d.pdf mcp3004/08 |
|---|
| 32 | 33 | * http://ww1.microchip.com/downloads/en/DeviceDoc/21290D.pdf mcp3201 |
|---|
| 33 | 34 | * http://ww1.microchip.com/downloads/en/DeviceDoc/21034D.pdf mcp3202 |
|---|
| 34 | 35 | * http://ww1.microchip.com/downloads/en/DeviceDoc/21298c.pdf mcp3204/08 |
|---|
| 35 | | - * http://ww1.microchip.com/downloads/en/DeviceDoc/21700E.pdf mcp3301 |
|---|
| 36 | + * https://ww1.microchip.com/downloads/en/DeviceDoc/21700E.pdf mcp3301 |
|---|
| 36 | 37 | * http://ww1.microchip.com/downloads/en/DeviceDoc/21950D.pdf mcp3550/1/3 |
|---|
| 37 | | - * |
|---|
| 38 | | - * This program is free software; you can redistribute it and/or modify |
|---|
| 39 | | - * it under the terms of the GNU General Public License version 2 as |
|---|
| 40 | | - * published by the Free Software Foundation. |
|---|
| 41 | 38 | */ |
|---|
| 42 | 39 | |
|---|
| 43 | 40 | #include <linux/err.h> |
|---|
| 44 | 41 | #include <linux/delay.h> |
|---|
| 45 | 42 | #include <linux/spi/spi.h> |
|---|
| 46 | 43 | #include <linux/module.h> |
|---|
| 44 | +#include <linux/mod_devicetable.h> |
|---|
| 47 | 45 | #include <linux/iio/iio.h> |
|---|
| 48 | 46 | #include <linux/regulator/consumer.h> |
|---|
| 49 | 47 | |
|---|
| .. | .. |
|---|
| 167 | 165 | case mcp3550_60: |
|---|
| 168 | 166 | case mcp3551: |
|---|
| 169 | 167 | case mcp3553: { |
|---|
| 170 | | - u32 raw = be32_to_cpup((u32 *)adc->rx_buf); |
|---|
| 168 | + u32 raw = be32_to_cpup((__be32 *)adc->rx_buf); |
|---|
| 171 | 169 | |
|---|
| 172 | 170 | if (!(adc->spi->mode & SPI_CPOL)) |
|---|
| 173 | 171 | raw <<= 1; /* strip Data Ready bit in SPI mode 0,0 */ |
|---|
| .. | .. |
|---|
| 387 | 385 | adc = iio_priv(indio_dev); |
|---|
| 388 | 386 | adc->spi = spi; |
|---|
| 389 | 387 | |
|---|
| 390 | | - indio_dev->dev.parent = &spi->dev; |
|---|
| 391 | | - indio_dev->dev.of_node = spi->dev.of_node; |
|---|
| 392 | 388 | indio_dev->name = spi_get_device_id(spi)->name; |
|---|
| 393 | 389 | indio_dev->modes = INDIO_DIRECT_MODE; |
|---|
| 394 | 390 | indio_dev->info = &mcp320x_info; |
|---|
| .. | .. |
|---|
| 424 | 420 | adc->transfer[1].len++; |
|---|
| 425 | 421 | |
|---|
| 426 | 422 | /* conversions are started by asserting CS pin for 8 usec */ |
|---|
| 427 | | - adc->start_conv_transfer.delay_usecs = 8; |
|---|
| 423 | + adc->start_conv_transfer.delay.value = 8; |
|---|
| 424 | + adc->start_conv_transfer.delay.unit = SPI_DELAY_UNIT_USECS; |
|---|
| 428 | 425 | spi_message_init_with_transfers(&adc->start_conv_msg, |
|---|
| 429 | 426 | &adc->start_conv_transfer, 1); |
|---|
| 430 | 427 | |
|---|
| .. | .. |
|---|
| 473 | 470 | return 0; |
|---|
| 474 | 471 | } |
|---|
| 475 | 472 | |
|---|
| 476 | | -#if defined(CONFIG_OF) |
|---|
| 477 | 473 | static const struct of_device_id mcp320x_dt_ids[] = { |
|---|
| 478 | 474 | /* NOTE: The use of compatibles with no vendor prefix is deprecated. */ |
|---|
| 479 | 475 | { .compatible = "mcp3001" }, |
|---|
| .. | .. |
|---|
| 501 | 497 | { } |
|---|
| 502 | 498 | }; |
|---|
| 503 | 499 | MODULE_DEVICE_TABLE(of, mcp320x_dt_ids); |
|---|
| 504 | | -#endif |
|---|
| 505 | 500 | |
|---|
| 506 | 501 | static const struct spi_device_id mcp320x_id[] = { |
|---|
| 507 | 502 | { "mcp3001", mcp3001 }, |
|---|
| .. | .. |
|---|
| 524 | 519 | static struct spi_driver mcp320x_driver = { |
|---|
| 525 | 520 | .driver = { |
|---|
| 526 | 521 | .name = "mcp320x", |
|---|
| 527 | | - .of_match_table = of_match_ptr(mcp320x_dt_ids), |
|---|
| 522 | + .of_match_table = mcp320x_dt_ids, |
|---|
| 528 | 523 | }, |
|---|
| 529 | 524 | .probe = mcp320x_probe, |
|---|
| 530 | 525 | .remove = mcp320x_remove, |
|---|