You've already forked linux-apfs
mirror of
https://github.com/linux-apfs/linux-apfs.git
synced 2026-05-01 15:00:59 -07:00
Merge tag 'staging-4.1-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging
Pull staging driver updates from Greg KH: "Here's the big staging driver patchset for 4.1-rc1. There's a lot of patches here, the Outreachy application period happened during this development cycle, so that means that there was a lot of cleanup patches accepted. Other than the normal coding style and sparse fixes here, there are some driver updates and work toward making some of the drivers into "mergable" shape (like the Unisys drivers.) All of these have been in linux-next for a while" * tag 'staging-4.1-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging: (1214 commits) staging: lustre: orthography & coding style staging: lustre: lnet: lnet: fix error return code staging: lustre: fix sparse warning Revert "Staging: sm750fb: Fix C99 Comments" Staging: rtl8192u: use correct array for debug output staging: rtl8192e: Remove dead code staging: rtl8192e: Comment cleanup (style/format) staging: rtl8192e: Fix indentation in rtllib_rx_auth_resp() staging: rtl8192e: Decrease nesting of rtllib_rx_auth_resp() staging: rtl8192e: Divide rtllib_rx_auth() staging: rtl8192e: Fix PRINTK_WITHOUT_KERN_LEVEL warnings staging: rtl8192e: Fix DO_WHILE_MACRO_WITH_TRAILING_SEMICOLON warning staging: rtl8192e: Fix BRACES warning staging: rtl8192e: Fix LINE_CONTINUATIONS warning staging: rtl8192e: Fix UNNECESSARY_PARENTHESES warnings staging: rtl8192e: remove unused EXPORT_SYMBOL_RSL macro staging: rtl8192e: Fix RETURN_VOID warnings staging: rtl8192e: Fix UNNECESSARY_ELSE warning staging: rtl8723au: Remove unneeded comments staging: rtl8723au: Use __func__ in trace logs ...
This commit is contained in:
@@ -253,6 +253,8 @@ What: /sys/bus/iio/devices/iio:deviceX/in_temp_offset
|
|||||||
What: /sys/bus/iio/devices/iio:deviceX/in_pressureY_offset
|
What: /sys/bus/iio/devices/iio:deviceX/in_pressureY_offset
|
||||||
What: /sys/bus/iio/devices/iio:deviceX/in_pressure_offset
|
What: /sys/bus/iio/devices/iio:deviceX/in_pressure_offset
|
||||||
What: /sys/bus/iio/devices/iio:deviceX/in_humidityrelative_offset
|
What: /sys/bus/iio/devices/iio:deviceX/in_humidityrelative_offset
|
||||||
|
What: /sys/bus/iio/devices/iio:deviceX/in_magn_offset
|
||||||
|
What: /sys/bus/iio/devices/iio:deviceX/in_rot_offset
|
||||||
KernelVersion: 2.6.35
|
KernelVersion: 2.6.35
|
||||||
Contact: linux-iio@vger.kernel.org
|
Contact: linux-iio@vger.kernel.org
|
||||||
Description:
|
Description:
|
||||||
@@ -296,6 +298,7 @@ What: /sys/bus/iio/devices/iio:deviceX/in_pressureY_scale
|
|||||||
What: /sys/bus/iio/devices/iio:deviceX/in_pressure_scale
|
What: /sys/bus/iio/devices/iio:deviceX/in_pressure_scale
|
||||||
What: /sys/bus/iio/devices/iio:deviceX/in_humidityrelative_scale
|
What: /sys/bus/iio/devices/iio:deviceX/in_humidityrelative_scale
|
||||||
What: /sys/bus/iio/devices/iio:deviceX/in_velocity_sqrt(x^2+y^2+z^2)_scale
|
What: /sys/bus/iio/devices/iio:deviceX/in_velocity_sqrt(x^2+y^2+z^2)_scale
|
||||||
|
What: /sys/bus/iio/devices/iio:deviceX/in_illuminance_scale
|
||||||
KernelVersion: 2.6.35
|
KernelVersion: 2.6.35
|
||||||
Contact: linux-iio@vger.kernel.org
|
Contact: linux-iio@vger.kernel.org
|
||||||
Description:
|
Description:
|
||||||
@@ -336,6 +339,7 @@ what /sys/bus/iio/devices/iio:deviceX/in_illuminance0_calibscale
|
|||||||
what /sys/bus/iio/devices/iio:deviceX/in_proximity0_calibscale
|
what /sys/bus/iio/devices/iio:deviceX/in_proximity0_calibscale
|
||||||
What: /sys/bus/iio/devices/iio:deviceX/in_pressureY_calibscale
|
What: /sys/bus/iio/devices/iio:deviceX/in_pressureY_calibscale
|
||||||
What: /sys/bus/iio/devices/iio:deviceX/in_pressure_calibscale
|
What: /sys/bus/iio/devices/iio:deviceX/in_pressure_calibscale
|
||||||
|
What: /sys/bus/iio/devices/iio:deviceX/in_illuminance_calibscale
|
||||||
KernelVersion: 2.6.35
|
KernelVersion: 2.6.35
|
||||||
Contact: linux-iio@vger.kernel.org
|
Contact: linux-iio@vger.kernel.org
|
||||||
Description:
|
Description:
|
||||||
@@ -347,7 +351,7 @@ What: /sys/bus/iio/devices/iio:deviceX/in_activity_calibgender
|
|||||||
What: /sys/bus/iio/devices/iio:deviceX/in_energy_calibgender
|
What: /sys/bus/iio/devices/iio:deviceX/in_energy_calibgender
|
||||||
What: /sys/bus/iio/devices/iio:deviceX/in_distance_calibgender
|
What: /sys/bus/iio/devices/iio:deviceX/in_distance_calibgender
|
||||||
What: /sys/bus/iio/devices/iio:deviceX/in_velocity_calibgender
|
What: /sys/bus/iio/devices/iio:deviceX/in_velocity_calibgender
|
||||||
KernelVersion: 3.20
|
KernelVersion: 4.0
|
||||||
Contact: linux-iio@vger.kernel.org
|
Contact: linux-iio@vger.kernel.org
|
||||||
Description:
|
Description:
|
||||||
Gender of the user (e.g.: male, female) used by some pedometers
|
Gender of the user (e.g.: male, female) used by some pedometers
|
||||||
@@ -358,7 +362,7 @@ What: /sys/bus/iio/devices/iio:deviceX/in_activity_calibgender_available
|
|||||||
What: /sys/bus/iio/devices/iio:deviceX/in_energy_calibgender_available
|
What: /sys/bus/iio/devices/iio:deviceX/in_energy_calibgender_available
|
||||||
What: /sys/bus/iio/devices/iio:deviceX/in_distance_calibgender_available
|
What: /sys/bus/iio/devices/iio:deviceX/in_distance_calibgender_available
|
||||||
What: /sys/bus/iio/devices/iio:deviceX/in_velocity_calibgender_available
|
What: /sys/bus/iio/devices/iio:deviceX/in_velocity_calibgender_available
|
||||||
KernelVersion: 3.20
|
KernelVersion: 4.0
|
||||||
Contact: linux-iio@vger.kernel.org
|
Contact: linux-iio@vger.kernel.org
|
||||||
Description:
|
Description:
|
||||||
Lists all available gender values (e.g.: male, female).
|
Lists all available gender values (e.g.: male, female).
|
||||||
@@ -375,7 +379,7 @@ Description:
|
|||||||
type.
|
type.
|
||||||
|
|
||||||
What: /sys/bus/iio/devices/iio:deviceX/in_energy_calibweight
|
What: /sys/bus/iio/devices/iio:deviceX/in_energy_calibweight
|
||||||
KernelVersion: 3.20
|
KernelVersion: 4.0
|
||||||
Contact: linux-iio@vger.kernel.org
|
Contact: linux-iio@vger.kernel.org
|
||||||
Description:
|
Description:
|
||||||
Weight of the user (in kg). It is needed by some pedometers
|
Weight of the user (in kg). It is needed by some pedometers
|
||||||
@@ -612,6 +616,8 @@ Description:
|
|||||||
a given event type is enabled a future point (and not those for
|
a given event type is enabled a future point (and not those for
|
||||||
whatever event was previously enabled).
|
whatever event was previously enabled).
|
||||||
|
|
||||||
|
What: /sys/.../events/in_accel_thresh_rising_value
|
||||||
|
What: /sys/.../events/in_accel_thresh_falling_value
|
||||||
What: /sys/.../events/in_accel_x_raw_thresh_rising_value
|
What: /sys/.../events/in_accel_x_raw_thresh_rising_value
|
||||||
What: /sys/.../events/in_accel_x_raw_thresh_falling_value
|
What: /sys/.../events/in_accel_x_raw_thresh_falling_value
|
||||||
What: /sys/.../events/in_accel_y_raw_thresh_rising_value
|
What: /sys/.../events/in_accel_y_raw_thresh_rising_value
|
||||||
@@ -661,6 +667,24 @@ Description:
|
|||||||
value is in raw device units or in processed units (as _raw
|
value is in raw device units or in processed units (as _raw
|
||||||
and _input do on sysfs direct channel read attributes).
|
and _input do on sysfs direct channel read attributes).
|
||||||
|
|
||||||
|
What: /sys/.../events/in_accel_scale
|
||||||
|
What: /sys/.../events/in_accel_peak_scale
|
||||||
|
What: /sys/.../events/in_anglvel_scale
|
||||||
|
What: /sys/.../events/in_magn_scale
|
||||||
|
What: /sys/.../events/in_rot_from_north_magnetic_scale
|
||||||
|
What: /sys/.../events/in_rot_from_north_true_scale
|
||||||
|
What: /sys/.../events/in_voltage_scale
|
||||||
|
What: /sys/.../events/in_voltage_supply_scale
|
||||||
|
What: /sys/.../events/in_temp_scale
|
||||||
|
What: /sys/.../events/in_illuminance_scale
|
||||||
|
What: /sys/.../events/in_proximity_scale
|
||||||
|
KernelVersion: 3.21
|
||||||
|
Contact: linux-iio@vger.kernel.org
|
||||||
|
Description:
|
||||||
|
Specifies the conversion factor from the standard units
|
||||||
|
to device specific units used to set the event trigger
|
||||||
|
threshold.
|
||||||
|
|
||||||
What: /sys/.../events/in_accel_x_thresh_rising_hysteresis
|
What: /sys/.../events/in_accel_x_thresh_rising_hysteresis
|
||||||
What: /sys/.../events/in_accel_x_thresh_falling_hysteresis
|
What: /sys/.../events/in_accel_x_thresh_falling_hysteresis
|
||||||
What: /sys/.../events/in_accel_x_thresh_either_hysteresis
|
What: /sys/.../events/in_accel_x_thresh_either_hysteresis
|
||||||
@@ -776,7 +800,7 @@ Description:
|
|||||||
|
|
||||||
What: /sys/.../events/in_accel_x_thresh_rising_period
|
What: /sys/.../events/in_accel_x_thresh_rising_period
|
||||||
What: /sys/.../events/in_accel_x_thresh_falling_period
|
What: /sys/.../events/in_accel_x_thresh_falling_period
|
||||||
hat: /sys/.../events/in_accel_x_roc_rising_period
|
What: /sys/.../events/in_accel_x_roc_rising_period
|
||||||
What: /sys/.../events/in_accel_x_roc_falling_period
|
What: /sys/.../events/in_accel_x_roc_falling_period
|
||||||
What: /sys/.../events/in_accel_y_thresh_rising_period
|
What: /sys/.../events/in_accel_y_thresh_rising_period
|
||||||
What: /sys/.../events/in_accel_y_thresh_falling_period
|
What: /sys/.../events/in_accel_y_thresh_falling_period
|
||||||
@@ -923,7 +947,7 @@ Description:
|
|||||||
this type.
|
this type.
|
||||||
|
|
||||||
What: /sys/.../events/in_steps_change_en
|
What: /sys/.../events/in_steps_change_en
|
||||||
KernelVersion: 3.20
|
KernelVersion: 4.0
|
||||||
Contact: linux-iio@vger.kernel.org
|
Contact: linux-iio@vger.kernel.org
|
||||||
Description:
|
Description:
|
||||||
Event generated when channel passes a threshold on the absolute
|
Event generated when channel passes a threshold on the absolute
|
||||||
@@ -932,7 +956,7 @@ Description:
|
|||||||
in_steps_change_value.
|
in_steps_change_value.
|
||||||
|
|
||||||
What: /sys/.../events/in_steps_change_value
|
What: /sys/.../events/in_steps_change_value
|
||||||
KernelVersion: 3.20
|
KernelVersion: 4.0
|
||||||
Contact: linux-iio@vger.kernel.org
|
Contact: linux-iio@vger.kernel.org
|
||||||
Description:
|
Description:
|
||||||
Specifies the value of change threshold that the
|
Specifies the value of change threshold that the
|
||||||
@@ -997,6 +1021,7 @@ What: /sys/.../iio:deviceX/scan_elements/in_incli_y_en
|
|||||||
What: /sys/.../iio:deviceX/scan_elements/in_pressureY_en
|
What: /sys/.../iio:deviceX/scan_elements/in_pressureY_en
|
||||||
What: /sys/.../iio:deviceX/scan_elements/in_pressure_en
|
What: /sys/.../iio:deviceX/scan_elements/in_pressure_en
|
||||||
What: /sys/.../iio:deviceX/scan_elements/in_rot_quaternion_en
|
What: /sys/.../iio:deviceX/scan_elements/in_rot_quaternion_en
|
||||||
|
What: /sys/.../iio:deviceX/scan_elements/in_proximity_en
|
||||||
KernelVersion: 2.6.37
|
KernelVersion: 2.6.37
|
||||||
Contact: linux-iio@vger.kernel.org
|
Contact: linux-iio@vger.kernel.org
|
||||||
Description:
|
Description:
|
||||||
@@ -1013,6 +1038,7 @@ What: /sys/.../iio:deviceX/scan_elements/in_timestamp_type
|
|||||||
What: /sys/.../iio:deviceX/scan_elements/in_pressureY_type
|
What: /sys/.../iio:deviceX/scan_elements/in_pressureY_type
|
||||||
What: /sys/.../iio:deviceX/scan_elements/in_pressure_type
|
What: /sys/.../iio:deviceX/scan_elements/in_pressure_type
|
||||||
What: /sys/.../iio:deviceX/scan_elements/in_rot_quaternion_type
|
What: /sys/.../iio:deviceX/scan_elements/in_rot_quaternion_type
|
||||||
|
What: /sys/.../iio:deviceX/scan_elements/in_proximity_type
|
||||||
KernelVersion: 2.6.37
|
KernelVersion: 2.6.37
|
||||||
Contact: linux-iio@vger.kernel.org
|
Contact: linux-iio@vger.kernel.org
|
||||||
Description:
|
Description:
|
||||||
@@ -1064,6 +1090,7 @@ What: /sys/.../iio:deviceX/scan_elements/in_timestamp_index
|
|||||||
What: /sys/.../iio:deviceX/scan_elements/in_pressureY_index
|
What: /sys/.../iio:deviceX/scan_elements/in_pressureY_index
|
||||||
What: /sys/.../iio:deviceX/scan_elements/in_pressure_index
|
What: /sys/.../iio:deviceX/scan_elements/in_pressure_index
|
||||||
What: /sys/.../iio:deviceX/scan_elements/in_rot_quaternion_index
|
What: /sys/.../iio:deviceX/scan_elements/in_rot_quaternion_index
|
||||||
|
What: /sys/.../iio:deviceX/scan_elements/in_proximity_index
|
||||||
KernelVersion: 2.6.37
|
KernelVersion: 2.6.37
|
||||||
Contact: linux-iio@vger.kernel.org
|
Contact: linux-iio@vger.kernel.org
|
||||||
Description:
|
Description:
|
||||||
@@ -1104,7 +1131,7 @@ Description:
|
|||||||
|
|
||||||
What: /sys/.../iio:deviceX/in_energy_input
|
What: /sys/.../iio:deviceX/in_energy_input
|
||||||
What: /sys/.../iio:deviceX/in_energy_raw
|
What: /sys/.../iio:deviceX/in_energy_raw
|
||||||
KernelVersion: 3.20
|
KernelVersion: 4.0
|
||||||
Contact: linux-iio@vger.kernel.org
|
Contact: linux-iio@vger.kernel.org
|
||||||
Description:
|
Description:
|
||||||
This attribute is used to read the energy value reported by the
|
This attribute is used to read the energy value reported by the
|
||||||
@@ -1113,7 +1140,7 @@ Description:
|
|||||||
|
|
||||||
What: /sys/.../iio:deviceX/in_distance_input
|
What: /sys/.../iio:deviceX/in_distance_input
|
||||||
What: /sys/.../iio:deviceX/in_distance_raw
|
What: /sys/.../iio:deviceX/in_distance_raw
|
||||||
KernelVersion: 3.20
|
KernelVersion: 4.0
|
||||||
Contact: linux-iio@vger.kernel.org
|
Contact: linux-iio@vger.kernel.org
|
||||||
Description:
|
Description:
|
||||||
This attribute is used to read the distance covered by the user
|
This attribute is used to read the distance covered by the user
|
||||||
@@ -1143,9 +1170,13 @@ Description:
|
|||||||
values should behave in the same way as a distance, i.e. lower
|
values should behave in the same way as a distance, i.e. lower
|
||||||
values indicate something is closer to the sensor.
|
values indicate something is closer to the sensor.
|
||||||
|
|
||||||
|
What: /sys/.../iio:deviceX/in_illuminance_input
|
||||||
|
What: /sys/.../iio:deviceX/in_illuminance_raw
|
||||||
What: /sys/.../iio:deviceX/in_illuminanceY_input
|
What: /sys/.../iio:deviceX/in_illuminanceY_input
|
||||||
What: /sys/.../iio:deviceX/in_illuminanceY_raw
|
What: /sys/.../iio:deviceX/in_illuminanceY_raw
|
||||||
What: /sys/.../iio:deviceX/in_illuminanceY_mean_raw
|
What: /sys/.../iio:deviceX/in_illuminanceY_mean_raw
|
||||||
|
What: /sys/.../iio:deviceX/in_illuminance_ir_raw
|
||||||
|
What: /sys/.../iio:deviceX/in_illuminance_clear_raw
|
||||||
KernelVersion: 3.4
|
KernelVersion: 3.4
|
||||||
Contact: linux-iio@vger.kernel.org
|
Contact: linux-iio@vger.kernel.org
|
||||||
Description:
|
Description:
|
||||||
@@ -1174,7 +1205,7 @@ Description:
|
|||||||
seconds.
|
seconds.
|
||||||
|
|
||||||
What: /sys/.../iio:deviceX/in_velocity_sqrt(x^2+y^2+z^2)_integration_time
|
What: /sys/.../iio:deviceX/in_velocity_sqrt(x^2+y^2+z^2)_integration_time
|
||||||
KernelVersion: 3.20
|
KernelVersion: 4.0
|
||||||
Contact: linux-iio@vger.kernel.org
|
Contact: linux-iio@vger.kernel.org
|
||||||
Description:
|
Description:
|
||||||
Number of seconds in which to compute speed.
|
Number of seconds in which to compute speed.
|
||||||
@@ -1236,7 +1267,7 @@ Description:
|
|||||||
Units after application of scale are m/s.
|
Units after application of scale are m/s.
|
||||||
|
|
||||||
What: /sys/.../iio:deviceX/in_steps_debounce_count
|
What: /sys/.../iio:deviceX/in_steps_debounce_count
|
||||||
KernelVersion: 3.20
|
KernelVersion: 4.0
|
||||||
Contact: linux-iio@vger.kernel.org
|
Contact: linux-iio@vger.kernel.org
|
||||||
Description:
|
Description:
|
||||||
Specifies the number of steps that must occur within
|
Specifies the number of steps that must occur within
|
||||||
@@ -1244,8 +1275,92 @@ Description:
|
|||||||
consumer is making steps.
|
consumer is making steps.
|
||||||
|
|
||||||
What: /sys/.../iio:deviceX/in_steps_debounce_time
|
What: /sys/.../iio:deviceX/in_steps_debounce_time
|
||||||
KernelVersion: 3.20
|
KernelVersion: 4.0
|
||||||
Contact: linux-iio@vger.kernel.org
|
Contact: linux-iio@vger.kernel.org
|
||||||
Description:
|
Description:
|
||||||
Specifies number of seconds in which we compute the steps
|
Specifies number of seconds in which we compute the steps
|
||||||
that occur in order to decide if the consumer is making steps.
|
that occur in order to decide if the consumer is making steps.
|
||||||
|
|
||||||
|
What: /sys/bus/iio/devices/iio:deviceX/buffer/watermark
|
||||||
|
KernelVersion: 4.2
|
||||||
|
Contact: linux-iio@vger.kernel.org
|
||||||
|
Description:
|
||||||
|
A single positive integer specifying the maximum number of scan
|
||||||
|
elements to wait for.
|
||||||
|
Poll will block until the watermark is reached.
|
||||||
|
Blocking read will wait until the minimum between the requested
|
||||||
|
read amount or the low water mark is available.
|
||||||
|
Non-blocking read will retrieve the available samples from the
|
||||||
|
buffer even if there are less samples then watermark level. This
|
||||||
|
allows the application to block on poll with a timeout and read
|
||||||
|
the available samples after the timeout expires and thus have a
|
||||||
|
maximum delay guarantee.
|
||||||
|
|
||||||
|
What: /sys/bus/iio/devices/iio:deviceX/buffer/hwfifo_enabled
|
||||||
|
KernelVersion: 4.2
|
||||||
|
Contact: linux-iio@vger.kernel.org
|
||||||
|
Description:
|
||||||
|
A read-only boolean value that indicates if the hardware fifo is
|
||||||
|
currently enabled or disabled. If the device does not have a
|
||||||
|
hardware fifo this entry is not present.
|
||||||
|
The hardware fifo is enabled when the buffer is enabled if the
|
||||||
|
current hardware fifo watermark level is set and other current
|
||||||
|
device settings allows it (e.g. if a trigger is set that samples
|
||||||
|
data differently that the hardware fifo does then hardware fifo
|
||||||
|
will not enabled).
|
||||||
|
If the hardware fifo is enabled and the level of the hardware
|
||||||
|
fifo reaches the hardware fifo watermark level the device will
|
||||||
|
flush its hardware fifo to the device buffer. Doing a non
|
||||||
|
blocking read on the device when no samples are present in the
|
||||||
|
device buffer will also force a flush.
|
||||||
|
When the hardware fifo is enabled there is no need to use a
|
||||||
|
trigger to use buffer mode since the watermark settings
|
||||||
|
guarantees that the hardware fifo is flushed to the device
|
||||||
|
buffer.
|
||||||
|
|
||||||
|
What: /sys/bus/iio/devices/iio:deviceX/buffer/hwfifo_watermark
|
||||||
|
KernelVersion: 4.2
|
||||||
|
Contact: linux-iio@vger.kernel.org
|
||||||
|
Description:
|
||||||
|
Read-only entry that contains a single integer specifying the
|
||||||
|
current watermark level for the hardware fifo. If the device
|
||||||
|
does not have a hardware fifo this entry is not present.
|
||||||
|
The watermark level for the hardware fifo is set by the driver
|
||||||
|
based on the value set by the user in buffer/watermark but
|
||||||
|
taking into account hardware limitations (e.g. most hardware
|
||||||
|
buffers are limited to 32-64 samples, some hardware buffers
|
||||||
|
watermarks are fixed or have minimum levels). A value of 0
|
||||||
|
means that the hardware watermark is unset.
|
||||||
|
|
||||||
|
What: /sys/bus/iio/devices/iio:deviceX/buffer/hwfifo_watermark_min
|
||||||
|
KernelVersion: 4.2
|
||||||
|
Contact: linux-iio@vger.kernel.org
|
||||||
|
Description:
|
||||||
|
A single positive integer specifying the minimum watermark level
|
||||||
|
for the hardware fifo of this device. If the device does not
|
||||||
|
have a hardware fifo this entry is not present.
|
||||||
|
If the user sets buffer/watermark to a value less than this one,
|
||||||
|
then the hardware watermark will remain unset.
|
||||||
|
|
||||||
|
What: /sys/bus/iio/devices/iio:deviceX/buffer/hwfifo_watermark_max
|
||||||
|
KernelVersion: 4.2
|
||||||
|
Contact: linux-iio@vger.kernel.org
|
||||||
|
Description:
|
||||||
|
A single positive integer specifying the maximum watermark level
|
||||||
|
for the hardware fifo of this device. If the device does not
|
||||||
|
have a hardware fifo this entry is not present.
|
||||||
|
If the user sets buffer/watermark to a value greater than this
|
||||||
|
one, then the hardware watermark will be capped at this value.
|
||||||
|
|
||||||
|
What: /sys/bus/iio/devices/iio:deviceX/buffer/hwfifo_watermark_available
|
||||||
|
KernelVersion: 4.2
|
||||||
|
Contact: linux-iio@vger.kernel.org
|
||||||
|
Description:
|
||||||
|
A list of positive integers specifying the available watermark
|
||||||
|
levels for the hardware fifo. This entry is optional and if it
|
||||||
|
is not present it means that all the values between
|
||||||
|
hwfifo_watermark_min and hwfifo_watermark_max are supported.
|
||||||
|
If the user sets buffer/watermark to a value greater than
|
||||||
|
hwfifo_watermak_min but not equal to any of the values in this
|
||||||
|
list, the driver will chose an appropriate value for the
|
||||||
|
hardware fifo watermark level.
|
||||||
|
|||||||
@@ -0,0 +1,30 @@
|
|||||||
|
* Microchip Analog to Digital Converter (ADC)
|
||||||
|
|
||||||
|
The node for this driver must be a child node of a SPI controller, hence
|
||||||
|
all mandatory properties described in
|
||||||
|
|
||||||
|
Documentation/devicetree/bindings/spi/spi-bus.txt
|
||||||
|
|
||||||
|
must be specified.
|
||||||
|
|
||||||
|
Required properties:
|
||||||
|
- compatible: Must be one of the following, depending on the
|
||||||
|
model:
|
||||||
|
"mcp3001"
|
||||||
|
"mcp3002"
|
||||||
|
"mcp3004"
|
||||||
|
"mcp3008"
|
||||||
|
"mcp3201"
|
||||||
|
"mcp3202"
|
||||||
|
"mcp3204"
|
||||||
|
"mcp3208"
|
||||||
|
|
||||||
|
|
||||||
|
Examples:
|
||||||
|
spi_controller {
|
||||||
|
mcp3x0x@0 {
|
||||||
|
compatible = "mcp3002";
|
||||||
|
reg = <0>;
|
||||||
|
spi-max-frequency = <1000000>;
|
||||||
|
};
|
||||||
|
};
|
||||||
@@ -0,0 +1,17 @@
|
|||||||
|
* Microchip mcp3422/3/4/6/7/8 chip family (ADC)
|
||||||
|
|
||||||
|
Required properties:
|
||||||
|
- compatible: Should be
|
||||||
|
"microchip,mcp3422" or
|
||||||
|
"microchip,mcp3423" or
|
||||||
|
"microchip,mcp3424" or
|
||||||
|
"microchip,mcp3426" or
|
||||||
|
"microchip,mcp3427" or
|
||||||
|
"microchip,mcp3428"
|
||||||
|
- reg: I2C address for the device
|
||||||
|
|
||||||
|
Example:
|
||||||
|
adc@0 {
|
||||||
|
compatible = "microchip,mcp3424";
|
||||||
|
reg = <0x68>;
|
||||||
|
};
|
||||||
@@ -0,0 +1,18 @@
|
|||||||
|
* Texas Instruments' ADC128S052 ADC chip
|
||||||
|
|
||||||
|
Required properties:
|
||||||
|
- compatible: Should be "ti,adc128s052"
|
||||||
|
- reg: spi chip select number for the device
|
||||||
|
- vref-supply: The regulator supply for ADC reference voltage
|
||||||
|
|
||||||
|
Recommended properties:
|
||||||
|
- spi-max-frequency: Definition as per
|
||||||
|
Documentation/devicetree/bindings/spi/spi-bus.txt
|
||||||
|
|
||||||
|
Example:
|
||||||
|
adc@0 {
|
||||||
|
compatible = "ti,adc128s052";
|
||||||
|
reg = <0>;
|
||||||
|
vref-supply = <&vdd_supply>;
|
||||||
|
spi-max-frequency = <1000000>;
|
||||||
|
};
|
||||||
@@ -23,6 +23,7 @@ standard bindings from pinctrl/pinctrl-bindings.txt.
|
|||||||
Valid compatible strings:
|
Valid compatible strings:
|
||||||
|
|
||||||
Accelerometers:
|
Accelerometers:
|
||||||
|
- st,lis3lv02dl-accel
|
||||||
- st,lsm303dlh-accel
|
- st,lsm303dlh-accel
|
||||||
- st,lsm303dlhc-accel
|
- st,lsm303dlhc-accel
|
||||||
- st,lis3dh-accel
|
- st,lis3dh-accel
|
||||||
|
|||||||
+16
-1
@@ -724,7 +724,7 @@ F: staging/iio/trigger/iio-trig-bfin-timer.c
|
|||||||
|
|
||||||
ANDROID DRIVERS
|
ANDROID DRIVERS
|
||||||
M: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
|
M: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
|
||||||
M: Arve Hjønnevåg <arve@android.com>
|
M: Arve Hjønnevåg <arve@android.com>
|
||||||
M: Riley Andrews <riandrews@android.com>
|
M: Riley Andrews <riandrews@android.com>
|
||||||
T: git git://git.kernel.org/pub/scm/linux/kernel/gregkh/staging.git
|
T: git git://git.kernel.org/pub/scm/linux/kernel/gregkh/staging.git
|
||||||
L: devel@driverdev.osuosl.org
|
L: devel@driverdev.osuosl.org
|
||||||
@@ -4169,6 +4169,12 @@ F: sound/soc/fsl/fsl*
|
|||||||
F: sound/soc/fsl/imx*
|
F: sound/soc/fsl/imx*
|
||||||
F: sound/soc/fsl/mpc8610_hpcd.c
|
F: sound/soc/fsl/mpc8610_hpcd.c
|
||||||
|
|
||||||
|
FREESCALE QORIQ MANAGEMENT COMPLEX DRIVER
|
||||||
|
M: J. German Rivera <German.Rivera@freescale.com>
|
||||||
|
L: linux-kernel@vger.kernel.org
|
||||||
|
S: Maintained
|
||||||
|
F: drivers/staging/fsl-mc/
|
||||||
|
|
||||||
FREEVXFS FILESYSTEM
|
FREEVXFS FILESYSTEM
|
||||||
M: Christoph Hellwig <hch@infradead.org>
|
M: Christoph Hellwig <hch@infradead.org>
|
||||||
W: ftp://ftp.openlinux.org/pub/people/hch/vxfs
|
W: ftp://ftp.openlinux.org/pub/people/hch/vxfs
|
||||||
@@ -4954,6 +4960,7 @@ S: Maintained
|
|||||||
F: drivers/iio/
|
F: drivers/iio/
|
||||||
F: drivers/staging/iio/
|
F: drivers/staging/iio/
|
||||||
F: include/linux/iio/
|
F: include/linux/iio/
|
||||||
|
F: tools/iio/
|
||||||
|
|
||||||
IKANOS/ADI EAGLE ADSL USB DRIVER
|
IKANOS/ADI EAGLE ADSL USB DRIVER
|
||||||
M: Matthieu Castet <castet.matthieu@free.fr>
|
M: Matthieu Castet <castet.matthieu@free.fr>
|
||||||
@@ -9363,6 +9370,14 @@ L: linux-fbdev@vger.kernel.org
|
|||||||
S: Maintained
|
S: Maintained
|
||||||
F: drivers/staging/sm7xxfb/
|
F: drivers/staging/sm7xxfb/
|
||||||
|
|
||||||
|
STAGING - SILICON MOTION SM750 FRAME BUFFER DRIVER
|
||||||
|
M: Sudip Mukherjee <sudipm.mukherjee@gmail.com>
|
||||||
|
M: Teddy Wang <teddy.wang@siliconmotion.com>
|
||||||
|
M: Sudip Mukherjee <sudip@vectorindia.org>
|
||||||
|
L: linux-fbdev@vger.kernel.org
|
||||||
|
S: Maintained
|
||||||
|
F: drivers/staging/sm750fb/
|
||||||
|
|
||||||
STAGING - SLICOSS
|
STAGING - SLICOSS
|
||||||
M: Lior Dotan <liodot@gmail.com>
|
M: Lior Dotan <liodot@gmail.com>
|
||||||
M: Christopher Harrer <charrer@alacritech.com>
|
M: Christopher Harrer <charrer@alacritech.com>
|
||||||
|
|||||||
@@ -3548,7 +3548,7 @@ static int __init d40_probe(struct platform_device *pdev)
|
|||||||
|
|
||||||
if (!plat_data) {
|
if (!plat_data) {
|
||||||
if (np) {
|
if (np) {
|
||||||
if(d40_of_probe(pdev, np)) {
|
if (d40_of_probe(pdev, np)) {
|
||||||
ret = -ENOMEM;
|
ret = -ENOMEM;
|
||||||
goto failure;
|
goto failure;
|
||||||
}
|
}
|
||||||
|
|||||||
+695
-298
File diff suppressed because it is too large
Load Diff
@@ -1169,16 +1169,12 @@ static int kxcjk1013_gpio_probe(struct i2c_client *client,
|
|||||||
dev = &client->dev;
|
dev = &client->dev;
|
||||||
|
|
||||||
/* data ready gpio interrupt pin */
|
/* data ready gpio interrupt pin */
|
||||||
gpio = devm_gpiod_get_index(dev, "kxcjk1013_int", 0);
|
gpio = devm_gpiod_get_index(dev, "kxcjk1013_int", 0, GPIOD_IN);
|
||||||
if (IS_ERR(gpio)) {
|
if (IS_ERR(gpio)) {
|
||||||
dev_err(dev, "acpi gpio get index failed\n");
|
dev_err(dev, "acpi gpio get index failed\n");
|
||||||
return PTR_ERR(gpio);
|
return PTR_ERR(gpio);
|
||||||
}
|
}
|
||||||
|
|
||||||
ret = gpiod_direction_input(gpio);
|
|
||||||
if (ret)
|
|
||||||
return ret;
|
|
||||||
|
|
||||||
ret = gpiod_to_irq(gpio);
|
ret = gpiod_to_irq(gpio);
|
||||||
|
|
||||||
dev_dbg(dev, "GPIO resource, no:%d irq:%d\n", desc_to_gpio(gpio), ret);
|
dev_dbg(dev, "GPIO resource, no:%d irq:%d\n", desc_to_gpio(gpio), ret);
|
||||||
|
|||||||
@@ -418,17 +418,18 @@ static int mma9551_gpio_probe(struct iio_dev *indio_dev)
|
|||||||
struct device *dev = &data->client->dev;
|
struct device *dev = &data->client->dev;
|
||||||
|
|
||||||
for (i = 0; i < MMA9551_GPIO_COUNT; i++) {
|
for (i = 0; i < MMA9551_GPIO_COUNT; i++) {
|
||||||
gpio = devm_gpiod_get_index(dev, MMA9551_GPIO_NAME, i);
|
gpio = devm_gpiod_get_index(dev, MMA9551_GPIO_NAME, i,
|
||||||
|
GPIOD_IN);
|
||||||
if (IS_ERR(gpio)) {
|
if (IS_ERR(gpio)) {
|
||||||
dev_err(dev, "acpi gpio get index failed\n");
|
dev_err(dev, "acpi gpio get index failed\n");
|
||||||
return PTR_ERR(gpio);
|
return PTR_ERR(gpio);
|
||||||
}
|
}
|
||||||
|
|
||||||
ret = gpiod_direction_input(gpio);
|
ret = gpiod_to_irq(gpio);
|
||||||
if (ret)
|
if (ret < 0)
|
||||||
return ret;
|
return ret;
|
||||||
|
|
||||||
data->irqs[i] = gpiod_to_irq(gpio);
|
data->irqs[i] = ret;
|
||||||
ret = devm_request_threaded_irq(dev, data->irqs[i],
|
ret = devm_request_threaded_irq(dev, data->irqs[i],
|
||||||
NULL, mma9551_event_handler,
|
NULL, mma9551_event_handler,
|
||||||
IRQF_TRIGGER_RISING | IRQF_ONESHOT,
|
IRQF_TRIGGER_RISING | IRQF_ONESHOT,
|
||||||
|
|||||||
@@ -1109,16 +1109,12 @@ static int mma9553_gpio_probe(struct i2c_client *client)
|
|||||||
dev = &client->dev;
|
dev = &client->dev;
|
||||||
|
|
||||||
/* data ready gpio interrupt pin */
|
/* data ready gpio interrupt pin */
|
||||||
gpio = devm_gpiod_get_index(dev, MMA9553_GPIO_NAME, 0);
|
gpio = devm_gpiod_get_index(dev, MMA9553_GPIO_NAME, 0, GPIOD_IN);
|
||||||
if (IS_ERR(gpio)) {
|
if (IS_ERR(gpio)) {
|
||||||
dev_err(dev, "acpi gpio get index failed\n");
|
dev_err(dev, "acpi gpio get index failed\n");
|
||||||
return PTR_ERR(gpio);
|
return PTR_ERR(gpio);
|
||||||
}
|
}
|
||||||
|
|
||||||
ret = gpiod_direction_input(gpio);
|
|
||||||
if (ret)
|
|
||||||
return ret;
|
|
||||||
|
|
||||||
ret = gpiod_to_irq(gpio);
|
ret = gpiod_to_irq(gpio);
|
||||||
|
|
||||||
dev_dbg(dev, "gpio resource, no:%d irq:%d\n", desc_to_gpio(gpio), ret);
|
dev_dbg(dev, "gpio resource, no:%d irq:%d\n", desc_to_gpio(gpio), ret);
|
||||||
|
|||||||
@@ -14,6 +14,7 @@
|
|||||||
#include <linux/types.h>
|
#include <linux/types.h>
|
||||||
#include <linux/iio/common/st_sensors.h>
|
#include <linux/iio/common/st_sensors.h>
|
||||||
|
|
||||||
|
#define LIS3LV02DL_ACCEL_DEV_NAME "lis3lv02dl_accel"
|
||||||
#define LSM303DLHC_ACCEL_DEV_NAME "lsm303dlhc_accel"
|
#define LSM303DLHC_ACCEL_DEV_NAME "lsm303dlhc_accel"
|
||||||
#define LIS3DH_ACCEL_DEV_NAME "lis3dh"
|
#define LIS3DH_ACCEL_DEV_NAME "lis3dh"
|
||||||
#define LSM330D_ACCEL_DEV_NAME "lsm330d_accel"
|
#define LSM330D_ACCEL_DEV_NAME "lsm330d_accel"
|
||||||
|
|||||||
@@ -129,6 +129,30 @@
|
|||||||
#define ST_ACCEL_3_IG1_EN_MASK 0x08
|
#define ST_ACCEL_3_IG1_EN_MASK 0x08
|
||||||
#define ST_ACCEL_3_MULTIREAD_BIT false
|
#define ST_ACCEL_3_MULTIREAD_BIT false
|
||||||
|
|
||||||
|
/* CUSTOM VALUES FOR SENSOR 4 */
|
||||||
|
#define ST_ACCEL_4_WAI_EXP 0x3a
|
||||||
|
#define ST_ACCEL_4_ODR_ADDR 0x20
|
||||||
|
#define ST_ACCEL_4_ODR_MASK 0x30 /* DF1 and DF0 */
|
||||||
|
#define ST_ACCEL_4_ODR_AVL_40HZ_VAL 0x00
|
||||||
|
#define ST_ACCEL_4_ODR_AVL_160HZ_VAL 0x01
|
||||||
|
#define ST_ACCEL_4_ODR_AVL_640HZ_VAL 0x02
|
||||||
|
#define ST_ACCEL_4_ODR_AVL_2560HZ_VAL 0x03
|
||||||
|
#define ST_ACCEL_4_PW_ADDR 0x20
|
||||||
|
#define ST_ACCEL_4_PW_MASK 0xc0
|
||||||
|
#define ST_ACCEL_4_FS_ADDR 0x21
|
||||||
|
#define ST_ACCEL_4_FS_MASK 0x80
|
||||||
|
#define ST_ACCEL_4_FS_AVL_2_VAL 0X00
|
||||||
|
#define ST_ACCEL_4_FS_AVL_6_VAL 0X01
|
||||||
|
#define ST_ACCEL_4_FS_AVL_2_GAIN IIO_G_TO_M_S_2(1024)
|
||||||
|
#define ST_ACCEL_4_FS_AVL_6_GAIN IIO_G_TO_M_S_2(340)
|
||||||
|
#define ST_ACCEL_4_BDU_ADDR 0x21
|
||||||
|
#define ST_ACCEL_4_BDU_MASK 0x40
|
||||||
|
#define ST_ACCEL_4_DRDY_IRQ_ADDR 0x21
|
||||||
|
#define ST_ACCEL_4_DRDY_IRQ_INT1_MASK 0x04
|
||||||
|
#define ST_ACCEL_4_IG1_EN_ADDR 0x21
|
||||||
|
#define ST_ACCEL_4_IG1_EN_MASK 0x08
|
||||||
|
#define ST_ACCEL_4_MULTIREAD_BIT true
|
||||||
|
|
||||||
static const struct iio_chan_spec st_accel_12bit_channels[] = {
|
static const struct iio_chan_spec st_accel_12bit_channels[] = {
|
||||||
ST_SENSORS_LSM_CHANNELS(IIO_ACCEL,
|
ST_SENSORS_LSM_CHANNELS(IIO_ACCEL,
|
||||||
BIT(IIO_CHAN_INFO_RAW) | BIT(IIO_CHAN_INFO_SCALE),
|
BIT(IIO_CHAN_INFO_RAW) | BIT(IIO_CHAN_INFO_SCALE),
|
||||||
@@ -373,6 +397,63 @@ static const struct st_sensor_settings st_accel_sensors_settings[] = {
|
|||||||
.multi_read_bit = ST_ACCEL_3_MULTIREAD_BIT,
|
.multi_read_bit = ST_ACCEL_3_MULTIREAD_BIT,
|
||||||
.bootime = 2,
|
.bootime = 2,
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
.wai = ST_ACCEL_4_WAI_EXP,
|
||||||
|
.sensors_supported = {
|
||||||
|
[0] = LIS3LV02DL_ACCEL_DEV_NAME,
|
||||||
|
},
|
||||||
|
.ch = (struct iio_chan_spec *)st_accel_12bit_channels,
|
||||||
|
.odr = {
|
||||||
|
.addr = ST_ACCEL_4_ODR_ADDR,
|
||||||
|
.mask = ST_ACCEL_4_ODR_MASK,
|
||||||
|
.odr_avl = {
|
||||||
|
{ 40, ST_ACCEL_4_ODR_AVL_40HZ_VAL },
|
||||||
|
{ 160, ST_ACCEL_4_ODR_AVL_160HZ_VAL, },
|
||||||
|
{ 640, ST_ACCEL_4_ODR_AVL_640HZ_VAL, },
|
||||||
|
{ 2560, ST_ACCEL_4_ODR_AVL_2560HZ_VAL, },
|
||||||
|
},
|
||||||
|
},
|
||||||
|
.pw = {
|
||||||
|
.addr = ST_ACCEL_4_PW_ADDR,
|
||||||
|
.mask = ST_ACCEL_4_PW_MASK,
|
||||||
|
.value_on = ST_SENSORS_DEFAULT_POWER_ON_VALUE,
|
||||||
|
.value_off = ST_SENSORS_DEFAULT_POWER_OFF_VALUE,
|
||||||
|
},
|
||||||
|
.enable_axis = {
|
||||||
|
.addr = ST_SENSORS_DEFAULT_AXIS_ADDR,
|
||||||
|
.mask = ST_SENSORS_DEFAULT_AXIS_MASK,
|
||||||
|
},
|
||||||
|
.fs = {
|
||||||
|
.addr = ST_ACCEL_4_FS_ADDR,
|
||||||
|
.mask = ST_ACCEL_4_FS_MASK,
|
||||||
|
.fs_avl = {
|
||||||
|
[0] = {
|
||||||
|
.num = ST_ACCEL_FS_AVL_2G,
|
||||||
|
.value = ST_ACCEL_4_FS_AVL_2_VAL,
|
||||||
|
.gain = ST_ACCEL_4_FS_AVL_2_GAIN,
|
||||||
|
},
|
||||||
|
[1] = {
|
||||||
|
.num = ST_ACCEL_FS_AVL_6G,
|
||||||
|
.value = ST_ACCEL_4_FS_AVL_6_VAL,
|
||||||
|
.gain = ST_ACCEL_4_FS_AVL_6_GAIN,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
.bdu = {
|
||||||
|
.addr = ST_ACCEL_4_BDU_ADDR,
|
||||||
|
.mask = ST_ACCEL_4_BDU_MASK,
|
||||||
|
},
|
||||||
|
.drdy_irq = {
|
||||||
|
.addr = ST_ACCEL_4_DRDY_IRQ_ADDR,
|
||||||
|
.mask_int1 = ST_ACCEL_4_DRDY_IRQ_INT1_MASK,
|
||||||
|
.ig1 = {
|
||||||
|
.en_addr = ST_ACCEL_4_IG1_EN_ADDR,
|
||||||
|
.en_mask = ST_ACCEL_4_IG1_EN_MASK,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
.multi_read_bit = ST_ACCEL_4_MULTIREAD_BIT,
|
||||||
|
.bootime = 2, /* guess */
|
||||||
|
},
|
||||||
};
|
};
|
||||||
|
|
||||||
static int st_accel_read_raw(struct iio_dev *indio_dev,
|
static int st_accel_read_raw(struct iio_dev *indio_dev,
|
||||||
|
|||||||
@@ -20,6 +20,10 @@
|
|||||||
|
|
||||||
#ifdef CONFIG_OF
|
#ifdef CONFIG_OF
|
||||||
static const struct of_device_id st_accel_of_match[] = {
|
static const struct of_device_id st_accel_of_match[] = {
|
||||||
|
{
|
||||||
|
.compatible = "st,lis3lv02dl-accel",
|
||||||
|
.data = LIS3LV02DL_ACCEL_DEV_NAME,
|
||||||
|
},
|
||||||
{
|
{
|
||||||
.compatible = "st,lsm303dlh-accel",
|
.compatible = "st,lsm303dlh-accel",
|
||||||
.data = LSM303DLH_ACCEL_DEV_NAME,
|
.data = LSM303DLH_ACCEL_DEV_NAME,
|
||||||
|
|||||||
@@ -196,10 +196,11 @@ config MAX1363
|
|||||||
data via the iio dev interface.
|
data via the iio dev interface.
|
||||||
|
|
||||||
config MCP320X
|
config MCP320X
|
||||||
tristate "Microchip Technology MCP3204/08"
|
tristate "Microchip Technology MCP3x01/02/04/08"
|
||||||
depends on SPI
|
depends on SPI
|
||||||
help
|
help
|
||||||
Say yes here to build support for Microchip Technology's MCP3204 or
|
Say yes here to build support for Microchip Technology's
|
||||||
|
MCP3001, MCP3002, MCP3004, MCP3008, MCP3201, MCP3202, MCP3204 or
|
||||||
MCP3208 analog to digital converter.
|
MCP3208 analog to digital converter.
|
||||||
|
|
||||||
This driver can also be built as a module. If so, the module will be
|
This driver can also be built as a module. If so, the module will be
|
||||||
|
|||||||
@@ -861,5 +861,5 @@ static struct spi_driver ad7793_driver = {
|
|||||||
module_spi_driver(ad7793_driver);
|
module_spi_driver(ad7793_driver);
|
||||||
|
|
||||||
MODULE_AUTHOR("Michael Hennerich <hennerich@blackfin.uclinux.org>");
|
MODULE_AUTHOR("Michael Hennerich <hennerich@blackfin.uclinux.org>");
|
||||||
MODULE_DESCRIPTION("Analog Devices AD7793 and simialr ADCs");
|
MODULE_DESCRIPTION("Analog Devices AD7793 and similar ADCs");
|
||||||
MODULE_LICENSE("GPL v2");
|
MODULE_LICENSE("GPL v2");
|
||||||
|
|||||||
@@ -275,7 +275,6 @@ static void vf610_adc_cfg_post_set(struct vf610_adc *info)
|
|||||||
static void vf610_adc_calibration(struct vf610_adc *info)
|
static void vf610_adc_calibration(struct vf610_adc *info)
|
||||||
{
|
{
|
||||||
int adc_gc, hc_cfg;
|
int adc_gc, hc_cfg;
|
||||||
int timeout;
|
|
||||||
|
|
||||||
if (!info->adc_feature.calibration)
|
if (!info->adc_feature.calibration)
|
||||||
return;
|
return;
|
||||||
@@ -287,9 +286,7 @@ static void vf610_adc_calibration(struct vf610_adc *info)
|
|||||||
adc_gc = readl(info->regs + VF610_REG_ADC_GC);
|
adc_gc = readl(info->regs + VF610_REG_ADC_GC);
|
||||||
writel(adc_gc | VF610_ADC_CAL, info->regs + VF610_REG_ADC_GC);
|
writel(adc_gc | VF610_ADC_CAL, info->regs + VF610_REG_ADC_GC);
|
||||||
|
|
||||||
timeout = wait_for_completion_timeout
|
if (!wait_for_completion_timeout(&info->completion, VF610_ADC_TIMEOUT))
|
||||||
(&info->completion, VF610_ADC_TIMEOUT);
|
|
||||||
if (timeout == 0)
|
|
||||||
dev_err(info->dev, "Timeout for adc calibration\n");
|
dev_err(info->dev, "Timeout for adc calibration\n");
|
||||||
|
|
||||||
adc_gc = readl(info->regs + VF610_REG_ADC_GS);
|
adc_gc = readl(info->regs + VF610_REG_ADC_GS);
|
||||||
|
|||||||
@@ -437,7 +437,7 @@ int ssp_queue_ssp_refresh_task(struct ssp_data *data, unsigned int delay)
|
|||||||
}
|
}
|
||||||
|
|
||||||
#ifdef CONFIG_OF
|
#ifdef CONFIG_OF
|
||||||
static struct of_device_id ssp_of_match[] = {
|
static const struct of_device_id ssp_of_match[] = {
|
||||||
{
|
{
|
||||||
.compatible = "samsung,sensorhub-rinato",
|
.compatible = "samsung,sensorhub-rinato",
|
||||||
.data = &ssp_rinato_info,
|
.data = &ssp_rinato_info,
|
||||||
|
|||||||
@@ -143,11 +143,16 @@ config AD7303
|
|||||||
ad7303.
|
ad7303.
|
||||||
|
|
||||||
config MAX517
|
config MAX517
|
||||||
tristate "Maxim MAX517/518/519 DAC driver"
|
tristate "Maxim MAX517/518/519/520/521 DAC driver"
|
||||||
depends on I2C
|
depends on I2C
|
||||||
help
|
help
|
||||||
If you say yes here you get support for the Maxim chips MAX517,
|
If you say yes here you get support for the following Maxim chips
|
||||||
MAX518 and MAX519 (I2C 8-Bit DACs with rail-to-rail outputs).
|
(I2C 8-Bit DACs with rail-to-rail outputs):
|
||||||
|
MAX517 - Single channel, single reference
|
||||||
|
MAX518 - Dual channel, ref=Vdd
|
||||||
|
MAX519 - Dual channel, dual reference
|
||||||
|
MAX520 - Quad channel, quad reference
|
||||||
|
MAX521 - Octal channel, independent ref for ch0-3, shared ref for ch4-7
|
||||||
|
|
||||||
This driver can also be built as a module. If so, the module
|
This driver can also be built as a module. If so, the module
|
||||||
will be called max517.
|
will be called max517.
|
||||||
|
|||||||
+33
-12
@@ -39,11 +39,13 @@ enum max517_device_ids {
|
|||||||
ID_MAX517,
|
ID_MAX517,
|
||||||
ID_MAX518,
|
ID_MAX518,
|
||||||
ID_MAX519,
|
ID_MAX519,
|
||||||
|
ID_MAX520,
|
||||||
|
ID_MAX521,
|
||||||
};
|
};
|
||||||
|
|
||||||
struct max517_data {
|
struct max517_data {
|
||||||
struct i2c_client *client;
|
struct i2c_client *client;
|
||||||
unsigned short vref_mv[2];
|
unsigned short vref_mv[8];
|
||||||
};
|
};
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@@ -149,7 +151,13 @@ static const struct iio_info max517_info = {
|
|||||||
|
|
||||||
static const struct iio_chan_spec max517_channels[] = {
|
static const struct iio_chan_spec max517_channels[] = {
|
||||||
MAX517_CHANNEL(0),
|
MAX517_CHANNEL(0),
|
||||||
MAX517_CHANNEL(1)
|
MAX517_CHANNEL(1),
|
||||||
|
MAX517_CHANNEL(2),
|
||||||
|
MAX517_CHANNEL(3),
|
||||||
|
MAX517_CHANNEL(4),
|
||||||
|
MAX517_CHANNEL(5),
|
||||||
|
MAX517_CHANNEL(6),
|
||||||
|
MAX517_CHANNEL(7),
|
||||||
};
|
};
|
||||||
|
|
||||||
static int max517_probe(struct i2c_client *client,
|
static int max517_probe(struct i2c_client *client,
|
||||||
@@ -158,6 +166,7 @@ static int max517_probe(struct i2c_client *client,
|
|||||||
struct max517_data *data;
|
struct max517_data *data;
|
||||||
struct iio_dev *indio_dev;
|
struct iio_dev *indio_dev;
|
||||||
struct max517_platform_data *platform_data = client->dev.platform_data;
|
struct max517_platform_data *platform_data = client->dev.platform_data;
|
||||||
|
int chan;
|
||||||
|
|
||||||
indio_dev = devm_iio_device_alloc(&client->dev, sizeof(*data));
|
indio_dev = devm_iio_device_alloc(&client->dev, sizeof(*data));
|
||||||
if (!indio_dev)
|
if (!indio_dev)
|
||||||
@@ -169,11 +178,21 @@ static int max517_probe(struct i2c_client *client,
|
|||||||
/* establish that the iio_dev is a child of the i2c device */
|
/* establish that the iio_dev is a child of the i2c device */
|
||||||
indio_dev->dev.parent = &client->dev;
|
indio_dev->dev.parent = &client->dev;
|
||||||
|
|
||||||
/* reduced channel set for MAX517 */
|
switch (id->driver_data) {
|
||||||
if (id->driver_data == ID_MAX517)
|
case ID_MAX521:
|
||||||
indio_dev->num_channels = 1;
|
indio_dev->num_channels = 8;
|
||||||
else
|
break;
|
||||||
|
case ID_MAX520:
|
||||||
|
indio_dev->num_channels = 4;
|
||||||
|
break;
|
||||||
|
case ID_MAX519:
|
||||||
|
case ID_MAX518:
|
||||||
indio_dev->num_channels = 2;
|
indio_dev->num_channels = 2;
|
||||||
|
break;
|
||||||
|
default: /* single channel for MAX517 */
|
||||||
|
indio_dev->num_channels = 1;
|
||||||
|
break;
|
||||||
|
}
|
||||||
indio_dev->channels = max517_channels;
|
indio_dev->channels = max517_channels;
|
||||||
indio_dev->modes = INDIO_DIRECT_MODE;
|
indio_dev->modes = INDIO_DIRECT_MODE;
|
||||||
indio_dev->info = &max517_info;
|
indio_dev->info = &max517_info;
|
||||||
@@ -182,11 +201,11 @@ static int max517_probe(struct i2c_client *client,
|
|||||||
* Reference voltage on MAX518 and default is 5V, else take vref_mv
|
* Reference voltage on MAX518 and default is 5V, else take vref_mv
|
||||||
* from platform_data
|
* from platform_data
|
||||||
*/
|
*/
|
||||||
if (id->driver_data == ID_MAX518 || !platform_data) {
|
for (chan = 0; chan < indio_dev->num_channels; chan++) {
|
||||||
data->vref_mv[0] = data->vref_mv[1] = 5000; /* mV */
|
if (id->driver_data == ID_MAX518 || !platform_data)
|
||||||
} else {
|
data->vref_mv[chan] = 5000; /* mV */
|
||||||
data->vref_mv[0] = platform_data->vref_mv[0];
|
else
|
||||||
data->vref_mv[1] = platform_data->vref_mv[1];
|
data->vref_mv[chan] = platform_data->vref_mv[chan];
|
||||||
}
|
}
|
||||||
|
|
||||||
return iio_device_register(indio_dev);
|
return iio_device_register(indio_dev);
|
||||||
@@ -202,6 +221,8 @@ static const struct i2c_device_id max517_id[] = {
|
|||||||
{ "max517", ID_MAX517 },
|
{ "max517", ID_MAX517 },
|
||||||
{ "max518", ID_MAX518 },
|
{ "max518", ID_MAX518 },
|
||||||
{ "max519", ID_MAX519 },
|
{ "max519", ID_MAX519 },
|
||||||
|
{ "max520", ID_MAX520 },
|
||||||
|
{ "max521", ID_MAX521 },
|
||||||
{ }
|
{ }
|
||||||
};
|
};
|
||||||
MODULE_DEVICE_TABLE(i2c, max517_id);
|
MODULE_DEVICE_TABLE(i2c, max517_id);
|
||||||
@@ -218,5 +239,5 @@ static struct i2c_driver max517_driver = {
|
|||||||
module_i2c_driver(max517_driver);
|
module_i2c_driver(max517_driver);
|
||||||
|
|
||||||
MODULE_AUTHOR("Roland Stigge <stigge@antcom.de>");
|
MODULE_AUTHOR("Roland Stigge <stigge@antcom.de>");
|
||||||
MODULE_DESCRIPTION("MAX517/MAX518/MAX519 8-bit DAC");
|
MODULE_DESCRIPTION("MAX517/518/519/520/521 8-bit DAC");
|
||||||
MODULE_LICENSE("GPL");
|
MODULE_LICENSE("GPL");
|
||||||
|
|||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user