diff options
Diffstat (limited to 'include/linux/iio')
| -rw-r--r-- | include/linux/iio/buffer.h | 3 | ||||
| -rw-r--r-- | include/linux/iio/events.h | 4 | ||||
| -rw-r--r-- | include/linux/iio/iio.h | 115 | ||||
| -rw-r--r-- | include/linux/iio/types.h | 1 |
4 files changed, 11 insertions, 112 deletions
diff --git a/include/linux/iio/buffer.h b/include/linux/iio/buffer.h index 15607b45221a..519392763393 100644 --- a/include/linux/iio/buffer.h +++ b/include/linux/iio/buffer.h | |||
| @@ -21,6 +21,8 @@ struct iio_buffer; | |||
| 21 | * struct iio_buffer_access_funcs - access functions for buffers. | 21 | * struct iio_buffer_access_funcs - access functions for buffers. |
| 22 | * @store_to: actually store stuff to the buffer | 22 | * @store_to: actually store stuff to the buffer |
| 23 | * @read_first_n: try to get a specified number of bytes (must exist) | 23 | * @read_first_n: try to get a specified number of bytes (must exist) |
| 24 | * @data_available: indicates whether data for reading from the buffer is | ||
| 25 | * available. | ||
| 24 | * @request_update: if a parameter change has been marked, update underlying | 26 | * @request_update: if a parameter change has been marked, update underlying |
| 25 | * storage. | 27 | * storage. |
| 26 | * @get_bytes_per_datum:get current bytes per datum | 28 | * @get_bytes_per_datum:get current bytes per datum |
| @@ -43,6 +45,7 @@ struct iio_buffer_access_funcs { | |||
| 43 | int (*read_first_n)(struct iio_buffer *buffer, | 45 | int (*read_first_n)(struct iio_buffer *buffer, |
| 44 | size_t n, | 46 | size_t n, |
| 45 | char __user *buf); | 47 | char __user *buf); |
| 48 | bool (*data_available)(struct iio_buffer *buffer); | ||
| 46 | 49 | ||
| 47 | int (*request_update)(struct iio_buffer *buffer); | 50 | int (*request_update)(struct iio_buffer *buffer); |
| 48 | 51 | ||
diff --git a/include/linux/iio/events.h b/include/linux/iio/events.h index 5dab2c41031f..8bbd7bc1043d 100644 --- a/include/linux/iio/events.h +++ b/include/linux/iio/events.h | |||
| @@ -46,10 +46,6 @@ struct iio_event_data { | |||
| 46 | ((u16)chan)) | 46 | ((u16)chan)) |
| 47 | 47 | ||
| 48 | 48 | ||
| 49 | #define IIO_EV_DIR_MAX 4 | ||
| 50 | #define IIO_EV_BIT(type, direction) \ | ||
| 51 | (1 << (type*IIO_EV_DIR_MAX + direction)) | ||
| 52 | |||
| 53 | /** | 49 | /** |
| 54 | * IIO_MOD_EVENT_CODE() - create event identifier for modified channels | 50 | * IIO_MOD_EVENT_CODE() - create event identifier for modified channels |
| 55 | * @chan_type: Type of the channel. Should be one of enum iio_chan_type. | 51 | * @chan_type: Type of the channel. Should be one of enum iio_chan_type. |
diff --git a/include/linux/iio/iio.h b/include/linux/iio/iio.h index 256a90a1bea6..75a8a20c8179 100644 --- a/include/linux/iio/iio.h +++ b/include/linux/iio/iio.h | |||
| @@ -185,7 +185,6 @@ struct iio_event_spec { | |||
| 185 | * by all channels of the same direction. | 185 | * by all channels of the same direction. |
| 186 | * @info_mask_shared_by_all: What information is to be exported that is shared | 186 | * @info_mask_shared_by_all: What information is to be exported that is shared |
| 187 | * by all channels. | 187 | * by all channels. |
| 188 | * @event_mask: What events can this channel produce. | ||
| 189 | * @event_spec: Array of events which should be registered for this | 188 | * @event_spec: Array of events which should be registered for this |
| 190 | * channel. | 189 | * channel. |
| 191 | * @num_event_specs: Size of the event_spec array. | 190 | * @num_event_specs: Size of the event_spec array. |
| @@ -226,7 +225,6 @@ struct iio_chan_spec { | |||
| 226 | long info_mask_shared_by_type; | 225 | long info_mask_shared_by_type; |
| 227 | long info_mask_shared_by_dir; | 226 | long info_mask_shared_by_dir; |
| 228 | long info_mask_shared_by_all; | 227 | long info_mask_shared_by_all; |
| 229 | long event_mask; | ||
| 230 | const struct iio_event_spec *event_spec; | 228 | const struct iio_event_spec *event_spec; |
| 231 | unsigned int num_event_specs; | 229 | unsigned int num_event_specs; |
| 232 | const struct iio_chan_spec_ext_info *ext_info; | 230 | const struct iio_chan_spec_ext_info *ext_info; |
| @@ -307,16 +305,8 @@ struct iio_dev; | |||
| 307 | * returns IIO_VAL_INT_PLUS_MICRO. | 305 | * returns IIO_VAL_INT_PLUS_MICRO. |
| 308 | * @read_event_config: find out if the event is enabled. | 306 | * @read_event_config: find out if the event is enabled. |
| 309 | * @write_event_config: set if the event is enabled. | 307 | * @write_event_config: set if the event is enabled. |
| 310 | * @read_event_value: read a value associated with the event. Meaning | 308 | * @read_event_value: read a configuration value associated with the event. |
| 311 | * is event dependant. event_code specifies which event. | 309 | * @write_event_value: write a configuration value for the event. |
| 312 | * @write_event_value: write the value associated with the event. | ||
| 313 | * Meaning is event dependent. | ||
| 314 | * @read_event_config_new: find out if the event is enabled. New style interface. | ||
| 315 | * @write_event_config_new: set if the event is enabled. New style interface. | ||
| 316 | * @read_event_value_new: read a configuration value associated with the event. | ||
| 317 | * New style interface. | ||
| 318 | * @write_event_value_new: write a configuration value for the event. New style | ||
| 319 | * interface. | ||
| 320 | * @validate_trigger: function to validate the trigger when the | 310 | * @validate_trigger: function to validate the trigger when the |
| 321 | * current trigger gets changed. | 311 | * current trigger gets changed. |
| 322 | * @update_scan_mode: function to configure device and scan buffer when | 312 | * @update_scan_mode: function to configure device and scan buffer when |
| @@ -345,37 +335,23 @@ struct iio_info { | |||
| 345 | long mask); | 335 | long mask); |
| 346 | 336 | ||
| 347 | int (*read_event_config)(struct iio_dev *indio_dev, | 337 | int (*read_event_config)(struct iio_dev *indio_dev, |
| 348 | u64 event_code); | ||
| 349 | |||
| 350 | int (*write_event_config)(struct iio_dev *indio_dev, | ||
| 351 | u64 event_code, | ||
| 352 | int state); | ||
| 353 | |||
| 354 | int (*read_event_value)(struct iio_dev *indio_dev, | ||
| 355 | u64 event_code, | ||
| 356 | int *val); | ||
| 357 | int (*write_event_value)(struct iio_dev *indio_dev, | ||
| 358 | u64 event_code, | ||
| 359 | int val); | ||
| 360 | |||
| 361 | int (*read_event_config_new)(struct iio_dev *indio_dev, | ||
| 362 | const struct iio_chan_spec *chan, | 338 | const struct iio_chan_spec *chan, |
| 363 | enum iio_event_type type, | 339 | enum iio_event_type type, |
| 364 | enum iio_event_direction dir); | 340 | enum iio_event_direction dir); |
| 365 | 341 | ||
| 366 | int (*write_event_config_new)(struct iio_dev *indio_dev, | 342 | int (*write_event_config)(struct iio_dev *indio_dev, |
| 367 | const struct iio_chan_spec *chan, | 343 | const struct iio_chan_spec *chan, |
| 368 | enum iio_event_type type, | 344 | enum iio_event_type type, |
| 369 | enum iio_event_direction dir, | 345 | enum iio_event_direction dir, |
| 370 | int state); | 346 | int state); |
| 371 | 347 | ||
| 372 | int (*read_event_value_new)(struct iio_dev *indio_dev, | 348 | int (*read_event_value)(struct iio_dev *indio_dev, |
| 373 | const struct iio_chan_spec *chan, | 349 | const struct iio_chan_spec *chan, |
| 374 | enum iio_event_type type, | 350 | enum iio_event_type type, |
| 375 | enum iio_event_direction dir, | 351 | enum iio_event_direction dir, |
| 376 | enum iio_event_info info, int *val, int *val2); | 352 | enum iio_event_info info, int *val, int *val2); |
| 377 | 353 | ||
| 378 | int (*write_event_value_new)(struct iio_dev *indio_dev, | 354 | int (*write_event_value)(struct iio_dev *indio_dev, |
| 379 | const struct iio_chan_spec *chan, | 355 | const struct iio_chan_spec *chan, |
| 380 | enum iio_event_type type, | 356 | enum iio_event_type type, |
| 381 | enum iio_event_direction dir, | 357 | enum iio_event_direction dir, |
| @@ -490,32 +466,12 @@ struct iio_dev { | |||
| 490 | #endif | 466 | #endif |
| 491 | }; | 467 | }; |
| 492 | 468 | ||
| 493 | /** | ||
| 494 | * iio_find_channel_from_si() - get channel from its scan index | ||
| 495 | * @indio_dev: device | ||
| 496 | * @si: scan index to match | ||
| 497 | */ | ||
| 498 | const struct iio_chan_spec | 469 | const struct iio_chan_spec |
| 499 | *iio_find_channel_from_si(struct iio_dev *indio_dev, int si); | 470 | *iio_find_channel_from_si(struct iio_dev *indio_dev, int si); |
| 500 | |||
| 501 | /** | ||
| 502 | * iio_device_register() - register a device with the IIO subsystem | ||
| 503 | * @indio_dev: Device structure filled by the device driver | ||
| 504 | **/ | ||
| 505 | int iio_device_register(struct iio_dev *indio_dev); | 471 | int iio_device_register(struct iio_dev *indio_dev); |
| 506 | |||
| 507 | /** | ||
| 508 | * iio_device_unregister() - unregister a device from the IIO subsystem | ||
| 509 | * @indio_dev: Device structure representing the device. | ||
| 510 | **/ | ||
| 511 | void iio_device_unregister(struct iio_dev *indio_dev); | 472 | void iio_device_unregister(struct iio_dev *indio_dev); |
| 512 | 473 | int devm_iio_device_register(struct device *dev, struct iio_dev *indio_dev); | |
| 513 | /** | 474 | void devm_iio_device_unregister(struct device *dev, struct iio_dev *indio_dev); |
| 514 | * iio_push_event() - try to add event to the list for userspace reading | ||
| 515 | * @indio_dev: IIO device structure | ||
| 516 | * @ev_code: What event | ||
| 517 | * @timestamp: When the event occurred | ||
| 518 | **/ | ||
| 519 | int iio_push_event(struct iio_dev *indio_dev, u64 ev_code, s64 timestamp); | 475 | int iio_push_event(struct iio_dev *indio_dev, u64 ev_code, s64 timestamp); |
| 520 | 476 | ||
| 521 | extern struct bus_type iio_bus_type; | 477 | extern struct bus_type iio_bus_type; |
| @@ -579,10 +535,6 @@ static inline void *iio_device_get_drvdata(struct iio_dev *indio_dev) | |||
| 579 | 535 | ||
| 580 | /* Can we make this smaller? */ | 536 | /* Can we make this smaller? */ |
| 581 | #define IIO_ALIGN L1_CACHE_BYTES | 537 | #define IIO_ALIGN L1_CACHE_BYTES |
| 582 | /** | ||
| 583 | * iio_device_alloc() - allocate an iio_dev from a driver | ||
| 584 | * @sizeof_priv: Space to allocate for private structure. | ||
| 585 | **/ | ||
| 586 | struct iio_dev *iio_device_alloc(int sizeof_priv); | 538 | struct iio_dev *iio_device_alloc(int sizeof_priv); |
| 587 | 539 | ||
| 588 | static inline void *iio_priv(const struct iio_dev *indio_dev) | 540 | static inline void *iio_priv(const struct iio_dev *indio_dev) |
| @@ -596,64 +548,11 @@ static inline struct iio_dev *iio_priv_to_dev(void *priv) | |||
| 596 | ALIGN(sizeof(struct iio_dev), IIO_ALIGN)); | 548 | ALIGN(sizeof(struct iio_dev), IIO_ALIGN)); |
| 597 | } | 549 | } |
| 598 | 550 | ||
| 599 | /** | ||
| 600 | * iio_device_free() - free an iio_dev from a driver | ||
| 601 | * @indio_dev: the iio_dev associated with the device | ||
| 602 | **/ | ||
| 603 | void iio_device_free(struct iio_dev *indio_dev); | 551 | void iio_device_free(struct iio_dev *indio_dev); |
| 604 | |||
| 605 | /** | ||
| 606 | * devm_iio_device_alloc - Resource-managed iio_device_alloc() | ||
| 607 | * @dev: Device to allocate iio_dev for | ||
| 608 | * @sizeof_priv: Space to allocate for private structure. | ||
| 609 | * | ||
| 610 | * Managed iio_device_alloc. iio_dev allocated with this function is | ||
| 611 | * automatically freed on driver detach. | ||
| 612 | * | ||
| 613 | * If an iio_dev allocated with this function needs to be freed separately, | ||
| 614 | * devm_iio_device_free() must be used. | ||
| 615 | * | ||
| 616 | * RETURNS: | ||
| 617 | * Pointer to allocated iio_dev on success, NULL on failure. | ||
| 618 | */ | ||
| 619 | struct iio_dev *devm_iio_device_alloc(struct device *dev, int sizeof_priv); | 552 | struct iio_dev *devm_iio_device_alloc(struct device *dev, int sizeof_priv); |
| 620 | |||
| 621 | /** | ||
| 622 | * devm_iio_device_free - Resource-managed iio_device_free() | ||
| 623 | * @dev: Device this iio_dev belongs to | ||
| 624 | * @indio_dev: the iio_dev associated with the device | ||
| 625 | * | ||
| 626 | * Free iio_dev allocated with devm_iio_device_alloc(). | ||
| 627 | */ | ||
| 628 | void devm_iio_device_free(struct device *dev, struct iio_dev *indio_dev); | 553 | void devm_iio_device_free(struct device *dev, struct iio_dev *indio_dev); |
| 629 | |||
| 630 | /** | ||
| 631 | * devm_iio_trigger_alloc - Resource-managed iio_trigger_alloc() | ||
| 632 | * @dev: Device to allocate iio_trigger for | ||
| 633 | * @fmt: trigger name format. If it includes format | ||
| 634 | * specifiers, the additional arguments following | ||
| 635 | * format are formatted and inserted in the resulting | ||
| 636 | * string replacing their respective specifiers. | ||
| 637 | * | ||
| 638 | * Managed iio_trigger_alloc. iio_trigger allocated with this function is | ||
| 639 | * automatically freed on driver detach. | ||
| 640 | * | ||
| 641 | * If an iio_trigger allocated with this function needs to be freed separately, | ||
| 642 | * devm_iio_trigger_free() must be used. | ||
| 643 | * | ||
| 644 | * RETURNS: | ||
| 645 | * Pointer to allocated iio_trigger on success, NULL on failure. | ||
| 646 | */ | ||
| 647 | struct iio_trigger *devm_iio_trigger_alloc(struct device *dev, | 554 | struct iio_trigger *devm_iio_trigger_alloc(struct device *dev, |
| 648 | const char *fmt, ...); | 555 | const char *fmt, ...); |
| 649 | |||
| 650 | /** | ||
| 651 | * devm_iio_trigger_free - Resource-managed iio_trigger_free() | ||
| 652 | * @dev: Device this iio_dev belongs to | ||
| 653 | * @iio_trig: the iio_trigger associated with the device | ||
| 654 | * | ||
| 655 | * Free iio_trigger allocated with devm_iio_trigger_alloc(). | ||
| 656 | */ | ||
| 657 | void devm_iio_trigger_free(struct device *dev, struct iio_trigger *iio_trig); | 556 | void devm_iio_trigger_free(struct device *dev, struct iio_trigger *iio_trig); |
| 658 | 557 | ||
| 659 | /** | 558 | /** |
diff --git a/include/linux/iio/types.h b/include/linux/iio/types.h index 4ac928ee31c5..084d882fe01b 100644 --- a/include/linux/iio/types.h +++ b/include/linux/iio/types.h | |||
| @@ -29,6 +29,7 @@ enum iio_chan_type { | |||
| 29 | IIO_ALTVOLTAGE, | 29 | IIO_ALTVOLTAGE, |
| 30 | IIO_CCT, | 30 | IIO_CCT, |
| 31 | IIO_PRESSURE, | 31 | IIO_PRESSURE, |
| 32 | IIO_HUMIDITYRELATIVE, | ||
| 32 | }; | 33 | }; |
| 33 | 34 | ||
| 34 | enum iio_modifier { | 35 | enum iio_modifier { |
