mirror of
https://github.com/tbsdtv/linux_media.git
synced 2025-07-23 12:43:29 +02:00
Merge tag 'staging-5.12-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging
Pull staging and IIO driver updates from Greg KH: "Here is the "big" set of staging and IIO driver patches for 5.12-rc1. Nothing really huge in here, the number of staging tree patches has gone down for a bit, maybe there's only so much churn to happen in here at the moment. The IIO changes are: - new drivers - new DT bindings - new iio driver features with full details in the shortlog. The staging driver patches are just a lot of tiny coding style cleanups, along with some semi-larger hikey driver cleanups as those are _almost_ good enough to get out of the staging tree, but will probably have to wait until 5.13 to have happen. All of these have been in linux-next with no reported issues" * tag 'staging-5.12-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging: (189 commits) staging: hikey9xx: Fix alignment of function parameters staging: greybus: Fixed a misspelling in hid.c staging: wimax/i2400m: fix some byte order issues found by sparse staging: wimax: i2400m: fix some incorrect type warnings staging: greybus: minor code style fix staging:wlan-ng: use memdup_user instead of kmalloc/copy_from_user staging:r8188eu: use IEEE80211_FCTL_* kernel definitions staging: rtl8192e: remove multiple blank lines staging: greybus: Fixed alignment issue in hid.c staging: wfx: remove unused included header files staging: nvec: minor coding style fix staging: wimax: Fix some coding style problem staging: fbtft: add tearing signal detect staging: vt6656: Fixed issue with alignment in rf.c staging: qlge: Remove duplicate word in comment staging: rtl8723bs: remove obsolete commented out code staging: rtl8723bs: fix function comments to follow kernel-doc staging: wfx: avoid defining array of flexible struct staging: rtl8723bs: Replace one-element array with flexible-array member in struct ndis_80211_var_ie staging: Replace lkml.org links with lore ...
This commit is contained in:
@@ -198,6 +198,7 @@ Description:
|
||||
Units after application of scale and offset are m/s^2.
|
||||
|
||||
What: /sys/bus/iio/devices/iio:deviceX/in_angl_raw
|
||||
What: /sys/bus/iio/devices/iio:deviceX/in_anglY_raw
|
||||
KernelVersion: 4.17
|
||||
Contact: linux-iio@vger.kernel.org
|
||||
Description:
|
||||
@@ -1812,3 +1813,13 @@ Contact: linux-iio@vger.kernel.org
|
||||
Description:
|
||||
Unscaled light intensity according to CIE 1931/DIN 5033 color space.
|
||||
Units after application of scale are nano nanowatts per square meter.
|
||||
|
||||
What: /sys/bus/iio/devices/iio:deviceX/in_anglY_label
|
||||
KernelVersion: 5.12
|
||||
Contact: linux-iio@vger.kernel.org
|
||||
Description:
|
||||
Optional symbolic label for channel Y.
|
||||
For Intel hid hinge sensor, the label values are:
|
||||
hinge, keyboard, screen. It means the three channels
|
||||
each correspond respectively to hinge angle, keyboard angle,
|
||||
and screen angle.
|
||||
|
31
Documentation/ABI/testing/sysfs-bus-iio-dac-ad5766
Normal file
31
Documentation/ABI/testing/sysfs-bus-iio-dac-ad5766
Normal file
@@ -0,0 +1,31 @@
|
||||
What: /sys/bus/iio/devices/iio:deviceX/in_voltageY_dither_enable
|
||||
KernelVersion: 5.12
|
||||
Contact: linux-iio@vger.kernel.org
|
||||
Description:
|
||||
Dither enable. Write 1 to enable dither or 0 to disable it.
|
||||
|
||||
What: /sys/bus/iio/devices/iio:deviceX/in_voltageY_dither_invert
|
||||
KernelVersion: 5.12
|
||||
Contact: linux-iio@vger.kernel.org
|
||||
Description:
|
||||
Inverts the dither applied to the selected DAC channel. Dither is not
|
||||
inverted by default. Write "1" to invert dither.
|
||||
|
||||
What: /sys/bus/iio/devices/iio:deviceX/in_voltageY_dither_scale_available
|
||||
KernelVersion: 5.12
|
||||
Contact: linux-iio@vger.kernel.org
|
||||
Description:
|
||||
Returns possible scalings available for the current channel.
|
||||
|
||||
What: /sys/bus/iio/devices/iio:deviceX/in_voltageY_dither_scale
|
||||
KernelVersion: 5.12
|
||||
Contact: linux-iio@vger.kernel.org
|
||||
Description:
|
||||
Scales the dither before it is applied to the selected channel.
|
||||
|
||||
What: /sys/bus/iio/devices/iio:deviceX/in_voltageY_dither_source
|
||||
KernelVersion: 5.12
|
||||
Contact: linux-iio@vger.kernel.org
|
||||
Description:
|
||||
Selects dither source applied to the selected channel. Write "0" to
|
||||
select N0 source, write "1" to select N1 source.
|
@@ -20,6 +20,9 @@ properties:
|
||||
reg:
|
||||
maxItems: 1
|
||||
|
||||
vdd-supply: true
|
||||
vddio-supply: true
|
||||
|
||||
mount-matrix:
|
||||
description: an optional 3x3 mounting rotation matrix.
|
||||
|
||||
|
@@ -1,13 +1,22 @@
|
||||
Xilinx XADC device driver
|
||||
|
||||
This binding document describes the bindings for both of them since the
|
||||
bindings are very similar. The Xilinx XADC is a ADC that can be found in the
|
||||
series 7 FPGAs from Xilinx. The XADC has a DRP interface for communication.
|
||||
Currently two different frontends for the DRP interface exist. One that is only
|
||||
available on the ZYNQ family as a hardmacro in the SoC portion of the ZYNQ. The
|
||||
other one is available on all series 7 platforms and is a softmacro with a AXI
|
||||
interface. This binding document describes the bindings for both of them since
|
||||
the bindings are very similar.
|
||||
This binding document describes the bindings for the Xilinx 7 Series XADC as well
|
||||
as the UltraScale/UltraScale+ System Monitor.
|
||||
|
||||
The Xilinx XADC is an ADC that can be found in the Series 7 FPGAs from Xilinx.
|
||||
The XADC has a DRP interface for communication. Currently two different
|
||||
frontends for the DRP interface exist. One that is only available on the ZYNQ
|
||||
family as a hardmacro in the SoC portion of the ZYNQ. The other one is available
|
||||
on all series 7 platforms and is a softmacro with a AXI interface. This binding
|
||||
document describes the bindings for both of them since the bindings are very
|
||||
similar.
|
||||
|
||||
The Xilinx System Monitor is an ADC that is found in the UltraScale and
|
||||
UltraScale+ FPGAs from Xilinx. The System Monitor provides a DRP interface for
|
||||
communication. Xilinx provides a standard IP core that can be used to access the
|
||||
System Monitor through an AXI interface in the FPGA fabric. This IP core is
|
||||
called the Xilinx System Management Wizard. This document describes the bindings
|
||||
for this IP.
|
||||
|
||||
Required properties:
|
||||
- compatible: Should be one of
|
||||
@@ -15,11 +24,14 @@ Required properties:
|
||||
configuration interface to interface to the XADC hardmacro.
|
||||
* "xlnx,axi-xadc-1.00.a": When using the axi-xadc pcore to
|
||||
interface to the XADC hardmacro.
|
||||
* "xlnx,system-management-wiz-1.3": When using the
|
||||
Xilinx System Management Wizard fabric IP core to access the
|
||||
UltraScale and UltraScale+ System Monitor.
|
||||
- reg: Address and length of the register set for the device
|
||||
- interrupts: Interrupt for the XADC control interface.
|
||||
- clocks: When using the ZYNQ this must be the ZYNQ PCAP clock,
|
||||
when using the AXI-XADC pcore this must be the clock that provides the
|
||||
clock to the AXI bus interface of the core.
|
||||
when using the axi-xadc or the axi-system-management-wizard this must be
|
||||
the clock that provides the clock to the AXI bus interface of the core.
|
||||
|
||||
Optional properties:
|
||||
- xlnx,external-mux:
|
||||
@@ -110,3 +122,20 @@ Examples:
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
adc@80000000 {
|
||||
compatible = "xlnx,system-management-wiz-1.3";
|
||||
reg = <0x80000000 0x1000>;
|
||||
interrupts = <0 81 4>;
|
||||
interrupt-parent = <&gic>;
|
||||
clocks = <&fpga1_clk>;
|
||||
|
||||
xlnx,channels {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
channel@0 {
|
||||
reg = <0>;
|
||||
xlnx,bipolar;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
63
Documentation/devicetree/bindings/iio/dac/adi,ad5766.yaml
Normal file
63
Documentation/devicetree/bindings/iio/dac/adi,ad5766.yaml
Normal file
@@ -0,0 +1,63 @@
|
||||
# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
|
||||
# Copyright 2020 Analog Devices Inc.
|
||||
%YAML 1.2
|
||||
---
|
||||
$id: http://devicetree.org/schemas/iio/dac/adi,ad5766.yaml#
|
||||
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||
|
||||
title: Analog Devices AD5766 DAC device driver
|
||||
|
||||
maintainers:
|
||||
- Cristian Pop <cristian.pop@analog.com>
|
||||
|
||||
description: |
|
||||
Bindings for the Analog Devices AD5766 current DAC device. Datasheet can be
|
||||
found here:
|
||||
https://www.analog.com/media/en/technical-documentation/data-sheets/ad5766-5767.pdf
|
||||
|
||||
properties:
|
||||
compatible:
|
||||
enum:
|
||||
- adi,ad5766
|
||||
- adi,ad5767
|
||||
|
||||
output-range-microvolts:
|
||||
description: Select converter output range.
|
||||
|
||||
reg:
|
||||
maxItems: 1
|
||||
|
||||
spi-max-frequency:
|
||||
maximum: 1000000
|
||||
|
||||
spi-cpol: true
|
||||
|
||||
reset-gpios:
|
||||
description: GPIO spec for the RESET pin. As the line is active low, it
|
||||
should be marked GPIO_ACTIVE_LOW.
|
||||
maxItems: 1
|
||||
|
||||
required:
|
||||
- compatible
|
||||
- output-range-microvolts
|
||||
- reg
|
||||
- spi-max-frequency
|
||||
- spi-cpol
|
||||
|
||||
additionalProperties: false
|
||||
|
||||
examples:
|
||||
- |
|
||||
spi {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
ad5766@0 {
|
||||
compatible = "adi,ad5766";
|
||||
output-range-microvolts = <(-5000) 5000>;
|
||||
reg = <0>;
|
||||
spi-cpol;
|
||||
spi-max-frequency = <1000000>;
|
||||
reset-gpios = <&gpio 22 0>;
|
||||
};
|
||||
};
|
@@ -39,20 +39,39 @@ properties:
|
||||
|
||||
allOf:
|
||||
- if:
|
||||
not:
|
||||
properties:
|
||||
compatible:
|
||||
contains:
|
||||
const: microchip,mcp4726
|
||||
properties:
|
||||
compatible:
|
||||
contains:
|
||||
const: microchip,mcp4725
|
||||
then:
|
||||
properties:
|
||||
vref-supply: false
|
||||
required:
|
||||
- vdd-supply
|
||||
|
||||
- if:
|
||||
properties:
|
||||
compatible:
|
||||
contains:
|
||||
const: microchip,mcp4726
|
||||
then:
|
||||
anyOf:
|
||||
- required:
|
||||
- vdd-supply
|
||||
- required:
|
||||
- vref-supply
|
||||
|
||||
- if:
|
||||
not:
|
||||
required:
|
||||
- vref-supply
|
||||
then:
|
||||
properties:
|
||||
microchip,vref-buffered: false
|
||||
|
||||
required:
|
||||
- compatible
|
||||
- reg
|
||||
- vdd-supply
|
||||
|
||||
additionalProperties: false
|
||||
|
||||
|
@@ -19,6 +19,9 @@ properties:
|
||||
reg:
|
||||
maxItems: 1
|
||||
|
||||
vdd-supply: true
|
||||
vddio-supply: true
|
||||
|
||||
interrupts:
|
||||
minItems: 1
|
||||
description:
|
||||
|
@@ -1,45 +0,0 @@
|
||||
Invensense MPU-3050 Gyroscope device tree bindings
|
||||
|
||||
Required properties:
|
||||
- compatible : should be "invensense,mpu3050"
|
||||
- reg : the I2C address of the sensor
|
||||
|
||||
Optional properties:
|
||||
- interrupts : interrupt mapping for the trigger interrupt from the
|
||||
internal oscillator. The following IRQ modes are supported:
|
||||
IRQ_TYPE_EDGE_RISING, IRQ_TYPE_EDGE_FALLING, IRQ_TYPE_LEVEL_HIGH and
|
||||
IRQ_TYPE_LEVEL_LOW. The driver should detect and configure the hardware
|
||||
for the desired interrupt type.
|
||||
- vdd-supply : supply regulator for the main power voltage.
|
||||
- vlogic-supply : supply regulator for the signal voltage.
|
||||
- mount-matrix : see iio/mount-matrix.txt
|
||||
|
||||
Optional subnodes:
|
||||
- The MPU-3050 will pass through and forward the I2C signals from the
|
||||
incoming I2C bus, alternatively drive traffic to a slave device (usually
|
||||
an accelerometer) on its own initiative. Therefore is supports a subnode
|
||||
i2c gate node. For details see: i2c/i2c-gate.txt
|
||||
|
||||
Example:
|
||||
|
||||
mpu3050@68 {
|
||||
compatible = "invensense,mpu3050";
|
||||
reg = <0x68>;
|
||||
interrupt-parent = <&foo>;
|
||||
interrupts = <12 IRQ_TYPE_EDGE_FALLING>;
|
||||
vdd-supply = <&bar>;
|
||||
vlogic-supply = <&baz>;
|
||||
|
||||
/* External I2C interface */
|
||||
i2c-gate {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
fnord@18 {
|
||||
compatible = "fnord";
|
||||
reg = <0x18>;
|
||||
interrupt-parent = <&foo>;
|
||||
interrupts = <13 IRQ_TYPE_EDGE_FALLING>;
|
||||
};
|
||||
};
|
||||
};
|
@@ -0,0 +1,70 @@
|
||||
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
|
||||
%YAML 1.2
|
||||
---
|
||||
$id: http://devicetree.org/schemas/iio/gyroscope/invensense,mpu3050.yaml#
|
||||
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||
|
||||
title: Invensense MPU-3050 Gyroscope
|
||||
|
||||
maintainers:
|
||||
- Linus Walleij <linus.walleij@linaro.org>
|
||||
|
||||
properties:
|
||||
compatible:
|
||||
const: invensense,mpu3050
|
||||
|
||||
reg:
|
||||
maxItems: 1
|
||||
|
||||
vdd-supply: true
|
||||
|
||||
vlogic-supply: true
|
||||
|
||||
interrupts:
|
||||
minItems: 1
|
||||
description:
|
||||
Interrupt mapping for the trigger interrupt from the internal oscillator.
|
||||
|
||||
mount-matrix: true
|
||||
|
||||
i2c-gate:
|
||||
$ref: /schemas/i2c/i2c-controller.yaml
|
||||
unevaluatedProperties: false
|
||||
description: |
|
||||
The MPU-3050 will pass through and forward the I2C signals from the
|
||||
incoming I2C bus, alternatively drive traffic to a slave device (usually
|
||||
an accelerometer) on its own initiative. Therefore is supports an
|
||||
i2c-gate subnode.
|
||||
|
||||
required:
|
||||
- compatible
|
||||
- reg
|
||||
|
||||
additionalProperties: false
|
||||
|
||||
examples:
|
||||
- |
|
||||
#include <dt-bindings/interrupt-controller/irq.h>
|
||||
i2c {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
gyroscope@68 {
|
||||
compatible = "invensense,mpu3050";
|
||||
reg = <0x68>;
|
||||
interrupt-parent = <&foo>;
|
||||
interrupts = <12 IRQ_TYPE_EDGE_FALLING>;
|
||||
vdd-supply = <&bar>;
|
||||
vlogic-supply = <&baz>;
|
||||
|
||||
i2c-gate {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
magnetometer@c {
|
||||
compatible = "ak,ak8975";
|
||||
reg = <0x0c>;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
...
|
@@ -1,67 +0,0 @@
|
||||
InvenSense MPU-6050 Six-Axis (Gyro + Accelerometer) MEMS MotionTracking Device
|
||||
|
||||
http://www.invensense.com/mems/gyro/mpu6050.html
|
||||
|
||||
Required properties:
|
||||
- compatible : should be one of
|
||||
"invensense,mpu6000"
|
||||
"invensense,mpu6050"
|
||||
"invensense,mpu6500"
|
||||
"invensense,mpu6515"
|
||||
"invensense,mpu9150"
|
||||
"invensense,mpu9250"
|
||||
"invensense,mpu9255"
|
||||
"invensense,icm20608"
|
||||
"invensense,icm20609"
|
||||
"invensense,icm20689"
|
||||
"invensense,icm20602"
|
||||
"invensense,icm20690"
|
||||
"invensense,iam20680"
|
||||
- reg : the I2C address of the sensor
|
||||
- interrupts: interrupt mapping for IRQ. It should be configured with flags
|
||||
IRQ_TYPE_LEVEL_HIGH, IRQ_TYPE_EDGE_RISING, IRQ_TYPE_LEVEL_LOW or
|
||||
IRQ_TYPE_EDGE_FALLING.
|
||||
|
||||
Refer to interrupt-controller/interrupts.txt for generic interrupt client node
|
||||
bindings.
|
||||
|
||||
Optional properties:
|
||||
- vdd-supply: regulator phandle for VDD supply
|
||||
- vddio-supply: regulator phandle for VDDIO supply
|
||||
- mount-matrix: an optional 3x3 mounting rotation matrix
|
||||
- i2c-gate node. These devices also support an auxiliary i2c bus. This is
|
||||
simple enough to be described using the i2c-gate binding. See
|
||||
i2c/i2c-gate.txt for more details.
|
||||
|
||||
Example:
|
||||
mpu6050@68 {
|
||||
compatible = "invensense,mpu6050";
|
||||
reg = <0x68>;
|
||||
interrupt-parent = <&gpio1>;
|
||||
interrupts = <18 IRQ_TYPE_EDGE_RISING>;
|
||||
mount-matrix = "-0.984807753012208", /* x0 */
|
||||
"0", /* y0 */
|
||||
"-0.173648177666930", /* z0 */
|
||||
"0", /* x1 */
|
||||
"-1", /* y1 */
|
||||
"0", /* z1 */
|
||||
"-0.173648177666930", /* x2 */
|
||||
"0", /* y2 */
|
||||
"0.984807753012208"; /* z2 */
|
||||
};
|
||||
|
||||
|
||||
mpu9250@68 {
|
||||
compatible = "invensense,mpu9250";
|
||||
reg = <0x68>;
|
||||
interrupt-parent = <&gpio3>;
|
||||
interrupts = <21 IRQ_TYPE_LEVEL_HIGH>;
|
||||
i2c-gate {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
ax8975@c {
|
||||
compatible = "ak,ak8975";
|
||||
reg = <0x0c>;
|
||||
};
|
||||
};
|
||||
};
|
@@ -0,0 +1,104 @@
|
||||
# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
|
||||
%YAML 1.2
|
||||
---
|
||||
$id: http://devicetree.org/schemas/iio/imu/invensense,mpu6050.yaml#
|
||||
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||
|
||||
title: InvenSense MPU-6050 Six-Axis (Gyro + Accelerometer) MEMS MotionTracking Device
|
||||
|
||||
maintainers:
|
||||
- Jean-Baptiste Maneyrol <jmaneyrol@invensense.com>
|
||||
|
||||
description: |
|
||||
These devices support both I2C and SPI bus interfaces.
|
||||
|
||||
properties:
|
||||
compatible:
|
||||
enum:
|
||||
- invensense,iam20680
|
||||
- invensense,icm20608
|
||||
- invensense,icm20609
|
||||
- invensense,icm20689
|
||||
- invensense,icm20602
|
||||
- invensense,icm20690
|
||||
- invensense,mpu6000
|
||||
- invensense,mpu6050
|
||||
- invensense,mpu6500
|
||||
- invensense,mpu6515
|
||||
- invensense,mpu6880
|
||||
- invensense,mpu9150
|
||||
- invensense,mpu9250
|
||||
- invensense,mpu9255
|
||||
|
||||
reg:
|
||||
maxItems: 1
|
||||
|
||||
interrupts:
|
||||
maxItems: 1
|
||||
|
||||
spi-max-frequency: true
|
||||
|
||||
vdd-supply: true
|
||||
vddio-supply: true
|
||||
|
||||
mount-matrix: true
|
||||
|
||||
i2c-gate:
|
||||
$ref: /schemas/i2c/i2c-controller.yaml
|
||||
unevaluatedProperties: false
|
||||
description: |
|
||||
These devices also support an auxiliary i2c bus via an i2c-gate.
|
||||
|
||||
allOf:
|
||||
- if:
|
||||
not:
|
||||
properties:
|
||||
compatible:
|
||||
contains:
|
||||
enum:
|
||||
- invensense,mpu9150
|
||||
- invensense,mpu9250
|
||||
- invensense,mpu9255
|
||||
then:
|
||||
properties:
|
||||
i2c-gate: false
|
||||
|
||||
additionalProperties: false
|
||||
|
||||
required:
|
||||
- compatible
|
||||
- reg
|
||||
- interrupts
|
||||
|
||||
examples:
|
||||
- |
|
||||
#include <dt-bindings/interrupt-controller/irq.h>
|
||||
i2c {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
imu@68 {
|
||||
compatible = "invensense,mpu9250";
|
||||
reg = <0x68>;
|
||||
interrupt-parent = <&gpio3>;
|
||||
interrupts = <21 IRQ_TYPE_LEVEL_HIGH>;
|
||||
mount-matrix = "-0.984807753012208", /* x0 */
|
||||
"0", /* y0 */
|
||||
"-0.173648177666930", /* z0 */
|
||||
"0", /* x1 */
|
||||
"-1", /* y1 */
|
||||
"0", /* z1 */
|
||||
"-0.173648177666930", /* x2 */
|
||||
"0", /* y2 */
|
||||
"0.984807753012208"; /* z2 */
|
||||
i2c-gate {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
magnetometer@c {
|
||||
compatible = "ak,ak8975";
|
||||
reg = <0x0c>;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
...
|
@@ -30,6 +30,9 @@ properties:
|
||||
reg:
|
||||
maxItems: 1
|
||||
|
||||
vdd-supply: true
|
||||
vddio-supply: true
|
||||
|
||||
interrupts:
|
||||
maxItems: 1
|
||||
|
||||
|
@@ -0,0 +1,112 @@
|
||||
# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
|
||||
%YAML 1.2
|
||||
---
|
||||
$id: http://devicetree.org/schemas/iio/magnetometer/yamaha,yas530.yaml#
|
||||
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||
|
||||
title: Yamaha YAS530 family of magnetometer sensors
|
||||
|
||||
maintainers:
|
||||
- Linus Walleij <linus.walleij@linaro.org>
|
||||
|
||||
description:
|
||||
The Yamaha YAS530 magnetometers is a line of 3-axis magnetometers
|
||||
first introduced by Yamaha in 2009 with the YAS530. They are successors
|
||||
of Yamaha's first magnetometer YAS529. Over the years this magnetometer
|
||||
has been miniaturized and appeared in a number of different variants.
|
||||
|
||||
properties:
|
||||
$nodename:
|
||||
pattern: '^magnetometer@[0-9a-f]+$'
|
||||
|
||||
compatible:
|
||||
items:
|
||||
- enum:
|
||||
- yamaha,yas530
|
||||
- yamaha,yas532
|
||||
- yamaha,yas533
|
||||
- yamaha,yas535
|
||||
- yamaha,yas536
|
||||
- yamaha,yas537
|
||||
- yamaha,yas539
|
||||
|
||||
reg:
|
||||
maxItems: 1
|
||||
|
||||
reset-gpios:
|
||||
maxItems: 1
|
||||
description: The YAS530 sensor has a RSTN pin used to reset
|
||||
the logic inside the sensor. This GPIO line should connect
|
||||
to that pin and be marked as GPIO_ACTIVE_LOW.
|
||||
|
||||
interrupts:
|
||||
maxItems: 1
|
||||
description: Interrupt for INT pin for interrupt generation.
|
||||
The polarity, whether the interrupt is active on the rising
|
||||
or the falling edge, is software-configurable in the hardware.
|
||||
|
||||
vdd-supply:
|
||||
description: An optional regulator providing core power supply
|
||||
on the VDD pin, typically 1.8 V or 3.0 V.
|
||||
|
||||
iovdd-supply:
|
||||
description: An optional regulator providing I/O power supply
|
||||
for the I2C interface on the IOVDD pin, typically 1.8 V.
|
||||
|
||||
mount-matrix:
|
||||
description: An optional 3x3 mounting rotation matrix.
|
||||
|
||||
allOf:
|
||||
- if:
|
||||
not:
|
||||
properties:
|
||||
compatible:
|
||||
items:
|
||||
const: yamaha,yas530
|
||||
then:
|
||||
properties:
|
||||
reset-gpios: false
|
||||
|
||||
- if:
|
||||
properties:
|
||||
compatible:
|
||||
items:
|
||||
const: yamaha,yas539
|
||||
then:
|
||||
properties:
|
||||
interrupts: false
|
||||
|
||||
required:
|
||||
- compatible
|
||||
- reg
|
||||
|
||||
additionalProperties: false
|
||||
|
||||
examples:
|
||||
- |
|
||||
#include <dt-bindings/interrupt-controller/irq.h>
|
||||
#include <dt-bindings/gpio/gpio.h>
|
||||
i2c-0 {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
magnetometer@2e {
|
||||
compatible = "yamaha,yas530";
|
||||
reg = <0x2e>;
|
||||
vdd-supply = <&ldo1_reg>;
|
||||
iovdd-supply = <&ldo2_reg>;
|
||||
reset-gpios = <&gpio6 12 GPIO_ACTIVE_LOW>;
|
||||
interrupts = <&gpio6 13 IRQ_TYPE_EDGE_RISING>;
|
||||
};
|
||||
};
|
||||
|
||||
i2c-1 {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
magnetometer@2e {
|
||||
compatible = "yamaha,yas539";
|
||||
reg = <0x2e>;
|
||||
vdd-supply = <&ldo1_reg>;
|
||||
};
|
||||
};
|
@@ -148,15 +148,13 @@ properties:
|
||||
- maxim,max31730
|
||||
# mCube 3-axis 8-bit digital accelerometer
|
||||
- mcube,mc3230
|
||||
# MEMSIC magnetometer
|
||||
- memsic,mmc35240
|
||||
# MEMSIC 2-axis 8-bit digital accelerometer
|
||||
- memsic,mxc6225
|
||||
# Measurement Specialities I2C temperature and humidity sensor
|
||||
- meas,htu21
|
||||
# Measurement Specialities I2C pressure and temperature sensor
|
||||
- meas,ms5637
|
||||
# Measurement Specialities I2C pressure and temperature sensor
|
||||
- meas,ms5803
|
||||
# Measurement Specialities I2C pressure and temperature sensor
|
||||
- meas,ms5805
|
||||
# Measurement Specialities I2C pressure and temperature sensor
|
||||
- meas,ms5837
|
||||
@@ -166,6 +164,10 @@ properties:
|
||||
- meas,ms8607-temppressure
|
||||
# Measurement Specialties temperature sensor
|
||||
- meas,tsys01
|
||||
# MEMSIC magnetometer
|
||||
- memsic,mmc35240
|
||||
# MEMSIC 2-axis 8-bit digital accelerometer
|
||||
- memsic,mxc6225
|
||||
# Microchip differential I2C ADC, 1 Channel, 18 bit
|
||||
- microchip,mcp3421
|
||||
# Microchip differential I2C ADC, 2 Channel, 18 bit
|
||||
|
@@ -1260,6 +1260,8 @@ patternProperties:
|
||||
description: Shenzhen Xunlong Software CO.,Limited
|
||||
"^xylon,.*":
|
||||
description: Xylon
|
||||
"^yamaha,.*":
|
||||
description: Yamaha Corporation
|
||||
"^yes-optoelectronics,.*":
|
||||
description: Yes Optoelectronics Co.,Ltd.
|
||||
"^ylm,.*":
|
||||
|
@@ -15,6 +15,7 @@ Contents:
|
||||
ethernet/index
|
||||
fddi/index
|
||||
hamradio/index
|
||||
qlogic/index
|
||||
wan/index
|
||||
wifi/index
|
||||
|
||||
|
18
Documentation/networking/device_drivers/qlogic/index.rst
Normal file
18
Documentation/networking/device_drivers/qlogic/index.rst
Normal file
@@ -0,0 +1,18 @@
|
||||
.. SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
|
||||
|
||||
QLogic QLGE Device Drivers
|
||||
===============================================
|
||||
|
||||
Contents:
|
||||
|
||||
.. toctree::
|
||||
:maxdepth: 2
|
||||
|
||||
qlge
|
||||
|
||||
.. only:: subproject and html
|
||||
|
||||
Indices
|
||||
=======
|
||||
|
||||
* :ref:`genindex`
|
118
Documentation/networking/device_drivers/qlogic/qlge.rst
Normal file
118
Documentation/networking/device_drivers/qlogic/qlge.rst
Normal file
@@ -0,0 +1,118 @@
|
||||
.. SPDX-License-Identifier: GPL-2.0
|
||||
|
||||
=======================================
|
||||
QLogic QLGE 10Gb Ethernet device driver
|
||||
=======================================
|
||||
|
||||
This driver use drgn and devlink for debugging.
|
||||
|
||||
Dump kernel data structures in drgn
|
||||
-----------------------------------
|
||||
|
||||
To dump kernel data structures, the following Python script can be used
|
||||
in drgn:
|
||||
|
||||
.. code-block:: python
|
||||
|
||||
def align(x, a):
|
||||
"""the alignment a should be a power of 2
|
||||
"""
|
||||
mask = a - 1
|
||||
return (x+ mask) & ~mask
|
||||
|
||||
def struct_size(struct_type):
|
||||
struct_str = "struct {}".format(struct_type)
|
||||
return sizeof(Object(prog, struct_str, address=0x0))
|
||||
|
||||
def netdev_priv(netdevice):
|
||||
NETDEV_ALIGN = 32
|
||||
return netdevice.value_() + align(struct_size("net_device"), NETDEV_ALIGN)
|
||||
|
||||
name = 'xxx'
|
||||
qlge_device = None
|
||||
netdevices = prog['init_net'].dev_base_head.address_of_()
|
||||
for netdevice in list_for_each_entry("struct net_device", netdevices, "dev_list"):
|
||||
if netdevice.name.string_().decode('ascii') == name:
|
||||
print(netdevice.name)
|
||||
|
||||
ql_adapter = Object(prog, "struct ql_adapter", address=netdev_priv(qlge_device))
|
||||
|
||||
The struct ql_adapter will be printed in drgn as follows,
|
||||
|
||||
>>> ql_adapter
|
||||
(struct ql_adapter){
|
||||
.ricb = (struct ricb){
|
||||
.base_cq = (u8)0,
|
||||
.flags = (u8)120,
|
||||
.mask = (__le16)26637,
|
||||
.hash_cq_id = (u8 [1024]){ 172, 142, 255, 255 },
|
||||
.ipv6_hash_key = (__le32 [10]){},
|
||||
.ipv4_hash_key = (__le32 [4]){},
|
||||
},
|
||||
.flags = (unsigned long)0,
|
||||
.wol = (u32)0,
|
||||
.nic_stats = (struct nic_stats){
|
||||
.tx_pkts = (u64)0,
|
||||
.tx_bytes = (u64)0,
|
||||
.tx_mcast_pkts = (u64)0,
|
||||
.tx_bcast_pkts = (u64)0,
|
||||
.tx_ucast_pkts = (u64)0,
|
||||
.tx_ctl_pkts = (u64)0,
|
||||
.tx_pause_pkts = (u64)0,
|
||||
...
|
||||
},
|
||||
.active_vlans = (unsigned long [64]){
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 52780853100545, 18446744073709551615,
|
||||
18446619461681283072, 0, 42949673024, 2147483647,
|
||||
},
|
||||
.rx_ring = (struct rx_ring [17]){
|
||||
{
|
||||
.cqicb = (struct cqicb){
|
||||
.msix_vect = (u8)0,
|
||||
.reserved1 = (u8)0,
|
||||
.reserved2 = (u8)0,
|
||||
.flags = (u8)0,
|
||||
.len = (__le16)0,
|
||||
.rid = (__le16)0,
|
||||
...
|
||||
},
|
||||
.cq_base = (void *)0x0,
|
||||
.cq_base_dma = (dma_addr_t)0,
|
||||
}
|
||||
...
|
||||
}
|
||||
}
|
||||
|
||||
coredump via devlink
|
||||
--------------------
|
||||
|
||||
|
||||
And the coredump obtained via devlink in json format looks like,
|
||||
|
||||
.. code:: shell
|
||||
|
||||
$ devlink health dump show DEVICE reporter coredump -p -j
|
||||
{
|
||||
"Core Registers": {
|
||||
"segment": 1,
|
||||
"values": [ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 ]
|
||||
},
|
||||
"Test Logic Regs": {
|
||||
"segment": 2,
|
||||
"values": [ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 ]
|
||||
},
|
||||
"RMII Registers": {
|
||||
"segment": 3,
|
||||
"values": [ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 ]
|
||||
},
|
||||
...
|
||||
"Sem Registers": {
|
||||
"segment": 50,
|
||||
"values": [ 0,0,0,0 ]
|
||||
}
|
||||
}
|
||||
|
||||
When the module parameter qlge_force_coredump is set to be true, the MPI
|
||||
RISC reset before coredumping. So coredumping will much longer since
|
||||
devlink tool has to wait for 5 secs for the resetting to be
|
||||
finished.
|
Reference in New Issue
Block a user