mirror of
https://github.com/raspberrypi/linux.git
synced 2025-12-07 02:19:54 +00:00
Compare commits
123 Commits
raspberryp
...
rpi-4.4.y_
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
9faebbe763 | ||
|
|
9ebd23d0d6 | ||
|
|
1b2b2852a1 | ||
|
|
e8eb77737d | ||
|
|
cc06454a1e | ||
|
|
023918f2e1 | ||
|
|
ac7df4ae8d | ||
|
|
7fab9b21e8 | ||
|
|
ad1f00d816 | ||
|
|
620a9d4ee3 | ||
|
|
6b35288a11 | ||
|
|
4e0e14692d | ||
|
|
05afaaa4dd | ||
|
|
6422bafd14 | ||
|
|
e2849fbfe4 | ||
|
|
507592d755 | ||
|
|
1be1568e56 | ||
|
|
5b2848eb75 | ||
|
|
068540e13f | ||
|
|
d34ca1148c | ||
|
|
79ae9990cf | ||
|
|
badbf92edf | ||
|
|
41db721d52 | ||
|
|
0e476c9ecf | ||
|
|
415042d1da | ||
|
|
c9a59da6e7 | ||
|
|
28919fc00d | ||
|
|
e8446bbedb | ||
|
|
437b9dcefb | ||
|
|
7bbacf8203 | ||
|
|
d3d5b43018 | ||
|
|
76ee4b7e9f | ||
|
|
56592fd576 | ||
|
|
9ae652dc81 | ||
|
|
dd1b1b1546 | ||
|
|
5082e1acb2 | ||
|
|
e1438f9562 | ||
|
|
cbd271da90 | ||
|
|
12ed567687 | ||
|
|
d534702fb3 | ||
|
|
79e343ef25 | ||
|
|
c2f7616103 | ||
|
|
df7dc1fb9b | ||
|
|
3d4be7df94 | ||
|
|
ddfe39c8a9 | ||
|
|
e0ed1c3216 | ||
|
|
dd16a2cfa5 | ||
|
|
b3bda227d5 | ||
|
|
a20a026b9f | ||
|
|
4af2cecf2a | ||
|
|
a3bea9a4b1 | ||
|
|
c1048e71dd | ||
|
|
39fb5c4f15 | ||
|
|
ed47a8feec | ||
|
|
226b904307 | ||
|
|
be5c43c5c1 | ||
|
|
f7b2b02ea4 | ||
|
|
3dc2824fae | ||
|
|
b2d7484f2f | ||
|
|
e94bc6cf78 | ||
|
|
0d5fc8a3d0 | ||
|
|
e6190dc325 | ||
|
|
93015dc470 | ||
|
|
488b4f79ea | ||
|
|
e206874282 | ||
|
|
867106b1a5 | ||
|
|
c7dd7eb507 | ||
|
|
bdfea11c7e | ||
|
|
71353d5186 | ||
|
|
0e9006d877 | ||
|
|
f0fdfa22e9 | ||
|
|
a937e28752 | ||
|
|
12351479fe | ||
|
|
45c3b495d6 | ||
|
|
1338dd4bdb | ||
|
|
b7b2884283 | ||
|
|
1076dfc03d | ||
|
|
3dff4a73ee | ||
|
|
9719f5e37a | ||
|
|
6989c11dfa | ||
|
|
f5244cd4e4 | ||
|
|
d061f25545 | ||
|
|
4b816d828f | ||
|
|
628ac56421 | ||
|
|
c0dec6e58b | ||
|
|
74b4d7fb9f | ||
|
|
38aba70cbe | ||
|
|
cba6efda07 | ||
|
|
5032acc5f2 | ||
|
|
39228cc850 | ||
|
|
543484cb5a | ||
|
|
ef6ae61d5a | ||
|
|
9431f7866c | ||
|
|
4ee52c5dc8 | ||
|
|
45b5f6954e | ||
|
|
73644ed43f | ||
|
|
f2b8f65f29 | ||
|
|
189baf7660 | ||
|
|
8ad957e866 | ||
|
|
28e77e1a31 | ||
|
|
beda5586ef | ||
|
|
cb7d1d4664 | ||
|
|
5be6054802 | ||
|
|
16c4463eac | ||
|
|
ba7f4ebd24 | ||
|
|
c1429003b0 | ||
|
|
ccce163feb | ||
|
|
c58c685f75 | ||
|
|
ef041d1d9a | ||
|
|
11d4f3b520 | ||
|
|
c75394eff6 | ||
|
|
91f81406c2 | ||
|
|
a533be518f | ||
|
|
b0dca0a200 | ||
|
|
9bc9352084 | ||
|
|
edb71c377a | ||
|
|
b446c0613e | ||
|
|
4a60564f7a | ||
|
|
32c94360dd | ||
|
|
09b89dd4e1 | ||
|
|
1080f40d03 | ||
|
|
16af2003a8 | ||
|
|
b3ee605a6d |
@@ -1,4 +1,4 @@
|
||||
What /sys/bus/iio/devices/iio:deviceX/in_proximity_input
|
||||
What /sys/bus/iio/devices/iio:deviceX/in_proximity_raw
|
||||
Date: March 2014
|
||||
KernelVersion: 3.15
|
||||
Contact: Matt Ranostay <mranostay@gmail.com>
|
||||
|
||||
@@ -134,21 +134,19 @@ Description:
|
||||
enabled for the device. Developer can write y/Y/1 or n/N/0 to
|
||||
the file to enable/disable the feature.
|
||||
|
||||
What: /sys/bus/usb/devices/.../power/usb3_hardware_lpm_u1
|
||||
/sys/bus/usb/devices/.../power/usb3_hardware_lpm_u2
|
||||
Date: November 2015
|
||||
What: /sys/bus/usb/devices/.../power/usb3_hardware_lpm
|
||||
Date: June 2015
|
||||
Contact: Kevin Strasser <kevin.strasser@linux.intel.com>
|
||||
Lu Baolu <baolu.lu@linux.intel.com>
|
||||
Description:
|
||||
If CONFIG_PM is set and a USB 3.0 lpm-capable device is plugged
|
||||
in to a xHCI host which supports link PM, it will check if U1
|
||||
and U2 exit latencies have been set in the BOS descriptor; if
|
||||
the check is passed and the host supports USB3 hardware LPM,
|
||||
the check is is passed and the host supports USB3 hardware LPM,
|
||||
USB3 hardware LPM will be enabled for the device and the USB
|
||||
device directory will contain two files named
|
||||
power/usb3_hardware_lpm_u1 and power/usb3_hardware_lpm_u2. These
|
||||
files hold a string value (enable or disable) indicating whether
|
||||
or not USB3 hardware LPM U1 or U2 is enabled for the device.
|
||||
device directory will contain a file named
|
||||
power/usb3_hardware_lpm. The file holds a string value (enable
|
||||
or disable) indicating whether or not USB3 hardware LPM is
|
||||
enabled for the device.
|
||||
|
||||
What: /sys/bus/usb/devices/.../removable
|
||||
Date: February 2012
|
||||
|
||||
@@ -23,7 +23,6 @@ Optional properties:
|
||||
during suspend.
|
||||
- ti,no-reset-on-init: When present, the module should not be reset at init
|
||||
- ti,no-idle-on-init: When present, the module should not be idled at init
|
||||
- ti,no-idle: When present, the module is never allowed to idle.
|
||||
|
||||
Example:
|
||||
|
||||
|
||||
@@ -30,10 +30,6 @@ Optional properties:
|
||||
- target-supply : regulator for SATA target power
|
||||
- phys : reference to the SATA PHY node
|
||||
- phy-names : must be "sata-phy"
|
||||
- ports-implemented : Mask that indicates which ports that the HBA supports
|
||||
are available for software to use. Useful if PORTS_IMPL
|
||||
is not programmed by the BIOS, which is true with
|
||||
some embedded SOC's.
|
||||
|
||||
Required properties when using sub-nodes:
|
||||
- #address-cells : number of cells to encode an address
|
||||
|
||||
@@ -1,31 +0,0 @@
|
||||
Broadcom BCM2835 auxiliary peripheral support
|
||||
|
||||
This binding uses the common clock binding:
|
||||
Documentation/devicetree/bindings/clock/clock-bindings.txt
|
||||
|
||||
The auxiliary peripherals (UART, SPI1, and SPI2) have a small register
|
||||
area controlling clock gating to the peripherals, and providing an IRQ
|
||||
status register.
|
||||
|
||||
Required properties:
|
||||
- compatible: Should be "brcm,bcm2835-aux"
|
||||
- #clock-cells: Should be <1>. The permitted clock-specifier values can be
|
||||
found in include/dt-bindings/clock/bcm2835-aux.h
|
||||
- reg: Specifies base physical address and size of the registers
|
||||
- clocks: The parent clock phandle
|
||||
|
||||
Example:
|
||||
|
||||
clocks: cprman@7e101000 {
|
||||
compatible = "brcm,bcm2835-cprman";
|
||||
#clock-cells = <1>;
|
||||
reg = <0x7e101000 0x2000>;
|
||||
clocks = <&clk_osc>;
|
||||
};
|
||||
|
||||
aux: aux@0x7e215004 {
|
||||
compatible = "brcm,bcm2835-aux";
|
||||
#clock-cells = <1>;
|
||||
reg = <0x7e215000 0x8>;
|
||||
clocks = <&clocks BCM2835_CLOCK_VPU>;
|
||||
};
|
||||
@@ -16,17 +16,7 @@ Required properties:
|
||||
- #clock-cells: Should be <1>. The permitted clock-specifier values can be
|
||||
found in include/dt-bindings/clock/bcm2835.h
|
||||
- reg: Specifies base physical address and size of the registers
|
||||
- clocks: phandles to the parent clocks used as input to the module, in
|
||||
the following order:
|
||||
|
||||
- External oscillator
|
||||
- DSI1 byte clock
|
||||
- DSI1 DDR2 clock
|
||||
- DSI1 DDR clock
|
||||
|
||||
Only external oscillator is required. The DSI clocks may
|
||||
not be present, in which case their children will be
|
||||
unusable.
|
||||
- clocks: The external oscillator clock phandle
|
||||
|
||||
Example:
|
||||
|
||||
|
||||
@@ -94,7 +94,6 @@ clocks and IDs.
|
||||
csi_sel 79
|
||||
iim_gate 80
|
||||
gpu2d_gate 81
|
||||
ckli_gate 82
|
||||
|
||||
Examples:
|
||||
|
||||
|
||||
@@ -35,22 +35,6 @@ Optional properties for HDMI:
|
||||
as an interrupt/status bit in the HDMI controller
|
||||
itself). See bindings/pinctrl/brcm,bcm2835-gpio.txt
|
||||
|
||||
Required properties for DPI:
|
||||
- compatible: Should be "brcm,bcm2835-dpi"
|
||||
- reg: Physical base address and length of the registers
|
||||
- clocks: a) core: The core clock the unit runs on
|
||||
b) pixel: The pixel clock that feeds the pixelvalve
|
||||
- port: Port node with a single endpoint connecting to the panel
|
||||
device, as defined in [1]
|
||||
|
||||
Required properties for V3D:
|
||||
- compatible: Should be "brcm,bcm2835-v3d"
|
||||
- reg: Physical base address and length of the V3D's registers
|
||||
- interrupts: The interrupt number
|
||||
See bindings/interrupt-controller/brcm,bcm2835-armctrl-ic.txt
|
||||
|
||||
[1] Documentation/devicetree/bindings/media/video-interfaces.txt
|
||||
|
||||
Example:
|
||||
pixelvalve@7e807000 {
|
||||
compatible = "brcm,bcm2835-pixelvalve2";
|
||||
@@ -76,38 +60,6 @@ hdmi: hdmi@7e902000 {
|
||||
clock-names = "pixel", "hdmi";
|
||||
};
|
||||
|
||||
dpi: dpi@7e208000 {
|
||||
compatible = "brcm,bcm2835-dpi";
|
||||
reg = <0x7e208000 0x8c>;
|
||||
clocks = <&clocks BCM2835_CLOCK_VPU>,
|
||||
<&clocks BCM2835_CLOCK_DPI>;
|
||||
clock-names = "core", "pixel";
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
port {
|
||||
dpi_out: endpoint@0 {
|
||||
remote-endpoint = <&panel_in>;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
v3d: v3d@7ec00000 {
|
||||
compatible = "brcm,bcm2835-v3d";
|
||||
reg = <0x7ec00000 0x1000>;
|
||||
interrupts = <1 10>;
|
||||
};
|
||||
|
||||
vc4: gpu {
|
||||
compatible = "brcm,bcm2835-vc4";
|
||||
};
|
||||
|
||||
panel: panel {
|
||||
compatible = "ontat,yx700wv03", "simple-panel";
|
||||
|
||||
port {
|
||||
panel_in: endpoint {
|
||||
remote-endpoint = <&dpi_out>;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
@@ -1,7 +0,0 @@
|
||||
On Tat Industrial Company 7" DPI TFT panel.
|
||||
|
||||
Required properties:
|
||||
- compatible: should be "ontat,yx700wv03"
|
||||
|
||||
This binding is compatible with the simple-panel binding, which is specified
|
||||
in simple-panel.txt in this directory.
|
||||
@@ -22,7 +22,8 @@ Required properties:
|
||||
Optional properties:
|
||||
- ti,hwmods: Name of the hwmods associated to the eDMA CC
|
||||
- ti,edma-memcpy-channels: List of channels allocated to be used for memcpy, iow
|
||||
these channels will be SW triggered channels. See example.
|
||||
these channels will be SW triggered channels. The list must
|
||||
contain 16 bits numbers, see example.
|
||||
- ti,edma-reserved-slot-ranges: PaRAM slot ranges which should not be used by
|
||||
the driver, they are allocated to be used by for example the
|
||||
DSP. See example.
|
||||
@@ -55,9 +56,10 @@ edma: edma@49000000 {
|
||||
ti,tptcs = <&edma_tptc0 7>, <&edma_tptc1 7>, <&edma_tptc2 0>;
|
||||
|
||||
/* Channel 20 and 21 is allocated for memcpy */
|
||||
ti,edma-memcpy-channels = <20 21>;
|
||||
/* The following PaRAM slots are reserved: 35-44 and 100-109 */
|
||||
ti,edma-reserved-slot-ranges = <35 10>, <100 10>;
|
||||
ti,edma-memcpy-channels = /bits/ 16 <20 21>;
|
||||
/* The following PaRAM slots are reserved: 35-45 and 100-110 */
|
||||
ti,edma-reserved-slot-ranges = /bits/ 16 <35 10>,
|
||||
/bits/ 16 <100 10>;
|
||||
};
|
||||
|
||||
edma_tptc0: tptc@49800000 {
|
||||
|
||||
@@ -12,7 +12,7 @@ Each key is represented as a sub-node of "allwinner,sun4i-a10-lradc-keys":
|
||||
Required subnode-properties:
|
||||
- label: Descriptive name of the key.
|
||||
- linux,code: Keycode to emit.
|
||||
- channel: Channel this key is attached to, must be 0 or 1.
|
||||
- channel: Channel this key is attached to, mut be 0 or 1.
|
||||
- voltage: Voltage in µV at lradc input when this key is pressed.
|
||||
|
||||
Example:
|
||||
|
||||
@@ -6,9 +6,7 @@ used for what purposes, but which don't use an on-flash partition table such
|
||||
as RedBoot.
|
||||
|
||||
The partition table should be a subnode of the mtd node and should be named
|
||||
'partitions'. This node should have the following property:
|
||||
- compatible : (required) must be "fixed-partitions"
|
||||
Partitions are then defined in subnodes of the partitions node.
|
||||
'partitions'. Partitions are defined in subnodes of the partitions node.
|
||||
|
||||
For backwards compatibility partitions as direct subnodes of the mtd device are
|
||||
supported. This use is discouraged.
|
||||
@@ -38,7 +36,6 @@ Examples:
|
||||
|
||||
flash@0 {
|
||||
partitions {
|
||||
compatible = "fixed-partitions";
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
|
||||
@@ -56,7 +53,6 @@ flash@0 {
|
||||
|
||||
flash@1 {
|
||||
partitions {
|
||||
compatible = "fixed-partitions";
|
||||
#address-cells = <1>;
|
||||
#size-cells = <2>;
|
||||
|
||||
@@ -70,7 +66,6 @@ flash@1 {
|
||||
|
||||
flash@2 {
|
||||
partitions {
|
||||
compatible = "fixed-partitions";
|
||||
#address-cells = <2>;
|
||||
#size-cells = <2>;
|
||||
|
||||
|
||||
@@ -40,18 +40,18 @@ Optional properties:
|
||||
|
||||
Slave Properties:
|
||||
Required properties:
|
||||
- phy_id : Specifies slave phy id
|
||||
- phy-mode : See ethernet.txt file in the same directory
|
||||
|
||||
Optional properties:
|
||||
- dual_emac_res_vlan : Specifies VID to be used to segregate the ports
|
||||
- mac-address : See ethernet.txt file in the same directory
|
||||
- phy_id : Specifies slave phy id
|
||||
- phy-handle : See ethernet.txt file in the same directory
|
||||
|
||||
Slave sub-nodes:
|
||||
- fixed-link : See fixed-link.txt file in the same directory
|
||||
Either the property phy_id, or the sub-node
|
||||
fixed-link can be specified
|
||||
Either the properties phy_id and phy-mode,
|
||||
or the sub-node fixed-link can be specified
|
||||
|
||||
Note: "ti,hwmods" field is used to fetch the base address and irq
|
||||
resources from TI, omap hwmod data base during device registration.
|
||||
|
||||
@@ -1,59 +0,0 @@
|
||||
* Microchip ENC28J60
|
||||
|
||||
This is a standalone 10 MBit ethernet controller with SPI interface.
|
||||
|
||||
For each device connected to a SPI bus, define a child node within
|
||||
the SPI master node.
|
||||
|
||||
Required properties:
|
||||
- compatible: Should be "microchip,enc28j60"
|
||||
- reg: Specify the SPI chip select the ENC28J60 is wired to
|
||||
- interrupt-parent: Specify the phandle of the source interrupt, see interrupt
|
||||
binding documentation for details. Usually this is the GPIO bank
|
||||
the interrupt line is wired to.
|
||||
- interrupts: Specify the interrupt index within the interrupt controller (referred
|
||||
to above in interrupt-parent) and interrupt type. The ENC28J60 natively
|
||||
generates falling edge interrupts, however, additional board logic
|
||||
might invert the signal.
|
||||
- pinctrl-names: List of assigned state names, see pinctrl binding documentation.
|
||||
- pinctrl-0: List of phandles to configure the GPIO pin used as interrupt line,
|
||||
see also generic and your platform specific pinctrl binding
|
||||
documentation.
|
||||
|
||||
Optional properties:
|
||||
- spi-max-frequency: Maximum frequency of the SPI bus when accessing the ENC28J60.
|
||||
According to the ENC28J80 datasheet, the chip allows a maximum of 20 MHz, however,
|
||||
board designs may need to limit this value.
|
||||
- local-mac-address: See ethernet.txt in the same directory.
|
||||
|
||||
|
||||
Example (for NXP i.MX28 with pin control stuff for GPIO irq):
|
||||
|
||||
ssp2: ssp@80014000 {
|
||||
compatible = "fsl,imx28-spi";
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&spi2_pins_b &spi2_sck_cfg>;
|
||||
status = "okay";
|
||||
|
||||
enc28j60: ethernet@0 {
|
||||
compatible = "microchip,enc28j60";
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&enc28j60_pins>;
|
||||
reg = <0>;
|
||||
interrupt-parent = <&gpio3>;
|
||||
interrupts = <3 IRQ_TYPE_EDGE_FALLING>;
|
||||
spi-max-frequency = <12000000>;
|
||||
};
|
||||
};
|
||||
|
||||
pinctrl@80018000 {
|
||||
enc28j60_pins: enc28j60_pins@0 {
|
||||
reg = <0>;
|
||||
fsl,pinmux-ids = <
|
||||
MX28_PAD_AUART0_RTS__GPIO_3_3 /* Interrupt */
|
||||
>;
|
||||
fsl,drive-strength = <MXS_DRIVE_4mA>;
|
||||
fsl,voltage = <MXS_VOLTAGE_HIGH>;
|
||||
fsl,pull-up = <MXS_PULL_DISABLE>;
|
||||
};
|
||||
};
|
||||
@@ -134,12 +134,12 @@ mfio80 ddr_debug, mips_trace_data, mips_debug
|
||||
mfio81 dreq0, mips_trace_data, eth_debug
|
||||
mfio82 dreq1, mips_trace_data, eth_debug
|
||||
mfio83 mips_pll_lock, mips_trace_data, usb_debug
|
||||
mfio84 audio_pll_lock, mips_trace_data, usb_debug
|
||||
mfio85 rpu_v_pll_lock, mips_trace_data, sdhost_debug
|
||||
mfio86 rpu_l_pll_lock, mips_trace_data, sdhost_debug
|
||||
mfio87 sys_pll_lock, dreq2, socif_debug
|
||||
mfio88 wifi_pll_lock, dreq3, socif_debug
|
||||
mfio89 bt_pll_lock, dreq4, dreq5
|
||||
mfio84 sys_pll_lock, mips_trace_data, usb_debug
|
||||
mfio85 wifi_pll_lock, mips_trace_data, sdhost_debug
|
||||
mfio86 bt_pll_lock, mips_trace_data, sdhost_debug
|
||||
mfio87 rpu_v_pll_lock, dreq2, socif_debug
|
||||
mfio88 rpu_l_pll_lock, dreq3, socif_debug
|
||||
mfio89 audio_pll_lock, dreq4, dreq5
|
||||
tck
|
||||
trstn
|
||||
tdi
|
||||
|
||||
@@ -1,31 +0,0 @@
|
||||
Howto use the configfs overlay interface.
|
||||
|
||||
A device-tree configfs entry is created in /config/device-tree/overlays
|
||||
and and it is manipulated using standard file system I/O.
|
||||
Note that this is a debug level interface, for use by developers and
|
||||
not necessarily something accessed by normal users due to the
|
||||
security implications of having direct access to the kernel's device tree.
|
||||
|
||||
* To create an overlay you mkdir the directory:
|
||||
|
||||
# mkdir /config/device-tree/overlays/foo
|
||||
|
||||
* Either you echo the overlay firmware file to the path property file.
|
||||
|
||||
# echo foo.dtbo >/config/device-tree/overlays/foo/path
|
||||
|
||||
* Or you cat the contents of the overlay to the dtbo file
|
||||
|
||||
# cat foo.dtbo >/config/device-tree/overlays/foo/dtbo
|
||||
|
||||
The overlay file will be applied, and devices will be created/destroyed
|
||||
as required.
|
||||
|
||||
To remove it simply rmdir the directory.
|
||||
|
||||
# rmdir /config/device-tree/overlays/foo
|
||||
|
||||
The rationalle of the dual interface (firmware & direct copy) is that each is
|
||||
better suited to different use patterns. The firmware interface is what's
|
||||
intended to be used by hardware managers in the kernel, while the copy interface
|
||||
make sense for developers (since it avoids problems with namespaces).
|
||||
@@ -51,27 +51,15 @@ configfs tree is always there, whether mounted on /config or not.
|
||||
An item is created via mkdir(2). The item's attributes will also
|
||||
appear at this time. readdir(3) can determine what the attributes are,
|
||||
read(2) can query their default values, and write(2) can store new
|
||||
values. Don't mix more than one attribute in one attribute file.
|
||||
values. Like sysfs, attributes should be ASCII text files, preferably
|
||||
with only one value per file. The same efficiency caveats from sysfs
|
||||
apply. Don't mix more than one attribute in one attribute file.
|
||||
|
||||
There are two types of configfs attributes:
|
||||
|
||||
* Normal attributes, which similar to sysfs attributes, are small ASCII text
|
||||
files, with a maximum size of one page (PAGE_SIZE, 4096 on i386). Preferably
|
||||
only one value per file should be used, and the same caveats from sysfs apply.
|
||||
Configfs expects write(2) to store the entire buffer at once. When writing to
|
||||
normal configfs attributes, userspace processes should first read the entire
|
||||
file, modify the portions they wish to change, and then write the entire
|
||||
buffer back.
|
||||
|
||||
* Binary attributes, which are somewhat similar to sysfs binary attributes,
|
||||
but with a few slight changes to semantics. The PAGE_SIZE limitation does not
|
||||
apply, but the whole binary item must fit in single kernel vmalloc'ed buffer.
|
||||
The write(2) calls from user space are buffered, and the attributes'
|
||||
write_bin_attribute method will be invoked on the final close, therefore it is
|
||||
imperative for user-space to check the return code of close(2) in order to
|
||||
verify that the operation finished successfully.
|
||||
To avoid a malicious user OOMing the kernel, there's a per-binary attribute
|
||||
maximum buffer value.
|
||||
Like sysfs, configfs expects write(2) to store the entire buffer at
|
||||
once. When writing to configfs attributes, userspace processes should
|
||||
first read the entire file, modify the portions they wish to change, and
|
||||
then write the entire buffer back. Attribute files have a maximum size
|
||||
of one page (PAGE_SIZE, 4096 on i386).
|
||||
|
||||
When an item needs to be destroyed, remove it with rmdir(2). An
|
||||
item cannot be destroyed if any other item has a link to it (via
|
||||
@@ -183,7 +171,6 @@ among other things. For that, it needs a type.
|
||||
struct configfs_item_operations *ct_item_ops;
|
||||
struct configfs_group_operations *ct_group_ops;
|
||||
struct configfs_attribute **ct_attrs;
|
||||
struct configfs_bin_attribute **ct_bin_attrs;
|
||||
};
|
||||
|
||||
The most basic function of a config_item_type is to define what
|
||||
@@ -214,32 +201,6 @@ be called whenever userspace asks for a read(2) on the attribute. If an
|
||||
attribute is writable and provides a ->store method, that method will be
|
||||
be called whenever userspace asks for a write(2) on the attribute.
|
||||
|
||||
[struct configfs_bin_attribute]
|
||||
|
||||
struct configfs_attribute {
|
||||
struct configfs_attribute cb_attr;
|
||||
void *cb_private;
|
||||
size_t cb_max_size;
|
||||
};
|
||||
|
||||
The binary attribute is used when the one needs to use binary blob to
|
||||
appear as the contents of a file in the item's configfs directory.
|
||||
To do so add the binary attribute to the NULL-terminated array
|
||||
config_item_type->ct_bin_attrs, and the item appears in configfs, the
|
||||
attribute file will appear with the configfs_bin_attribute->cb_attr.ca_name
|
||||
filename. configfs_bin_attribute->cb_attr.ca_mode specifies the file
|
||||
permissions.
|
||||
The cb_private member is provided for use by the driver, while the
|
||||
cb_max_size member specifies the maximum amount of vmalloc buffer
|
||||
to be used.
|
||||
|
||||
If binary attribute is readable and the config_item provides a
|
||||
ct_item_ops->read_bin_attribute() method, that method will be called
|
||||
whenever userspace asks for a read(2) on the attribute. The converse
|
||||
will happen for write(2). The reads/writes are bufferred so only a
|
||||
single read/write will occur; the attributes' need not concern itself
|
||||
with it.
|
||||
|
||||
[struct config_group]
|
||||
|
||||
A config_item cannot live in a vacuum. The only way one can be created
|
||||
|
||||
@@ -14,10 +14,3 @@ filesystem.
|
||||
efivarfs is typically mounted like this,
|
||||
|
||||
mount -t efivarfs none /sys/firmware/efi/efivars
|
||||
|
||||
Due to the presence of numerous firmware bugs where removing non-standard
|
||||
UEFI variables causes the system firmware to fail to POST, efivarfs
|
||||
files that are not well-known standardized variables are created
|
||||
as immutable files. This doesn't prevent removal - "chattr -i" will work -
|
||||
but it does prevent this kind of failure from being accomplished
|
||||
accidentally.
|
||||
|
||||
@@ -346,7 +346,7 @@ address perms offset dev inode pathname
|
||||
a7cb1000-a7cb2000 ---p 00000000 00:00 0
|
||||
a7cb2000-a7eb2000 rw-p 00000000 00:00 0
|
||||
a7eb2000-a7eb3000 ---p 00000000 00:00 0
|
||||
a7eb3000-a7ed5000 rw-p 00000000 00:00 0
|
||||
a7eb3000-a7ed5000 rw-p 00000000 00:00 0 [stack:1001]
|
||||
a7ed5000-a8008000 r-xp 00000000 03:00 4222 /lib/libc.so.6
|
||||
a8008000-a800a000 r--p 00133000 03:00 4222 /lib/libc.so.6
|
||||
a800a000-a800b000 rw-p 00135000 03:00 4222 /lib/libc.so.6
|
||||
@@ -378,6 +378,7 @@ is not associated with a file:
|
||||
|
||||
[heap] = the heap of the program
|
||||
[stack] = the stack of the main process
|
||||
[stack:1001] = the stack of the thread with tid 1001
|
||||
[vdso] = the "virtual dynamic shared object",
|
||||
the kernel system call handler
|
||||
|
||||
@@ -385,8 +386,10 @@ is not associated with a file:
|
||||
|
||||
The /proc/PID/task/TID/maps is a view of the virtual memory from the viewpoint
|
||||
of the individual tasks of a process. In this file you will see a mapping marked
|
||||
as [stack] if that task sees it as a stack. Hence, for the example above, the
|
||||
task-level map, i.e. /proc/PID/task/TID/maps for thread 1001 will look like this:
|
||||
as [stack] if that task sees it as a stack. This is a key difference from the
|
||||
content of /proc/PID/maps, where you will see all mappings that are being used
|
||||
as stack by all of those tasks. Hence, for the example above, the task-level
|
||||
map, i.e. /proc/PID/task/TID/maps for thread 1001 will look like this:
|
||||
|
||||
08048000-08049000 r-xp 00000000 03:00 8312 /opt/test
|
||||
08049000-0804a000 rw-p 00001000 03:00 8312 /opt/test
|
||||
|
||||
@@ -3928,8 +3928,6 @@ bytes respectively. Such letter suffixes can also be entirely omitted.
|
||||
sector if the number is odd);
|
||||
i = IGNORE_DEVICE (don't bind to this
|
||||
device);
|
||||
j = NO_REPORT_LUNS (don't use report luns
|
||||
command, uas only);
|
||||
l = NOT_LOCKABLE (don't try to lock and
|
||||
unlock ejectable media);
|
||||
m = MAX_SECTORS_64 (don't transfer more
|
||||
|
||||
@@ -271,9 +271,3 @@ Since the private key is used to sign modules, viruses and malware could use
|
||||
the private key to sign modules and compromise the operating system. The
|
||||
private key must be either destroyed or moved to a secure location and not kept
|
||||
in the root node of the kernel source tree.
|
||||
|
||||
If you use the same private key to sign modules for multiple kernel
|
||||
configurations, you must ensure that the module version information is
|
||||
sufficient to prevent loading a module into a different kernel. Either
|
||||
set CONFIG_MODVERSIONS=y or ensure that each configuration has a different
|
||||
kernel release string by changing EXTRAVERSION or CONFIG_LOCALVERSION.
|
||||
|
||||
@@ -181,3 +181,17 @@ For general information, go to the Intel support website at:
|
||||
If an issue is identified with the released source code on the supported
|
||||
kernel with a supported adapter, email the specific information related to the
|
||||
issue to e1000-devel@lists.sourceforge.net.
|
||||
|
||||
|
||||
License
|
||||
=======
|
||||
|
||||
This software program is released under the terms of a license agreement
|
||||
between you ('Licensee') and Intel. Do not use or load this software or any
|
||||
associated materials (collectively, the 'Software') until you have carefully
|
||||
read the full terms and conditions of the file COPYING located in this software
|
||||
package. By loading or using the Software, you agree to the terms of this
|
||||
Agreement. If you do not agree with the terms of this Agreement, do not install
|
||||
or use the Software.
|
||||
|
||||
* Other names and brands may be claimed as the property of others.
|
||||
|
||||
@@ -263,23 +263,19 @@ scmd->allowed.
|
||||
|
||||
3. scmd recovered
|
||||
ACTION: scsi_eh_finish_cmd() is invoked to EH-finish scmd
|
||||
- shost->host_failed--
|
||||
- clear scmd->eh_eflags
|
||||
- scsi_setup_cmd_retry()
|
||||
- move from local eh_work_q to local eh_done_q
|
||||
LOCKING: none
|
||||
CONCURRENCY: at most one thread per separate eh_work_q to
|
||||
keep queue manipulation lockless
|
||||
|
||||
4. EH completes
|
||||
ACTION: scsi_eh_flush_done_q() retries scmds or notifies upper
|
||||
layer of failure. May be called concurrently but must have
|
||||
a no more than one thread per separate eh_work_q to
|
||||
manipulate the queue locklessly
|
||||
layer of failure.
|
||||
- scmd is removed from eh_done_q and scmd->eh_entry is cleared
|
||||
- if retry is necessary, scmd is requeued using
|
||||
scsi_queue_insert()
|
||||
- otherwise, scsi_finish_command() is invoked for scmd
|
||||
- zero shost->host_failed
|
||||
LOCKING: queue or finish function performs appropriate locking
|
||||
|
||||
|
||||
|
||||
@@ -213,6 +213,9 @@ TTY_IO_ERROR If set, causes all subsequent userspace read/write
|
||||
|
||||
TTY_OTHER_CLOSED Device is a pty and the other side has closed.
|
||||
|
||||
TTY_OTHER_DONE Device is a pty and the other side has closed and
|
||||
all pending input processing has been completed.
|
||||
|
||||
TTY_NO_WRITE_SPLIT Prevent driver from splitting up writes into
|
||||
smaller chunks.
|
||||
|
||||
|
||||
@@ -32,8 +32,6 @@ Currently, these files are in /proc/sys/fs:
|
||||
- nr_open
|
||||
- overflowuid
|
||||
- overflowgid
|
||||
- pipe-user-pages-hard
|
||||
- pipe-user-pages-soft
|
||||
- protected_hardlinks
|
||||
- protected_symlinks
|
||||
- suid_dumpable
|
||||
@@ -161,27 +159,6 @@ The default is 65534.
|
||||
|
||||
==============================================================
|
||||
|
||||
pipe-user-pages-hard:
|
||||
|
||||
Maximum total number of pages a non-privileged user may allocate for pipes.
|
||||
Once this limit is reached, no new pipes may be allocated until usage goes
|
||||
below the limit again. When set to 0, no limit is applied, which is the default
|
||||
setting.
|
||||
|
||||
==============================================================
|
||||
|
||||
pipe-user-pages-soft:
|
||||
|
||||
Maximum total number of pages a non-privileged user may allocate for pipes
|
||||
before the pipe size gets limited to a single page. Once this limit is reached,
|
||||
new pipes will be limited to a single page in size for this user in order to
|
||||
limit total memory usage, and trying to increase them using fcntl() will be
|
||||
denied until usage goes below the limit again. The default value allows to
|
||||
allocate up to 1024 pipes at their default size. When set to 0, no limit is
|
||||
applied.
|
||||
|
||||
==============================================================
|
||||
|
||||
protected_hardlinks:
|
||||
|
||||
A long-standing class of security issues is the hardlink-based
|
||||
|
||||
@@ -537,18 +537,17 @@ relevant attribute files are usb2_hardware_lpm and usb3_hardware_lpm.
|
||||
can write y/Y/1 or n/N/0 to the file to enable/disable
|
||||
USB2 hardware LPM manually. This is for test purpose mainly.
|
||||
|
||||
power/usb3_hardware_lpm_u1
|
||||
power/usb3_hardware_lpm_u2
|
||||
power/usb3_hardware_lpm
|
||||
|
||||
When a USB 3.0 lpm-capable device is plugged in to a
|
||||
xHCI host which supports link PM, it will check if U1
|
||||
and U2 exit latencies have been set in the BOS
|
||||
descriptor; if the check is is passed and the host
|
||||
supports USB3 hardware LPM, USB3 hardware LPM will be
|
||||
enabled for the device and these files will be created.
|
||||
The files hold a string value (enable or disable)
|
||||
indicating whether or not USB3 hardware LPM U1 or U2
|
||||
is enabled for the device.
|
||||
enabled for the device and this file will be created.
|
||||
The file holds a string value (enable or disable)
|
||||
indicating whether or not USB3 hardware LPM is
|
||||
enabled for the device.
|
||||
|
||||
USB Port Power Control
|
||||
----------------------
|
||||
|
||||
@@ -358,8 +358,7 @@ In the first case there are two additional complications:
|
||||
- if CR4.SMEP is enabled: since we've turned the page into a kernel page,
|
||||
the kernel may now execute it. We handle this by also setting spte.nx.
|
||||
If we get a user fetch or read fault, we'll change spte.u=1 and
|
||||
spte.nx=gpte.nx back. For this to work, KVM forces EFER.NX to 1 when
|
||||
shadow paging is in use.
|
||||
spte.nx=gpte.nx back.
|
||||
- if CR4.SMAP is disabled: since the page has been changed to a kernel
|
||||
page, it can not be reused when CR4.SMAP is enabled. We set
|
||||
CR4.SMAP && !CR0.WP into shadow page's role to avoid this case. Note,
|
||||
|
||||
@@ -196,35 +196,3 @@ Another, more verbose way of getting PAT related debug messages is with
|
||||
"debugpat" boot parameter. With this parameter, various debug messages are
|
||||
printed to dmesg log.
|
||||
|
||||
PAT Initialization
|
||||
------------------
|
||||
|
||||
The following table describes how PAT is initialized under various
|
||||
configurations. The PAT MSR must be updated by Linux in order to support WC
|
||||
and WT attributes. Otherwise, the PAT MSR has the value programmed in it
|
||||
by the firmware. Note, Xen enables WC attribute in the PAT MSR for guests.
|
||||
|
||||
MTRR PAT Call Sequence PAT State PAT MSR
|
||||
=========================================================
|
||||
E E MTRR -> PAT init Enabled OS
|
||||
E D MTRR -> PAT init Disabled -
|
||||
D E MTRR -> PAT disable Disabled BIOS
|
||||
D D MTRR -> PAT disable Disabled -
|
||||
- np/E PAT -> PAT disable Disabled BIOS
|
||||
- np/D PAT -> PAT disable Disabled -
|
||||
E !P/E MTRR -> PAT init Disabled BIOS
|
||||
D !P/E MTRR -> PAT disable Disabled BIOS
|
||||
!M !P/E MTRR stub -> PAT disable Disabled BIOS
|
||||
|
||||
Legend
|
||||
------------------------------------------------
|
||||
E Feature enabled in CPU
|
||||
D Feature disabled/unsupported in CPU
|
||||
np "nopat" boot option specified
|
||||
!P CONFIG_X86_PAT option unset
|
||||
!M CONFIG_MTRR option unset
|
||||
Enabled PAT state set to enabled
|
||||
Disabled PAT state set to disabled
|
||||
OS PAT initializes PAT MSR with OS setting
|
||||
BIOS PAT keeps PAT MSR with BIOS setting
|
||||
|
||||
|
||||
121
MAINTAINERS
121
MAINTAINERS
@@ -230,13 +230,13 @@ F: kernel/sys_ni.c
|
||||
|
||||
ABIT UGURU 1,2 HARDWARE MONITOR DRIVER
|
||||
M: Hans de Goede <hdegoede@redhat.com>
|
||||
L: linux-hwmon@vger.kernel.org
|
||||
L: lm-sensors@lm-sensors.org
|
||||
S: Maintained
|
||||
F: drivers/hwmon/abituguru.c
|
||||
|
||||
ABIT UGURU 3 HARDWARE MONITOR DRIVER
|
||||
M: Alistair John Strachan <alistair@devzero.co.uk>
|
||||
L: linux-hwmon@vger.kernel.org
|
||||
L: lm-sensors@lm-sensors.org
|
||||
S: Maintained
|
||||
F: drivers/hwmon/abituguru3.c
|
||||
|
||||
@@ -373,14 +373,14 @@ S: Maintained
|
||||
|
||||
ADM1025 HARDWARE MONITOR DRIVER
|
||||
M: Jean Delvare <jdelvare@suse.com>
|
||||
L: linux-hwmon@vger.kernel.org
|
||||
L: lm-sensors@lm-sensors.org
|
||||
S: Maintained
|
||||
F: Documentation/hwmon/adm1025
|
||||
F: drivers/hwmon/adm1025.c
|
||||
|
||||
ADM1029 HARDWARE MONITOR DRIVER
|
||||
M: Corentin Labbe <clabbe.montjoie@gmail.com>
|
||||
L: linux-hwmon@vger.kernel.org
|
||||
L: lm-sensors@lm-sensors.org
|
||||
S: Maintained
|
||||
F: drivers/hwmon/adm1029.c
|
||||
|
||||
@@ -425,7 +425,7 @@ F: drivers/video/backlight/adp8860_bl.c
|
||||
|
||||
ADS1015 HARDWARE MONITOR DRIVER
|
||||
M: Dirk Eibach <eibach@gdsys.de>
|
||||
L: linux-hwmon@vger.kernel.org
|
||||
L: lm-sensors@lm-sensors.org
|
||||
S: Maintained
|
||||
F: Documentation/hwmon/ads1015
|
||||
F: drivers/hwmon/ads1015.c
|
||||
@@ -438,7 +438,7 @@ F: drivers/macintosh/therm_adt746x.c
|
||||
|
||||
ADT7475 HARDWARE MONITOR DRIVER
|
||||
M: Jean Delvare <jdelvare@suse.com>
|
||||
L: linux-hwmon@vger.kernel.org
|
||||
L: lm-sensors@lm-sensors.org
|
||||
S: Maintained
|
||||
F: Documentation/hwmon/adt7475
|
||||
F: drivers/hwmon/adt7475.c
|
||||
@@ -615,7 +615,7 @@ F: include/linux/ccp.h
|
||||
|
||||
AMD FAM15H PROCESSOR POWER MONITORING DRIVER
|
||||
M: Andreas Herrmann <herrmann.der.user@googlemail.com>
|
||||
L: linux-hwmon@vger.kernel.org
|
||||
L: lm-sensors@lm-sensors.org
|
||||
S: Maintained
|
||||
F: Documentation/hwmon/fam15h_power
|
||||
F: drivers/hwmon/fam15h_power.c
|
||||
@@ -779,7 +779,7 @@ F: drivers/input/mouse/bcm5974.c
|
||||
|
||||
APPLE SMC DRIVER
|
||||
M: Henrik Rydberg <rydberg@bitmath.org>
|
||||
L: linux-hwmon@vger.kernel.org
|
||||
L: lm-sensors@lm-sensors.org
|
||||
S: Odd fixes
|
||||
F: drivers/hwmon/applesmc.c
|
||||
|
||||
@@ -1777,7 +1777,7 @@ F: include/media/as3645a.h
|
||||
|
||||
ASC7621 HARDWARE MONITOR DRIVER
|
||||
M: George Joseph <george.joseph@fairview5.com>
|
||||
L: linux-hwmon@vger.kernel.org
|
||||
L: lm-sensors@lm-sensors.org
|
||||
S: Maintained
|
||||
F: Documentation/hwmon/asc7621
|
||||
F: drivers/hwmon/asc7621.c
|
||||
@@ -1864,7 +1864,7 @@ F: drivers/net/wireless/ath/carl9170/
|
||||
|
||||
ATK0110 HWMON DRIVER
|
||||
M: Luca Tettamanti <kronos.it@gmail.com>
|
||||
L: linux-hwmon@vger.kernel.org
|
||||
L: lm-sensors@lm-sensors.org
|
||||
S: Maintained
|
||||
F: drivers/hwmon/asus_atk0110.c
|
||||
|
||||
@@ -2984,7 +2984,7 @@ F: mm/swap_cgroup.c
|
||||
|
||||
CORETEMP HARDWARE MONITORING DRIVER
|
||||
M: Fenghua Yu <fenghua.yu@intel.com>
|
||||
L: linux-hwmon@vger.kernel.org
|
||||
L: lm-sensors@lm-sensors.org
|
||||
S: Maintained
|
||||
F: Documentation/hwmon/coretemp
|
||||
F: drivers/hwmon/coretemp.c
|
||||
@@ -3549,7 +3549,7 @@ T: git git://git.infradead.org/users/vkoul/slave-dma.git
|
||||
|
||||
DME1737 HARDWARE MONITOR DRIVER
|
||||
M: Juerg Haefliger <juergh@gmail.com>
|
||||
L: linux-hwmon@vger.kernel.org
|
||||
L: lm-sensors@lm-sensors.org
|
||||
S: Maintained
|
||||
F: Documentation/hwmon/dme1737
|
||||
F: drivers/hwmon/dme1737.c
|
||||
@@ -4097,8 +4097,8 @@ F: Documentation/efi-stub.txt
|
||||
F: arch/ia64/kernel/efi.c
|
||||
F: arch/x86/boot/compressed/eboot.[ch]
|
||||
F: arch/x86/include/asm/efi.h
|
||||
F: arch/x86/platform/efi/
|
||||
F: drivers/firmware/efi/
|
||||
F: arch/x86/platform/efi/*
|
||||
F: drivers/firmware/efi/*
|
||||
F: include/linux/efi*.h
|
||||
|
||||
EFI VARIABLE FILESYSTEM
|
||||
@@ -4262,7 +4262,7 @@ F: include/video/exynos_mipi*
|
||||
|
||||
F71805F HARDWARE MONITORING DRIVER
|
||||
M: Jean Delvare <jdelvare@suse.com>
|
||||
L: linux-hwmon@vger.kernel.org
|
||||
L: lm-sensors@lm-sensors.org
|
||||
S: Maintained
|
||||
F: Documentation/hwmon/f71805f
|
||||
F: drivers/hwmon/f71805f.c
|
||||
@@ -4341,7 +4341,7 @@ F: fs/*
|
||||
|
||||
FINTEK F75375S HARDWARE MONITOR AND FAN CONTROLLER DRIVER
|
||||
M: Riku Voipio <riku.voipio@iki.fi>
|
||||
L: linux-hwmon@vger.kernel.org
|
||||
L: lm-sensors@lm-sensors.org
|
||||
S: Maintained
|
||||
F: drivers/hwmon/f75375s.c
|
||||
F: include/linux/f75375s.h
|
||||
@@ -4883,8 +4883,8 @@ F: drivers/media/usb/hackrf/
|
||||
HARDWARE MONITORING
|
||||
M: Jean Delvare <jdelvare@suse.com>
|
||||
M: Guenter Roeck <linux@roeck-us.net>
|
||||
L: linux-hwmon@vger.kernel.org
|
||||
W: http://hwmon.wiki.kernel.org/
|
||||
L: lm-sensors@lm-sensors.org
|
||||
W: http://www.lm-sensors.org/
|
||||
T: quilt http://jdelvare.nerim.net/devel/linux/jdelvare-hwmon/
|
||||
T: git git://git.kernel.org/pub/scm/linux/kernel/git/groeck/linux-staging.git
|
||||
S: Maintained
|
||||
@@ -5393,7 +5393,7 @@ F: drivers/usb/atm/ueagle-atm.c
|
||||
|
||||
INA209 HARDWARE MONITOR DRIVER
|
||||
M: Guenter Roeck <linux@roeck-us.net>
|
||||
L: linux-hwmon@vger.kernel.org
|
||||
L: lm-sensors@lm-sensors.org
|
||||
S: Maintained
|
||||
F: Documentation/hwmon/ina209
|
||||
F: Documentation/devicetree/bindings/i2c/ina209.txt
|
||||
@@ -5401,7 +5401,7 @@ F: drivers/hwmon/ina209.c
|
||||
|
||||
INA2XX HARDWARE MONITOR DRIVER
|
||||
M: Guenter Roeck <linux@roeck-us.net>
|
||||
L: linux-hwmon@vger.kernel.org
|
||||
L: lm-sensors@lm-sensors.org
|
||||
S: Maintained
|
||||
F: Documentation/hwmon/ina2xx
|
||||
F: drivers/hwmon/ina2xx.c
|
||||
@@ -5578,7 +5578,7 @@ R: Jesse Brandeburg <jesse.brandeburg@intel.com>
|
||||
R: Shannon Nelson <shannon.nelson@intel.com>
|
||||
R: Carolyn Wyborny <carolyn.wyborny@intel.com>
|
||||
R: Don Skidmore <donald.c.skidmore@intel.com>
|
||||
R: Bruce Allan <bruce.w.allan@intel.com>
|
||||
R: Matthew Vick <matthew.vick@intel.com>
|
||||
R: John Ronciak <john.ronciak@intel.com>
|
||||
R: Mitch Williams <mitch.a.williams@intel.com>
|
||||
L: intel-wired-lan@lists.osuosl.org
|
||||
@@ -5884,7 +5884,7 @@ F: drivers/isdn/hardware/eicon/
|
||||
|
||||
IT87 HARDWARE MONITORING DRIVER
|
||||
M: Jean Delvare <jdelvare@suse.com>
|
||||
L: linux-hwmon@vger.kernel.org
|
||||
L: lm-sensors@lm-sensors.org
|
||||
S: Maintained
|
||||
F: Documentation/hwmon/it87
|
||||
F: drivers/hwmon/it87.c
|
||||
@@ -5920,7 +5920,7 @@ F: drivers/media/dvb-frontends/ix2505v*
|
||||
|
||||
JC42.4 TEMPERATURE SENSOR DRIVER
|
||||
M: Guenter Roeck <linux@roeck-us.net>
|
||||
L: linux-hwmon@vger.kernel.org
|
||||
L: lm-sensors@lm-sensors.org
|
||||
S: Maintained
|
||||
F: drivers/hwmon/jc42.c
|
||||
F: Documentation/hwmon/jc42
|
||||
@@ -5970,14 +5970,14 @@ F: drivers/tty/serial/jsm/
|
||||
|
||||
K10TEMP HARDWARE MONITORING DRIVER
|
||||
M: Clemens Ladisch <clemens@ladisch.de>
|
||||
L: linux-hwmon@vger.kernel.org
|
||||
L: lm-sensors@lm-sensors.org
|
||||
S: Maintained
|
||||
F: Documentation/hwmon/k10temp
|
||||
F: drivers/hwmon/k10temp.c
|
||||
|
||||
K8TEMP HARDWARE MONITORING DRIVER
|
||||
M: Rudolf Marek <r.marek@assembler.cz>
|
||||
L: linux-hwmon@vger.kernel.org
|
||||
L: lm-sensors@lm-sensors.org
|
||||
S: Maintained
|
||||
F: Documentation/hwmon/k8temp
|
||||
F: drivers/hwmon/k8temp.c
|
||||
@@ -6485,27 +6485,27 @@ F: net/llc/
|
||||
|
||||
LM73 HARDWARE MONITOR DRIVER
|
||||
M: Guillaume Ligneul <guillaume.ligneul@gmail.com>
|
||||
L: linux-hwmon@vger.kernel.org
|
||||
L: lm-sensors@lm-sensors.org
|
||||
S: Maintained
|
||||
F: drivers/hwmon/lm73.c
|
||||
|
||||
LM78 HARDWARE MONITOR DRIVER
|
||||
M: Jean Delvare <jdelvare@suse.com>
|
||||
L: linux-hwmon@vger.kernel.org
|
||||
L: lm-sensors@lm-sensors.org
|
||||
S: Maintained
|
||||
F: Documentation/hwmon/lm78
|
||||
F: drivers/hwmon/lm78.c
|
||||
|
||||
LM83 HARDWARE MONITOR DRIVER
|
||||
M: Jean Delvare <jdelvare@suse.com>
|
||||
L: linux-hwmon@vger.kernel.org
|
||||
L: lm-sensors@lm-sensors.org
|
||||
S: Maintained
|
||||
F: Documentation/hwmon/lm83
|
||||
F: drivers/hwmon/lm83.c
|
||||
|
||||
LM90 HARDWARE MONITOR DRIVER
|
||||
M: Jean Delvare <jdelvare@suse.com>
|
||||
L: linux-hwmon@vger.kernel.org
|
||||
L: lm-sensors@lm-sensors.org
|
||||
S: Maintained
|
||||
F: Documentation/hwmon/lm90
|
||||
F: Documentation/devicetree/bindings/hwmon/lm90.txt
|
||||
@@ -6513,7 +6513,7 @@ F: drivers/hwmon/lm90.c
|
||||
|
||||
LM95234 HARDWARE MONITOR DRIVER
|
||||
M: Guenter Roeck <linux@roeck-us.net>
|
||||
L: linux-hwmon@vger.kernel.org
|
||||
L: lm-sensors@lm-sensors.org
|
||||
S: Maintained
|
||||
F: Documentation/hwmon/lm95234
|
||||
F: drivers/hwmon/lm95234.c
|
||||
@@ -6580,7 +6580,7 @@ F: drivers/scsi/sym53c8xx_2/
|
||||
|
||||
LTC4261 HARDWARE MONITOR DRIVER
|
||||
M: Guenter Roeck <linux@roeck-us.net>
|
||||
L: linux-hwmon@vger.kernel.org
|
||||
L: lm-sensors@lm-sensors.org
|
||||
S: Maintained
|
||||
F: Documentation/hwmon/ltc4261
|
||||
F: drivers/hwmon/ltc4261.c
|
||||
@@ -6749,28 +6749,28 @@ F: include/uapi/linux/matroxfb.h
|
||||
|
||||
MAX16065 HARDWARE MONITOR DRIVER
|
||||
M: Guenter Roeck <linux@roeck-us.net>
|
||||
L: linux-hwmon@vger.kernel.org
|
||||
L: lm-sensors@lm-sensors.org
|
||||
S: Maintained
|
||||
F: Documentation/hwmon/max16065
|
||||
F: drivers/hwmon/max16065.c
|
||||
|
||||
MAX20751 HARDWARE MONITOR DRIVER
|
||||
M: Guenter Roeck <linux@roeck-us.net>
|
||||
L: linux-hwmon@vger.kernel.org
|
||||
L: lm-sensors@lm-sensors.org
|
||||
S: Maintained
|
||||
F: Documentation/hwmon/max20751
|
||||
F: drivers/hwmon/max20751.c
|
||||
|
||||
MAX6650 HARDWARE MONITOR AND FAN CONTROLLER DRIVER
|
||||
M: "Hans J. Koch" <hjk@hansjkoch.de>
|
||||
L: linux-hwmon@vger.kernel.org
|
||||
L: lm-sensors@lm-sensors.org
|
||||
S: Maintained
|
||||
F: Documentation/hwmon/max6650
|
||||
F: drivers/hwmon/max6650.c
|
||||
|
||||
MAX6697 HARDWARE MONITOR DRIVER
|
||||
M: Guenter Roeck <linux@roeck-us.net>
|
||||
L: linux-hwmon@vger.kernel.org
|
||||
L: lm-sensors@lm-sensors.org
|
||||
S: Maintained
|
||||
F: Documentation/hwmon/max6697
|
||||
F: Documentation/devicetree/bindings/i2c/max6697.txt
|
||||
@@ -7303,7 +7303,7 @@ F: drivers/scsi/NCR_D700.*
|
||||
|
||||
NCT6775 HARDWARE MONITOR DRIVER
|
||||
M: Guenter Roeck <linux@roeck-us.net>
|
||||
L: linux-hwmon@vger.kernel.org
|
||||
L: lm-sensors@lm-sensors.org
|
||||
S: Maintained
|
||||
F: Documentation/hwmon/nct6775
|
||||
F: drivers/hwmon/nct6775.c
|
||||
@@ -8064,7 +8064,7 @@ F: drivers/video/logo/logo_parisc*
|
||||
|
||||
PC87360 HARDWARE MONITORING DRIVER
|
||||
M: Jim Cromie <jim.cromie@gmail.com>
|
||||
L: linux-hwmon@vger.kernel.org
|
||||
L: lm-sensors@lm-sensors.org
|
||||
S: Maintained
|
||||
F: Documentation/hwmon/pc87360
|
||||
F: drivers/hwmon/pc87360.c
|
||||
@@ -8076,7 +8076,7 @@ F: drivers/char/pc8736x_gpio.c
|
||||
|
||||
PC87427 HARDWARE MONITORING DRIVER
|
||||
M: Jean Delvare <jdelvare@suse.com>
|
||||
L: linux-hwmon@vger.kernel.org
|
||||
L: lm-sensors@lm-sensors.org
|
||||
S: Maintained
|
||||
F: Documentation/hwmon/pc87427
|
||||
F: drivers/hwmon/pc87427.c
|
||||
@@ -8380,14 +8380,6 @@ L: linux-samsung-soc@vger.kernel.org (moderated for non-subscribers)
|
||||
S: Maintained
|
||||
F: drivers/pinctrl/samsung/
|
||||
|
||||
PIN CONTROLLER - SINGLE
|
||||
M: Tony Lindgren <tony@atomide.com>
|
||||
M: Haojian Zhuang <haojian.zhuang@linaro.org>
|
||||
L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
|
||||
L: linux-omap@vger.kernel.org
|
||||
S: Maintained
|
||||
F: drivers/pinctrl/pinctrl-single.c
|
||||
|
||||
PIN CONTROLLER - ST SPEAR
|
||||
M: Viresh Kumar <vireshk@kernel.org>
|
||||
L: spear-devel@list.st.com
|
||||
@@ -8415,8 +8407,8 @@ F: drivers/rtc/rtc-puv3.c
|
||||
|
||||
PMBUS HARDWARE MONITORING DRIVERS
|
||||
M: Guenter Roeck <linux@roeck-us.net>
|
||||
L: linux-hwmon@vger.kernel.org
|
||||
W: http://hwmon.wiki.kernel.org/
|
||||
L: lm-sensors@lm-sensors.org
|
||||
W: http://www.lm-sensors.org/
|
||||
W: http://www.roeck-us.net/linux/drivers/
|
||||
T: git git://git.kernel.org/pub/scm/linux/kernel/git/groeck/linux-staging.git
|
||||
S: Maintained
|
||||
@@ -8610,7 +8602,7 @@ F: drivers/media/usb/pwc/*
|
||||
|
||||
PWM FAN DRIVER
|
||||
M: Kamil Debski <k.debski@samsung.com>
|
||||
L: linux-hwmon@vger.kernel.org
|
||||
L: lm-sensors@lm-sensors.org
|
||||
S: Supported
|
||||
F: Documentation/devicetree/bindings/hwmon/pwm-fan.txt
|
||||
F: Documentation/hwmon/pwm-fan
|
||||
@@ -8954,13 +8946,6 @@ F: drivers/rpmsg/
|
||||
F: Documentation/rpmsg.txt
|
||||
F: include/linux/rpmsg.h
|
||||
|
||||
RENESAS ETHERNET DRIVERS
|
||||
R: Sergei Shtylyov <sergei.shtylyov@cogentembedded.com>
|
||||
L: netdev@vger.kernel.org
|
||||
L: linux-sh@vger.kernel.org
|
||||
F: drivers/net/ethernet/renesas/
|
||||
F: include/linux/sh_eth.h
|
||||
|
||||
RESET CONTROLLER FRAMEWORK
|
||||
M: Philipp Zabel <p.zabel@pengutronix.de>
|
||||
S: Maintained
|
||||
@@ -9882,28 +9867,28 @@ F: Documentation/devicetree/bindings/media/i2c/nokia,smia.txt
|
||||
|
||||
SMM665 HARDWARE MONITOR DRIVER
|
||||
M: Guenter Roeck <linux@roeck-us.net>
|
||||
L: linux-hwmon@vger.kernel.org
|
||||
L: lm-sensors@lm-sensors.org
|
||||
S: Maintained
|
||||
F: Documentation/hwmon/smm665
|
||||
F: drivers/hwmon/smm665.c
|
||||
|
||||
SMSC EMC2103 HARDWARE MONITOR DRIVER
|
||||
M: Steve Glendinning <steve.glendinning@shawell.net>
|
||||
L: linux-hwmon@vger.kernel.org
|
||||
L: lm-sensors@lm-sensors.org
|
||||
S: Maintained
|
||||
F: Documentation/hwmon/emc2103
|
||||
F: drivers/hwmon/emc2103.c
|
||||
|
||||
SMSC SCH5627 HARDWARE MONITOR DRIVER
|
||||
M: Hans de Goede <hdegoede@redhat.com>
|
||||
L: linux-hwmon@vger.kernel.org
|
||||
L: lm-sensors@lm-sensors.org
|
||||
S: Supported
|
||||
F: Documentation/hwmon/sch5627
|
||||
F: drivers/hwmon/sch5627.c
|
||||
|
||||
SMSC47B397 HARDWARE MONITOR DRIVER
|
||||
M: Jean Delvare <jdelvare@suse.com>
|
||||
L: linux-hwmon@vger.kernel.org
|
||||
L: lm-sensors@lm-sensors.org
|
||||
S: Maintained
|
||||
F: Documentation/hwmon/smsc47b397
|
||||
F: drivers/hwmon/smsc47b397.c
|
||||
@@ -10289,11 +10274,9 @@ S: Maintained
|
||||
F: drivers/net/ethernet/dlink/sundance.c
|
||||
|
||||
SUPERH
|
||||
M: Yoshinori Sato <ysato@users.sourceforge.jp>
|
||||
M: Rich Felker <dalias@libc.org>
|
||||
L: linux-sh@vger.kernel.org
|
||||
Q: http://patchwork.kernel.org/project/linux-sh/list/
|
||||
S: Maintained
|
||||
S: Orphan
|
||||
F: Documentation/sh/
|
||||
F: arch/sh/
|
||||
F: drivers/sh/
|
||||
@@ -10830,7 +10813,7 @@ F: include/linux/mmc/sh_mobile_sdhi.h
|
||||
|
||||
TMP401 HARDWARE MONITOR DRIVER
|
||||
M: Guenter Roeck <linux@roeck-us.net>
|
||||
L: linux-hwmon@vger.kernel.org
|
||||
L: lm-sensors@lm-sensors.org
|
||||
S: Maintained
|
||||
F: Documentation/hwmon/tmp401
|
||||
F: drivers/hwmon/tmp401.c
|
||||
@@ -11564,14 +11547,14 @@ F: Documentation/networking/vrf.txt
|
||||
|
||||
VT1211 HARDWARE MONITOR DRIVER
|
||||
M: Juerg Haefliger <juergh@gmail.com>
|
||||
L: linux-hwmon@vger.kernel.org
|
||||
L: lm-sensors@lm-sensors.org
|
||||
S: Maintained
|
||||
F: Documentation/hwmon/vt1211
|
||||
F: drivers/hwmon/vt1211.c
|
||||
|
||||
VT8231 HARDWARE MONITOR DRIVER
|
||||
M: Roger Lucas <vt8231@hiddenengine.co.uk>
|
||||
L: linux-hwmon@vger.kernel.org
|
||||
L: lm-sensors@lm-sensors.org
|
||||
S: Maintained
|
||||
F: drivers/hwmon/vt8231.c
|
||||
|
||||
@@ -11590,21 +11573,21 @@ F: drivers/w1/
|
||||
|
||||
W83791D HARDWARE MONITORING DRIVER
|
||||
M: Marc Hulsman <m.hulsman@tudelft.nl>
|
||||
L: linux-hwmon@vger.kernel.org
|
||||
L: lm-sensors@lm-sensors.org
|
||||
S: Maintained
|
||||
F: Documentation/hwmon/w83791d
|
||||
F: drivers/hwmon/w83791d.c
|
||||
|
||||
W83793 HARDWARE MONITORING DRIVER
|
||||
M: Rudolf Marek <r.marek@assembler.cz>
|
||||
L: linux-hwmon@vger.kernel.org
|
||||
L: lm-sensors@lm-sensors.org
|
||||
S: Maintained
|
||||
F: Documentation/hwmon/w83793
|
||||
F: drivers/hwmon/w83793.c
|
||||
|
||||
W83795 HARDWARE MONITORING DRIVER
|
||||
M: Jean Delvare <jdelvare@suse.com>
|
||||
L: linux-hwmon@vger.kernel.org
|
||||
L: lm-sensors@lm-sensors.org
|
||||
S: Maintained
|
||||
F: drivers/hwmon/w83795.c
|
||||
|
||||
|
||||
11
Makefile
11
Makefile
@@ -1,7 +1,7 @@
|
||||
VERSION = 4
|
||||
PATCHLEVEL = 4
|
||||
SUBLEVEL = 21
|
||||
EXTRAVERSION =
|
||||
SUBLEVEL = 0
|
||||
EXTRAVERSION = -rc5
|
||||
NAME = Blurry Fish Butt
|
||||
|
||||
# *DOCUMENTATION*
|
||||
@@ -364,7 +364,7 @@ AFLAGS_MODULE =
|
||||
LDFLAGS_MODULE =
|
||||
CFLAGS_KERNEL =
|
||||
AFLAGS_KERNEL =
|
||||
CFLAGS_GCOV = -fprofile-arcs -ftest-coverage -fno-tree-loop-im
|
||||
CFLAGS_GCOV = -fprofile-arcs -ftest-coverage
|
||||
|
||||
|
||||
# Use USERINCLUDE when you must reference the UAPI directories only.
|
||||
@@ -682,10 +682,9 @@ KBUILD_CFLAGS += $(call cc-option, -mno-global-merge,)
|
||||
KBUILD_CFLAGS += $(call cc-option, -fcatch-undefined-behavior)
|
||||
else
|
||||
|
||||
# These warnings generated too much noise in a regular build.
|
||||
# Use make W=1 to enable them (see scripts/Makefile.build)
|
||||
# This warning generated too much noise in a regular build.
|
||||
# Use make W=1 to enable this warning (see scripts/Makefile.build)
|
||||
KBUILD_CFLAGS += $(call cc-disable-warning, unused-but-set-variable)
|
||||
KBUILD_CFLAGS += $(call cc-disable-warning, unused-const-variable)
|
||||
endif
|
||||
|
||||
ifdef CONFIG_FRAME_POINTER
|
||||
|
||||
@@ -387,7 +387,7 @@ config ARC_HAS_LLSC
|
||||
|
||||
config ARC_STAR_9000923308
|
||||
bool "Workaround for llock/scond livelock"
|
||||
default n
|
||||
default y
|
||||
depends on ISA_ARCV2 && SMP && ARC_HAS_LLSC
|
||||
|
||||
config ARC_HAS_SWAPE
|
||||
@@ -445,7 +445,6 @@ config LINUX_LINK_BASE
|
||||
However some customers have peripherals mapped at this addr, so
|
||||
Linux needs to be scooted a bit.
|
||||
If you don't know what the above means, leave this setting alone.
|
||||
This needs to match memory start address specified in Device Tree
|
||||
|
||||
config HIGHMEM
|
||||
bool "High Memory Support"
|
||||
|
||||
@@ -18,20 +18,6 @@ cflags-y += -fno-common -pipe -fno-builtin -D__linux__
|
||||
cflags-$(CONFIG_ISA_ARCOMPACT) += -mA7
|
||||
cflags-$(CONFIG_ISA_ARCV2) += -mcpu=archs
|
||||
|
||||
is_700 = $(shell $(CC) -dM -E - < /dev/null | grep -q "ARC700" && echo 1 || echo 0)
|
||||
|
||||
ifdef CONFIG_ISA_ARCOMPACT
|
||||
ifeq ($(is_700), 0)
|
||||
$(error Toolchain not configured for ARCompact builds)
|
||||
endif
|
||||
endif
|
||||
|
||||
ifdef CONFIG_ISA_ARCV2
|
||||
ifeq ($(is_700), 1)
|
||||
$(error Toolchain not configured for ARCv2 builds)
|
||||
endif
|
||||
endif
|
||||
|
||||
ifdef CONFIG_ARC_CURR_IN_REG
|
||||
# For a global register defintion, make sure it gets passed to every file
|
||||
# We had a customer reported bug where some code built in kernel was NOT using
|
||||
@@ -62,6 +48,8 @@ endif
|
||||
|
||||
endif
|
||||
|
||||
cflags-$(CONFIG_ARC_DW2_UNWIND) += -fasynchronous-unwind-tables
|
||||
|
||||
# By default gcc 4.8 generates dwarf4 which kernel unwinder can't grok
|
||||
ifeq ($(atleast_gcc48),y)
|
||||
cflags-$(CONFIG_ARC_DW2_UNWIND) += -gdwarf-2
|
||||
@@ -93,7 +81,7 @@ endif
|
||||
LIBGCC := $(shell $(CC) $(cflags-y) --print-libgcc-file-name)
|
||||
|
||||
# Modules with short calls might break for calls into builtin-kernel
|
||||
KBUILD_CFLAGS_MODULE += -mlong-calls -mno-millicode
|
||||
KBUILD_CFLAGS_MODULE += -mlong-calls
|
||||
|
||||
# Finally dump eveything into kernel build system
|
||||
KBUILD_CFLAGS += $(cflags-y)
|
||||
|
||||
@@ -46,7 +46,6 @@
|
||||
snps,pbl = < 32 >;
|
||||
clocks = <&apbclk>;
|
||||
clock-names = "stmmaceth";
|
||||
max-speed = <100>;
|
||||
};
|
||||
|
||||
ehci@0x40000 {
|
||||
|
||||
@@ -17,8 +17,7 @@
|
||||
|
||||
memory {
|
||||
device_type = "memory";
|
||||
/* CONFIG_LINUX_LINK_BASE needs to match low mem start */
|
||||
reg = <0x0 0x80000000 0x0 0x20000000 /* 512 MB low mem */
|
||||
reg = <0x0 0x80000000 0x0 0x40000000 /* 1 GB low mem */
|
||||
0x1 0x00000000 0x0 0x40000000>; /* 1 GB highmem */
|
||||
};
|
||||
|
||||
|
||||
@@ -374,6 +374,12 @@ static inline int is_isa_arcompact(void)
|
||||
return IS_ENABLED(CONFIG_ISA_ARCOMPACT);
|
||||
}
|
||||
|
||||
#if defined(CONFIG_ISA_ARCOMPACT) && !defined(_CPU_DEFAULT_A7)
|
||||
#error "Toolchain not configured for ARCompact builds"
|
||||
#elif defined(CONFIG_ISA_ARCV2) && !defined(_CPU_DEFAULT_HS)
|
||||
#error "Toolchain not configured for ARCv2 builds"
|
||||
#endif
|
||||
|
||||
#endif /* __ASEMBLY__ */
|
||||
|
||||
#endif /* _ASM_ARC_ARCREGS_H */
|
||||
|
||||
@@ -35,6 +35,21 @@ static inline void op##_bit(unsigned long nr, volatile unsigned long *m)\
|
||||
\
|
||||
m += nr >> 5; \
|
||||
\
|
||||
/* \
|
||||
* ARC ISA micro-optimization: \
|
||||
* \
|
||||
* Instructions dealing with bitpos only consider lower 5 bits \
|
||||
* e.g (x << 33) is handled like (x << 1) by ASL instruction \
|
||||
* (mem pointer still needs adjustment to point to next word) \
|
||||
* \
|
||||
* Hence the masking to clamp @nr arg can be elided in general. \
|
||||
* \
|
||||
* However if @nr is a constant (above assumed in a register), \
|
||||
* and greater than 31, gcc can optimize away (x << 33) to 0, \
|
||||
* as overflow, given the 32-bit ISA. Thus masking needs to be \
|
||||
* done for const @nr, but no code is generated due to gcc \
|
||||
* const prop. \
|
||||
*/ \
|
||||
nr &= 0x1f; \
|
||||
\
|
||||
__asm__ __volatile__( \
|
||||
|
||||
@@ -62,7 +62,9 @@ extern int ioc_exists;
|
||||
#define ARC_REG_IC_IVIC 0x10
|
||||
#define ARC_REG_IC_CTRL 0x11
|
||||
#define ARC_REG_IC_IVIL 0x19
|
||||
#if defined(CONFIG_ARC_MMU_V3) || defined(CONFIG_ARC_MMU_V4)
|
||||
#define ARC_REG_IC_PTAG 0x1E
|
||||
#endif
|
||||
#define ARC_REG_IC_PTAG_HI 0x1F
|
||||
|
||||
/* Bit val in IC_CTRL */
|
||||
|
||||
@@ -142,7 +142,7 @@
|
||||
|
||||
#ifdef CONFIG_ARC_CURR_IN_REG
|
||||
; Retrieve orig r25 and save it with rest of callee_regs
|
||||
ld r12, [r12, PT_user_r25]
|
||||
ld.as r12, [r12, PT_user_r25]
|
||||
PUSH r12
|
||||
#else
|
||||
PUSH r25
|
||||
@@ -198,7 +198,7 @@
|
||||
|
||||
; SP is back to start of pt_regs
|
||||
#ifdef CONFIG_ARC_CURR_IN_REG
|
||||
st r12, [sp, PT_user_r25]
|
||||
st.as r12, [sp, PT_user_r25]
|
||||
#endif
|
||||
.endm
|
||||
|
||||
|
||||
@@ -13,15 +13,6 @@
|
||||
#include <asm/byteorder.h>
|
||||
#include <asm/page.h>
|
||||
|
||||
#ifdef CONFIG_ISA_ARCV2
|
||||
#include <asm/barrier.h>
|
||||
#define __iormb() rmb()
|
||||
#define __iowmb() wmb()
|
||||
#else
|
||||
#define __iormb() do { } while (0)
|
||||
#define __iowmb() do { } while (0)
|
||||
#endif
|
||||
|
||||
extern void __iomem *ioremap(unsigned long physaddr, unsigned long size);
|
||||
extern void __iomem *ioremap_prot(phys_addr_t offset, unsigned long size,
|
||||
unsigned long flags);
|
||||
@@ -31,15 +22,6 @@ extern void iounmap(const void __iomem *addr);
|
||||
#define ioremap_wc(phy, sz) ioremap(phy, sz)
|
||||
#define ioremap_wt(phy, sz) ioremap(phy, sz)
|
||||
|
||||
/*
|
||||
* io{read,write}{16,32}be() macros
|
||||
*/
|
||||
#define ioread16be(p) ({ u16 __v = be16_to_cpu((__force __be16)__raw_readw(p)); __iormb(); __v; })
|
||||
#define ioread32be(p) ({ u32 __v = be32_to_cpu((__force __be32)__raw_readl(p)); __iormb(); __v; })
|
||||
|
||||
#define iowrite16be(v,p) ({ __iowmb(); __raw_writew((__force u16)cpu_to_be16(v), p); })
|
||||
#define iowrite32be(v,p) ({ __iowmb(); __raw_writel((__force u32)cpu_to_be32(v), p); })
|
||||
|
||||
/* Change struct page to physical address */
|
||||
#define page_to_phys(page) (page_to_pfn(page) << PAGE_SHIFT)
|
||||
|
||||
@@ -117,6 +99,15 @@ static inline void __raw_writel(u32 w, volatile void __iomem *addr)
|
||||
|
||||
}
|
||||
|
||||
#ifdef CONFIG_ISA_ARCV2
|
||||
#include <asm/barrier.h>
|
||||
#define __iormb() rmb()
|
||||
#define __iowmb() wmb()
|
||||
#else
|
||||
#define __iormb() do { } while (0)
|
||||
#define __iowmb() do { } while (0)
|
||||
#endif
|
||||
|
||||
/*
|
||||
* MMIO can also get buffered/optimized in micro-arch, so barriers needed
|
||||
* Based on ARM model for the typical use case
|
||||
@@ -138,23 +129,15 @@ static inline void __raw_writel(u32 w, volatile void __iomem *addr)
|
||||
#define writel(v,c) ({ __iowmb(); writel_relaxed(v,c); })
|
||||
|
||||
/*
|
||||
* Relaxed API for drivers which can handle barrier ordering themselves
|
||||
*
|
||||
* Also these are defined to perform little endian accesses.
|
||||
* To provide the typical device register semantics of fixed endian,
|
||||
* swap the byte order for Big Endian
|
||||
*
|
||||
* http://lkml.kernel.org/r/201603100845.30602.arnd@arndb.de
|
||||
* Relaxed API for drivers which can handle any ordering themselves
|
||||
*/
|
||||
#define readb_relaxed(c) __raw_readb(c)
|
||||
#define readw_relaxed(c) ({ u16 __r = le16_to_cpu((__force __le16) \
|
||||
__raw_readw(c)); __r; })
|
||||
#define readl_relaxed(c) ({ u32 __r = le32_to_cpu((__force __le32) \
|
||||
__raw_readl(c)); __r; })
|
||||
#define readw_relaxed(c) __raw_readw(c)
|
||||
#define readl_relaxed(c) __raw_readl(c)
|
||||
|
||||
#define writeb_relaxed(v,c) __raw_writeb(v,c)
|
||||
#define writew_relaxed(v,c) __raw_writew((__force u16) cpu_to_le16(v),c)
|
||||
#define writel_relaxed(v,c) __raw_writel((__force u32) cpu_to_le32(v),c)
|
||||
#define writew_relaxed(v,c) __raw_writew(v,c)
|
||||
#define writel_relaxed(v,c) __raw_writel(v,c)
|
||||
|
||||
#include <asm-generic/io.h>
|
||||
|
||||
|
||||
@@ -22,7 +22,6 @@
|
||||
#define AUX_IRQ_CTRL 0x00E
|
||||
#define AUX_IRQ_ACT 0x043 /* Active Intr across all levels */
|
||||
#define AUX_IRQ_LVL_PEND 0x200 /* Pending Intr across all levels */
|
||||
#define AUX_IRQ_HINT 0x201 /* For generating Soft Interrupts */
|
||||
#define AUX_IRQ_PRIORITY 0x206
|
||||
#define ICAUSE 0x40a
|
||||
#define AUX_IRQ_SELECT 0x40b
|
||||
@@ -113,16 +112,6 @@ static inline int arch_irqs_disabled(void)
|
||||
return arch_irqs_disabled_flags(arch_local_save_flags());
|
||||
}
|
||||
|
||||
static inline void arc_softirq_trigger(int irq)
|
||||
{
|
||||
write_aux_reg(AUX_IRQ_HINT, irq);
|
||||
}
|
||||
|
||||
static inline void arc_softirq_clear(int irq)
|
||||
{
|
||||
write_aux_reg(AUX_IRQ_HINT, 0);
|
||||
}
|
||||
|
||||
#else
|
||||
|
||||
.macro IRQ_DISABLE scratch
|
||||
|
||||
@@ -188,10 +188,10 @@ static inline int arch_irqs_disabled(void)
|
||||
.endm
|
||||
|
||||
.macro IRQ_ENABLE scratch
|
||||
TRACE_ASM_IRQ_ENABLE
|
||||
lr \scratch, [status32]
|
||||
or \scratch, \scratch, (STATUS_E1_MASK | STATUS_E2_MASK)
|
||||
flag \scratch
|
||||
TRACE_ASM_IRQ_ENABLE
|
||||
.endm
|
||||
|
||||
#endif /* __ASSEMBLY__ */
|
||||
|
||||
@@ -23,7 +23,7 @@
|
||||
* @dt_compat: Array of device tree 'compatible' strings
|
||||
* (XXX: although only 1st entry is looked at)
|
||||
* @init_early: Very early callback [called from setup_arch()]
|
||||
* @init_per_cpu: for each CPU as it is coming up (SMP as well as UP)
|
||||
* @init_cpu_smp: for each CPU as it is coming up (SMP as well as UP)
|
||||
* [(M):init_IRQ(), (o):start_kernel_secondary()]
|
||||
* @init_machine: arch initcall level callback (e.g. populate static
|
||||
* platform devices or parse Devicetree)
|
||||
@@ -35,7 +35,7 @@ struct machine_desc {
|
||||
const char **dt_compat;
|
||||
void (*init_early)(void);
|
||||
#ifdef CONFIG_SMP
|
||||
void (*init_per_cpu)(unsigned int);
|
||||
void (*init_cpu_smp)(unsigned int);
|
||||
#endif
|
||||
void (*init_machine)(void);
|
||||
void (*init_late)(void);
|
||||
|
||||
@@ -110,7 +110,7 @@
|
||||
#define ___DEF (_PAGE_PRESENT | _PAGE_CACHEABLE)
|
||||
|
||||
/* Set of bits not changed in pte_modify */
|
||||
#define _PAGE_CHG_MASK (PAGE_MASK | _PAGE_ACCESSED | _PAGE_DIRTY | _PAGE_SPECIAL)
|
||||
#define _PAGE_CHG_MASK (PAGE_MASK | _PAGE_ACCESSED | _PAGE_DIRTY)
|
||||
|
||||
/* More Abbrevaited helpers */
|
||||
#define PAGE_U_NONE __pgprot(___DEF)
|
||||
|
||||
@@ -48,7 +48,7 @@ extern int smp_ipi_irq_setup(int cpu, int irq);
|
||||
* @init_early_smp: A SMP specific h/w block can init itself
|
||||
* Could be common across platforms so not covered by
|
||||
* mach_desc->init_early()
|
||||
* @init_per_cpu: Called for each core so SMP h/w block driver can do
|
||||
* @init_irq_cpu: Called for each core so SMP h/w block driver can do
|
||||
* any needed setup per cpu (e.g. IPI request)
|
||||
* @cpu_kick: For Master to kickstart a cpu (optionally at a PC)
|
||||
* @ipi_send: To send IPI to a @cpu
|
||||
@@ -57,7 +57,7 @@ extern int smp_ipi_irq_setup(int cpu, int irq);
|
||||
struct plat_smp_ops {
|
||||
const char *info;
|
||||
void (*init_early_smp)(void);
|
||||
void (*init_per_cpu)(int cpu);
|
||||
void (*init_irq_cpu)(int cpu);
|
||||
void (*cpu_kick)(int cpu, unsigned long pc);
|
||||
void (*ipi_send)(int cpu);
|
||||
void (*ipi_clear)(int irq);
|
||||
|
||||
@@ -112,6 +112,7 @@ struct unwind_frame_info {
|
||||
|
||||
extern int arc_unwind(struct unwind_frame_info *frame);
|
||||
extern void arc_unwind_init(void);
|
||||
extern void arc_unwind_setup(void);
|
||||
extern void *unwind_add_table(struct module *module, const void *table_start,
|
||||
unsigned long table_size);
|
||||
extern void unwind_remove_table(void *handle, int init_only);
|
||||
@@ -151,6 +152,9 @@ static inline void arc_unwind_init(void)
|
||||
{
|
||||
}
|
||||
|
||||
static inline void arc_unwind_setup(void)
|
||||
{
|
||||
}
|
||||
#define unwind_add_table(a, b, c)
|
||||
#define unwind_remove_table(a, b)
|
||||
|
||||
|
||||
@@ -45,12 +45,11 @@ VECTOR reserved ; Reserved slots
|
||||
VECTOR handle_interrupt ; (16) Timer0
|
||||
VECTOR handle_interrupt ; unused (Timer1)
|
||||
VECTOR handle_interrupt ; unused (WDT)
|
||||
VECTOR handle_interrupt ; (19) Inter core Interrupt (IPI)
|
||||
VECTOR handle_interrupt ; (20) perf Interrupt
|
||||
VECTOR handle_interrupt ; (21) Software Triggered Intr (Self IPI)
|
||||
VECTOR handle_interrupt ; unused
|
||||
VECTOR handle_interrupt ; (23) unused
|
||||
# End of fixed IRQs
|
||||
VECTOR handle_interrupt ; (19) ICI (inter core interrupt)
|
||||
VECTOR handle_interrupt
|
||||
VECTOR handle_interrupt
|
||||
VECTOR handle_interrupt
|
||||
VECTOR handle_interrupt ; (23) End of fixed IRQs
|
||||
|
||||
.rept CONFIG_ARC_NUMBER_OF_INTERRUPTS - 8
|
||||
VECTOR handle_interrupt
|
||||
@@ -212,11 +211,7 @@ debug_marker_syscall:
|
||||
; (since IRQ NOT allowed in DS in ARCv2, this can only happen if orig
|
||||
; entry was via Exception in DS which got preempted in kernel).
|
||||
;
|
||||
; IRQ RTIE won't reliably restore DE bit and/or BTA, needs workaround
|
||||
;
|
||||
; Solution is return from Intr w/o any delay slot quirks into a kernel trampoline
|
||||
; and from pure kernel mode return to delay slot which handles DS bit/BTA correctly
|
||||
|
||||
; IRQ RTIE won't reliably restore DE bit and/or BTA, needs handling
|
||||
.Lintr_ret_to_delay_slot:
|
||||
debug_marker_ds:
|
||||
|
||||
@@ -227,23 +222,18 @@ debug_marker_ds:
|
||||
ld r2, [sp, PT_ret]
|
||||
ld r3, [sp, PT_status32]
|
||||
|
||||
; STAT32 for Int return created from scratch
|
||||
; (No delay dlot, disable Further intr in trampoline)
|
||||
|
||||
bic r0, r3, STATUS_U_MASK|STATUS_DE_MASK|STATUS_IE_MASK|STATUS_L_MASK
|
||||
st r0, [sp, PT_status32]
|
||||
|
||||
mov r1, .Lintr_ret_to_delay_slot_2
|
||||
st r1, [sp, PT_ret]
|
||||
|
||||
; Orig exception PC/STAT32 safekept @orig_r0 and @event stack slots
|
||||
st r2, [sp, 0]
|
||||
st r3, [sp, 4]
|
||||
|
||||
b .Lisr_ret_fast_path
|
||||
|
||||
.Lintr_ret_to_delay_slot_2:
|
||||
; Trampoline to restore orig exception PC/STAT32/BTA/AUX_USER_SP
|
||||
sub sp, sp, SZ_PT_REGS
|
||||
st r9, [sp, -4]
|
||||
|
||||
@@ -253,19 +243,11 @@ debug_marker_ds:
|
||||
ld r9, [sp, 4]
|
||||
sr r9, [erstatus]
|
||||
|
||||
; restore AUX_USER_SP if returning to U mode
|
||||
bbit0 r9, STATUS_U_BIT, 1f
|
||||
ld r9, [sp, PT_sp]
|
||||
sr r9, [AUX_USER_SP]
|
||||
|
||||
1:
|
||||
ld r9, [sp, 8]
|
||||
sr r9, [erbta]
|
||||
|
||||
ld r9, [sp, -4]
|
||||
add sp, sp, SZ_PT_REGS
|
||||
|
||||
; return from pure kernel mode to delay slot
|
||||
rtie
|
||||
|
||||
END(ret_from_exception)
|
||||
|
||||
@@ -106,21 +106,10 @@ static struct irq_chip arcv2_irq_chip = {
|
||||
static int arcv2_irq_map(struct irq_domain *d, unsigned int irq,
|
||||
irq_hw_number_t hw)
|
||||
{
|
||||
/*
|
||||
* core intc IRQs [16, 23]:
|
||||
* Statically assigned always private-per-core (Timers, WDT, IPI, PCT)
|
||||
*/
|
||||
if (hw < 24) {
|
||||
/*
|
||||
* A subsequent request_percpu_irq() fails if percpu_devid is
|
||||
* not set. That in turns sets NOAUTOEN, meaning each core needs
|
||||
* to call enable_percpu_irq()
|
||||
*/
|
||||
irq_set_percpu_devid(irq);
|
||||
if (irq == TIMER0_IRQ || irq == IPI_IRQ)
|
||||
irq_set_chip_and_handler(irq, &arcv2_irq_chip, handle_percpu_irq);
|
||||
} else {
|
||||
else
|
||||
irq_set_chip_and_handler(irq, &arcv2_irq_chip, handle_level_irq);
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -29,11 +29,11 @@ void __init init_IRQ(void)
|
||||
|
||||
#ifdef CONFIG_SMP
|
||||
/* a SMP H/w block could do IPI IRQ request here */
|
||||
if (plat_smp_ops.init_per_cpu)
|
||||
plat_smp_ops.init_per_cpu(smp_processor_id());
|
||||
if (plat_smp_ops.init_irq_cpu)
|
||||
plat_smp_ops.init_irq_cpu(smp_processor_id());
|
||||
|
||||
if (machine_desc->init_per_cpu)
|
||||
machine_desc->init_per_cpu(smp_processor_id());
|
||||
if (machine_desc->init_cpu_smp)
|
||||
machine_desc->init_cpu_smp(smp_processor_id());
|
||||
#endif
|
||||
}
|
||||
|
||||
@@ -51,18 +51,6 @@ void arch_do_IRQ(unsigned int irq, struct pt_regs *regs)
|
||||
set_irq_regs(old_regs);
|
||||
}
|
||||
|
||||
/*
|
||||
* API called for requesting percpu interrupts - called by each CPU
|
||||
* - For boot CPU, actually request the IRQ with genirq core + enables
|
||||
* - For subsequent callers only enable called locally
|
||||
*
|
||||
* Relies on being called by boot cpu first (i.e. request called ahead) of
|
||||
* any enable as expected by genirq. Hence Suitable only for TIMER, IPI
|
||||
* which are guaranteed to be setup on boot core first.
|
||||
* Late probed peripherals such as perf can't use this as there no guarantee
|
||||
* of being called on boot CPU first.
|
||||
*/
|
||||
|
||||
void arc_request_percpu_irq(int irq, int cpu,
|
||||
irqreturn_t (*isr)(int irq, void *dev),
|
||||
const char *irq_nm,
|
||||
@@ -72,17 +60,14 @@ void arc_request_percpu_irq(int irq, int cpu,
|
||||
if (!cpu) {
|
||||
int rc;
|
||||
|
||||
#ifdef CONFIG_ISA_ARCOMPACT
|
||||
/*
|
||||
* A subsequent request_percpu_irq() fails if percpu_devid is
|
||||
* not set. That in turns sets NOAUTOEN, meaning each core needs
|
||||
* to call enable_percpu_irq()
|
||||
*
|
||||
* For ARCv2, this is done in irq map function since we know
|
||||
* which irqs are strictly per cpu
|
||||
* These 2 calls are essential to making percpu IRQ APIs work
|
||||
* Ideally these details could be hidden in irq chip map function
|
||||
* but the issue is IPIs IRQs being static (non-DT) and platform
|
||||
* specific, so we can't identify them there.
|
||||
*/
|
||||
irq_set_percpu_devid(irq);
|
||||
#endif
|
||||
irq_modify_status(irq, IRQ_NOAUTOEN, 0); /* @irq, @clr, @set */
|
||||
|
||||
rc = request_percpu_irq(irq, isr, irq_nm, percpu_dev);
|
||||
if (rc)
|
||||
|
||||
@@ -11,12 +11,9 @@
|
||||
#include <linux/smp.h>
|
||||
#include <linux/irq.h>
|
||||
#include <linux/spinlock.h>
|
||||
#include <asm/irqflags-arcv2.h>
|
||||
#include <asm/mcip.h>
|
||||
#include <asm/setup.h>
|
||||
|
||||
#define SOFTIRQ_IRQ 21
|
||||
|
||||
static char smp_cpuinfo_buf[128];
|
||||
static int idu_detected;
|
||||
|
||||
@@ -25,7 +22,6 @@ static DEFINE_RAW_SPINLOCK(mcip_lock);
|
||||
static void mcip_setup_per_cpu(int cpu)
|
||||
{
|
||||
smp_ipi_irq_setup(cpu, IPI_IRQ);
|
||||
smp_ipi_irq_setup(cpu, SOFTIRQ_IRQ);
|
||||
}
|
||||
|
||||
static void mcip_ipi_send(int cpu)
|
||||
@@ -33,12 +29,6 @@ static void mcip_ipi_send(int cpu)
|
||||
unsigned long flags;
|
||||
int ipi_was_pending;
|
||||
|
||||
/* ARConnect can only send IPI to others */
|
||||
if (unlikely(cpu == raw_smp_processor_id())) {
|
||||
arc_softirq_trigger(SOFTIRQ_IRQ);
|
||||
return;
|
||||
}
|
||||
|
||||
/*
|
||||
* NOTE: We must spin here if the other cpu hasn't yet
|
||||
* serviced a previous message. This can burn lots
|
||||
@@ -73,11 +63,6 @@ static void mcip_ipi_clear(int irq)
|
||||
unsigned long flags;
|
||||
unsigned int __maybe_unused copy;
|
||||
|
||||
if (unlikely(irq == SOFTIRQ_IRQ)) {
|
||||
arc_softirq_clear(irq);
|
||||
return;
|
||||
}
|
||||
|
||||
raw_spin_lock_irqsave(&mcip_lock, flags);
|
||||
|
||||
/* Who sent the IPI */
|
||||
@@ -147,7 +132,7 @@ static void mcip_probe_n_setup(void)
|
||||
struct plat_smp_ops plat_smp_ops = {
|
||||
.info = smp_cpuinfo_buf,
|
||||
.init_early_smp = mcip_probe_n_setup,
|
||||
.init_per_cpu = mcip_setup_per_cpu,
|
||||
.init_irq_cpu = mcip_setup_per_cpu,
|
||||
.ipi_send = mcip_ipi_send,
|
||||
.ipi_clear = mcip_ipi_clear,
|
||||
};
|
||||
|
||||
@@ -428,11 +428,12 @@ static irqreturn_t arc_pmu_intr(int irq, void *dev)
|
||||
|
||||
#endif /* CONFIG_ISA_ARCV2 */
|
||||
|
||||
static void arc_cpu_pmu_irq_init(void *data)
|
||||
void arc_cpu_pmu_irq_init(void)
|
||||
{
|
||||
int irq = *(int *)data;
|
||||
struct arc_pmu_cpu *pmu_cpu = this_cpu_ptr(&arc_pmu_cpu);
|
||||
|
||||
enable_percpu_irq(irq, IRQ_TYPE_NONE);
|
||||
arc_request_percpu_irq(arc_pmu->irq, smp_processor_id(), arc_pmu_intr,
|
||||
"ARC perf counters", pmu_cpu);
|
||||
|
||||
/* Clear all pending interrupt flags */
|
||||
write_aux_reg(ARC_REG_PCT_INT_ACT, 0xffffffff);
|
||||
@@ -514,6 +515,7 @@ static int arc_pmu_device_probe(struct platform_device *pdev)
|
||||
|
||||
if (has_interrupts) {
|
||||
int irq = platform_get_irq(pdev, 0);
|
||||
unsigned long flags;
|
||||
|
||||
if (irq < 0) {
|
||||
pr_err("Cannot get IRQ number for the platform\n");
|
||||
@@ -522,12 +524,24 @@ static int arc_pmu_device_probe(struct platform_device *pdev)
|
||||
|
||||
arc_pmu->irq = irq;
|
||||
|
||||
/* intc map function ensures irq_set_percpu_devid() called */
|
||||
request_percpu_irq(irq, arc_pmu_intr, "ARC perf counters",
|
||||
this_cpu_ptr(&arc_pmu_cpu));
|
||||
|
||||
on_each_cpu(arc_cpu_pmu_irq_init, &irq, 1);
|
||||
/*
|
||||
* arc_cpu_pmu_irq_init() needs to be called on all cores for
|
||||
* their respective local PMU.
|
||||
* However we use opencoded on_each_cpu() to ensure it is called
|
||||
* on core0 first, so that arc_request_percpu_irq() sets up
|
||||
* AUTOEN etc. Otherwise enable_percpu_irq() fails to enable
|
||||
* perf IRQ on non master cores.
|
||||
* see arc_request_percpu_irq()
|
||||
*/
|
||||
preempt_disable();
|
||||
local_irq_save(flags);
|
||||
arc_cpu_pmu_irq_init();
|
||||
local_irq_restore(flags);
|
||||
smp_call_function((smp_call_func_t)arc_cpu_pmu_irq_init, 0, 1);
|
||||
preempt_enable();
|
||||
|
||||
/* Clean all pending interrupt flags */
|
||||
write_aux_reg(ARC_REG_PCT_INT_ACT, 0xffffffff);
|
||||
} else
|
||||
arc_pmu->pmu.capabilities |= PERF_PMU_CAP_NO_INTERRUPT;
|
||||
|
||||
|
||||
@@ -332,6 +332,10 @@ static void arc_chk_core_config(void)
|
||||
pr_warn("CONFIG_ARC_FPU_SAVE_RESTORE needed for working apps\n");
|
||||
else if (!cpu->extn.fpu_dp && fpu_enabled)
|
||||
panic("FPU non-existent, disable CONFIG_ARC_FPU_SAVE_RESTORE\n");
|
||||
|
||||
if (is_isa_arcv2() && IS_ENABLED(CONFIG_SMP) && cpu->isa.atomic &&
|
||||
!IS_ENABLED(CONFIG_ARC_STAR_9000923308))
|
||||
panic("llock/scond livelock workaround missing\n");
|
||||
}
|
||||
|
||||
/*
|
||||
@@ -425,6 +429,7 @@ void __init setup_arch(char **cmdline_p)
|
||||
#endif
|
||||
|
||||
arc_unwind_init();
|
||||
arc_unwind_setup();
|
||||
}
|
||||
|
||||
static int __init customize_machine(void)
|
||||
|
||||
@@ -132,11 +132,11 @@ void start_kernel_secondary(void)
|
||||
pr_info("## CPU%u LIVE ##: Executing Code...\n", cpu);
|
||||
|
||||
/* Some SMP H/w setup - for each cpu */
|
||||
if (plat_smp_ops.init_per_cpu)
|
||||
plat_smp_ops.init_per_cpu(cpu);
|
||||
if (plat_smp_ops.init_irq_cpu)
|
||||
plat_smp_ops.init_irq_cpu(cpu);
|
||||
|
||||
if (machine_desc->init_per_cpu)
|
||||
machine_desc->init_per_cpu(cpu);
|
||||
if (machine_desc->init_cpu_smp)
|
||||
machine_desc->init_cpu_smp(cpu);
|
||||
|
||||
arc_local_timer_setup();
|
||||
|
||||
|
||||
@@ -142,7 +142,7 @@ arc_unwind_core(struct task_struct *tsk, struct pt_regs *regs,
|
||||
* prelogue is setup (callee regs saved and then fp set and not other
|
||||
* way around
|
||||
*/
|
||||
pr_warn_once("CONFIG_ARC_DW2_UNWIND needs to be enabled\n");
|
||||
pr_warn("CONFIG_ARC_DW2_UNWIND needs to be enabled\n");
|
||||
return 0;
|
||||
|
||||
#endif
|
||||
|
||||
@@ -170,23 +170,6 @@ static struct unwind_table *find_table(unsigned long pc)
|
||||
|
||||
static unsigned long read_pointer(const u8 **pLoc,
|
||||
const void *end, signed ptrType);
|
||||
static void init_unwind_hdr(struct unwind_table *table,
|
||||
void *(*alloc) (unsigned long));
|
||||
|
||||
/*
|
||||
* wrappers for header alloc (vs. calling one vs. other at call site)
|
||||
* to elide section mismatches warnings
|
||||
*/
|
||||
static void *__init unw_hdr_alloc_early(unsigned long sz)
|
||||
{
|
||||
return __alloc_bootmem_nopanic(sz, sizeof(unsigned int),
|
||||
MAX_DMA_ADDRESS);
|
||||
}
|
||||
|
||||
static void *unw_hdr_alloc(unsigned long sz)
|
||||
{
|
||||
return kmalloc(sz, GFP_KERNEL);
|
||||
}
|
||||
|
||||
static void init_unwind_table(struct unwind_table *table, const char *name,
|
||||
const void *core_start, unsigned long core_size,
|
||||
@@ -226,8 +209,6 @@ void __init arc_unwind_init(void)
|
||||
__start_unwind, __end_unwind - __start_unwind,
|
||||
NULL, 0);
|
||||
/*__start_unwind_hdr, __end_unwind_hdr - __start_unwind_hdr);*/
|
||||
|
||||
init_unwind_hdr(&root_table, unw_hdr_alloc_early);
|
||||
}
|
||||
|
||||
static const u32 bad_cie, not_fde;
|
||||
@@ -260,7 +241,7 @@ static void swap_eh_frame_hdr_table_entries(void *p1, void *p2, int size)
|
||||
e2->fde = v;
|
||||
}
|
||||
|
||||
static void init_unwind_hdr(struct unwind_table *table,
|
||||
static void __init setup_unwind_table(struct unwind_table *table,
|
||||
void *(*alloc) (unsigned long))
|
||||
{
|
||||
const u8 *ptr;
|
||||
@@ -296,10 +277,10 @@ static void init_unwind_hdr(struct unwind_table *table,
|
||||
if (cie == ¬_fde)
|
||||
continue;
|
||||
if (cie == NULL || cie == &bad_cie)
|
||||
goto ret_err;
|
||||
return;
|
||||
ptrType = fde_pointer_type(cie);
|
||||
if (ptrType < 0)
|
||||
goto ret_err;
|
||||
return;
|
||||
|
||||
ptr = (const u8 *)(fde + 2);
|
||||
if (!read_pointer(&ptr, (const u8 *)(fde + 1) + *fde,
|
||||
@@ -315,15 +296,13 @@ static void init_unwind_hdr(struct unwind_table *table,
|
||||
}
|
||||
|
||||
if (tableSize || !n)
|
||||
goto ret_err;
|
||||
return;
|
||||
|
||||
hdrSize = 4 + sizeof(unsigned long) + sizeof(unsigned int)
|
||||
+ 2 * n * sizeof(unsigned long);
|
||||
|
||||
header = alloc(hdrSize);
|
||||
if (!header)
|
||||
goto ret_err;
|
||||
|
||||
return;
|
||||
header->version = 1;
|
||||
header->eh_frame_ptr_enc = DW_EH_PE_abs | DW_EH_PE_native;
|
||||
header->fde_count_enc = DW_EH_PE_abs | DW_EH_PE_data4;
|
||||
@@ -361,10 +340,18 @@ static void init_unwind_hdr(struct unwind_table *table,
|
||||
table->hdrsz = hdrSize;
|
||||
smp_wmb();
|
||||
table->header = (const void *)header;
|
||||
return;
|
||||
}
|
||||
|
||||
ret_err:
|
||||
panic("Attention !!! Dwarf FDE parsing errors\n");;
|
||||
static void *__init balloc(unsigned long sz)
|
||||
{
|
||||
return __alloc_bootmem_nopanic(sz,
|
||||
sizeof(unsigned int),
|
||||
__pa(MAX_DMA_ADDRESS));
|
||||
}
|
||||
|
||||
void __init arc_unwind_setup(void)
|
||||
{
|
||||
setup_unwind_table(&root_table, balloc);
|
||||
}
|
||||
|
||||
#ifdef CONFIG_MODULES
|
||||
@@ -390,8 +377,6 @@ void *unwind_add_table(struct module *module, const void *table_start,
|
||||
table_start, table_size,
|
||||
NULL, 0);
|
||||
|
||||
init_unwind_hdr(table, unw_hdr_alloc);
|
||||
|
||||
#ifdef UNWIND_DEBUG
|
||||
unw_debug("Table added for [%s] %lx %lx\n",
|
||||
module->name, table->core.pc, table->core.range);
|
||||
@@ -454,7 +439,6 @@ void unwind_remove_table(void *handle, int init_only)
|
||||
info.init_only = init_only;
|
||||
|
||||
unlink_table(&info); /* XXX: SMP */
|
||||
kfree(table->header);
|
||||
kfree(table);
|
||||
}
|
||||
|
||||
@@ -604,6 +588,9 @@ static signed fde_pointer_type(const u32 *cie)
|
||||
const u8 *ptr = (const u8 *)(cie + 2);
|
||||
unsigned version = *ptr;
|
||||
|
||||
if (version != 1)
|
||||
return -1; /* unsupported */
|
||||
|
||||
if (*++ptr) {
|
||||
const char *aug;
|
||||
const u8 *end = (const u8 *)(cie + 1) + *cie;
|
||||
@@ -1015,7 +1002,9 @@ int arc_unwind(struct unwind_frame_info *frame)
|
||||
ptr = (const u8 *)(cie + 2);
|
||||
end = (const u8 *)(cie + 1) + *cie;
|
||||
frame->call_frame = 1;
|
||||
if (*++ptr) {
|
||||
if ((state.version = *ptr) != 1)
|
||||
cie = NULL; /* unsupported version */
|
||||
else if (*++ptr) {
|
||||
/* check if augmentation size is first (thus present) */
|
||||
if (*ptr == 'z') {
|
||||
while (++ptr < end && *ptr) {
|
||||
|
||||
@@ -914,15 +914,6 @@ void arc_cache_init(void)
|
||||
|
||||
printk(arc_cache_mumbojumbo(0, str, sizeof(str)));
|
||||
|
||||
/*
|
||||
* Only master CPU needs to execute rest of function:
|
||||
* - Assume SMP so all cores will have same cache config so
|
||||
* any geomtry checks will be same for all
|
||||
* - IOC setup / dma callbacks only need to be setup once
|
||||
*/
|
||||
if (cpu)
|
||||
return;
|
||||
|
||||
if (IS_ENABLED(CONFIG_ARC_HAS_ICACHE)) {
|
||||
struct cpuinfo_arc_cache *ic = &cpuinfo_arc700[cpu].icache;
|
||||
|
||||
|
||||
@@ -111,7 +111,7 @@ void __kunmap_atomic(void *kv)
|
||||
}
|
||||
EXPORT_SYMBOL(__kunmap_atomic);
|
||||
|
||||
static noinline pte_t * __init alloc_kmap_pgtable(unsigned long kvaddr)
|
||||
noinline pte_t *alloc_kmap_pgtable(unsigned long kvaddr)
|
||||
{
|
||||
pgd_t *pgd_k;
|
||||
pud_t *pud_k;
|
||||
@@ -127,7 +127,7 @@ static noinline pte_t * __init alloc_kmap_pgtable(unsigned long kvaddr)
|
||||
return pte_k;
|
||||
}
|
||||
|
||||
void __init kmap_init(void)
|
||||
void kmap_init(void)
|
||||
{
|
||||
/* Due to recursive include hell, we can't do this in processor.h */
|
||||
BUILD_BUG_ON(PAGE_OFFSET < (VMALLOC_END + FIXMAP_SIZE + PKMAP_SIZE));
|
||||
|
||||
@@ -51,9 +51,7 @@ void __init early_init_dt_add_memory_arch(u64 base, u64 size)
|
||||
int in_use = 0;
|
||||
|
||||
if (!low_mem_sz) {
|
||||
if (base != low_mem_start)
|
||||
panic("CONFIG_LINUX_LINK_BASE != DT memory { }");
|
||||
|
||||
BUG_ON(base != low_mem_start);
|
||||
low_mem_sz = size;
|
||||
in_use = 1;
|
||||
} else {
|
||||
|
||||
@@ -162,9 +162,10 @@ choice
|
||||
mobile SoCs in the Kona family of chips (e.g. bcm28155,
|
||||
bcm11351, etc...)
|
||||
|
||||
config DEBUG_BCM63XX_UART
|
||||
config DEBUG_BCM63XX
|
||||
bool "Kernel low-level debugging on BCM63XX UART"
|
||||
depends on ARCH_BCM_63XX
|
||||
select DEBUG_UART_BCM63XX
|
||||
|
||||
config DEBUG_BERLIN_UART
|
||||
bool "Marvell Berlin SoC Debug UART"
|
||||
@@ -1355,7 +1356,7 @@ config DEBUG_LL_INCLUDE
|
||||
default "debug/vf.S" if DEBUG_VF_UART
|
||||
default "debug/vt8500.S" if DEBUG_VT8500_UART0
|
||||
default "debug/zynq.S" if DEBUG_ZYNQ_UART0 || DEBUG_ZYNQ_UART1
|
||||
default "debug/bcm63xx.S" if DEBUG_BCM63XX_UART
|
||||
default "debug/bcm63xx.S" if DEBUG_UART_BCM63XX
|
||||
default "debug/digicolor.S" if DEBUG_DIGICOLOR_UA0
|
||||
default "mach/debug-macro.S"
|
||||
|
||||
@@ -1371,6 +1372,10 @@ config DEBUG_UART_8250
|
||||
ARCH_IOP33X || ARCH_IXP4XX || \
|
||||
ARCH_LPC32XX || ARCH_MV78XX0 || ARCH_ORION5X || ARCH_RPC
|
||||
|
||||
# Compatibility options for BCM63xx
|
||||
config DEBUG_UART_BCM63XX
|
||||
def_bool ARCH_BCM_63XX
|
||||
|
||||
config DEBUG_UART_PHYS
|
||||
hex "Physical base address of debug UART"
|
||||
default 0x00100a00 if DEBUG_NETX_UART
|
||||
@@ -1465,7 +1470,7 @@ config DEBUG_UART_PHYS
|
||||
default 0xfffb0000 if DEBUG_OMAP1UART1 || DEBUG_OMAP7XXUART1
|
||||
default 0xfffb0800 if DEBUG_OMAP1UART2 || DEBUG_OMAP7XXUART2
|
||||
default 0xfffb9800 if DEBUG_OMAP1UART3 || DEBUG_OMAP7XXUART3
|
||||
default 0xfffe8600 if DEBUG_BCM63XX_UART
|
||||
default 0xfffe8600 if DEBUG_UART_BCM63XX
|
||||
default 0xfffff700 if ARCH_IOP33X
|
||||
depends on ARCH_EP93XX || \
|
||||
DEBUG_LL_UART_8250 || DEBUG_LL_UART_PL01X || \
|
||||
@@ -1477,7 +1482,7 @@ config DEBUG_UART_PHYS
|
||||
DEBUG_RCAR_GEN2_SCIF0 || DEBUG_RCAR_GEN2_SCIF2 || \
|
||||
DEBUG_RMOBILE_SCIFA0 || DEBUG_RMOBILE_SCIFA1 || \
|
||||
DEBUG_RMOBILE_SCIFA4 || DEBUG_S3C24XX_UART || \
|
||||
DEBUG_BCM63XX_UART || DEBUG_ASM9260_UART || \
|
||||
DEBUG_UART_BCM63XX || DEBUG_ASM9260_UART || \
|
||||
DEBUG_SIRFSOC_UART || DEBUG_DIGICOLOR_UA0 || \
|
||||
DEBUG_AT91_UART
|
||||
|
||||
@@ -1518,7 +1523,7 @@ config DEBUG_UART_VIRT
|
||||
default 0xfb10c000 if DEBUG_REALVIEW_PB1176_PORT
|
||||
default 0xfc40ab00 if DEBUG_BRCMSTB_UART
|
||||
default 0xfc705000 if DEBUG_ZTE_ZX
|
||||
default 0xfcfe8600 if DEBUG_BCM63XX_UART
|
||||
default 0xfcfe8600 if DEBUG_UART_BCM63XX
|
||||
default 0xfd000000 if ARCH_SPEAR3XX || ARCH_SPEAR6XX
|
||||
default 0xfd000000 if ARCH_SPEAR13XX
|
||||
default 0xfd012000 if ARCH_MV78XX0
|
||||
@@ -1569,7 +1574,7 @@ config DEBUG_UART_VIRT
|
||||
DEBUG_UART_8250 || DEBUG_UART_PL01X || DEBUG_MESON_UARTAO || \
|
||||
DEBUG_NETX_UART || \
|
||||
DEBUG_QCOM_UARTDM || DEBUG_S3C24XX_UART || \
|
||||
DEBUG_BCM63XX_UART || DEBUG_ASM9260_UART || \
|
||||
DEBUG_UART_BCM63XX || DEBUG_ASM9260_UART || \
|
||||
DEBUG_SIRFSOC_UART || DEBUG_DIGICOLOR_UA0
|
||||
|
||||
config DEBUG_UART_8250_SHIFT
|
||||
|
||||
2
arch/arm/boot/.gitignore
vendored
2
arch/arm/boot/.gitignore
vendored
@@ -3,4 +3,4 @@ zImage
|
||||
xipImage
|
||||
bootpImage
|
||||
uImage
|
||||
*.dtb*
|
||||
*.dtb
|
||||
|
||||
@@ -5,8 +5,6 @@ dtb-$(CONFIG_ARCH_BCM2708) += bcm2708-rpi-b-plus.dtb
|
||||
dtb-$(CONFIG_ARCH_BCM2708) += bcm2708-rpi-cm.dtb
|
||||
dtb-$(CONFIG_ARCH_BCM2835) += bcm2835-rpi-cm.dtb
|
||||
dtb-$(CONFIG_ARCH_BCM2709) += bcm2709-rpi-2-b.dtb
|
||||
dtb-$(CONFIG_ARCH_BCM2709) += bcm2710-rpi-3-b.dtb
|
||||
dtb-$(CONFIG_ARCH_BCM2709) += bcm2710-rpi-cm3.dtb
|
||||
|
||||
# Raspberry Pi
|
||||
ifeq ($(CONFIG_ARCH_BCM2708),y)
|
||||
@@ -814,5 +812,5 @@ clean-files := *.dtb
|
||||
|
||||
# Enable fixups to support overlays on BCM2708 platforms
|
||||
ifeq ($(RPI_DT_OVERLAYS),y)
|
||||
DTC_FLAGS ?= -@ -H epapr
|
||||
DTC_FLAGS ?= -@
|
||||
endif
|
||||
|
||||
@@ -792,8 +792,3 @@
|
||||
tx-num-evt = <32>;
|
||||
rx-num-evt = <32>;
|
||||
};
|
||||
|
||||
&synctimer_32kclk {
|
||||
assigned-clocks = <&mux_synctimer32k_ck>;
|
||||
assigned-clock-parents = <&clkdiv32k_ick>;
|
||||
};
|
||||
|
||||
@@ -529,7 +529,7 @@
|
||||
};
|
||||
|
||||
sata@a0000 {
|
||||
compatible = "marvell,armada-370-sata";
|
||||
compatible = "marvell,orion-sata";
|
||||
reg = <0xa0000 0x5000>;
|
||||
interrupts = <GIC_SPI 26 IRQ_TYPE_LEVEL_HIGH>;
|
||||
clocks = <&gateclk 14>, <&gateclk 20>;
|
||||
|
||||
@@ -58,8 +58,8 @@
|
||||
soc {
|
||||
ranges = <MBUS_ID(0xf0, 0x01) 0 0xf1000000 0x100000
|
||||
MBUS_ID(0x01, 0x1d) 0 0xfff00000 0x100000
|
||||
MBUS_ID(0x09, 0x19) 0 0xf1100000 0x10000
|
||||
MBUS_ID(0x09, 0x15) 0 0xf1110000 0x10000>;
|
||||
MBUS_ID(0x09, 0x09) 0 0xf1100000 0x10000
|
||||
MBUS_ID(0x09, 0x05) 0 0xf1110000 0x10000>;
|
||||
|
||||
internal-regs {
|
||||
|
||||
@@ -117,7 +117,7 @@
|
||||
};
|
||||
|
||||
/* USB part of the eSATA/USB 2.0 port */
|
||||
usb@58000 {
|
||||
usb@50000 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
@@ -245,7 +245,7 @@
|
||||
button@2 {
|
||||
label = "Factory Reset Button";
|
||||
linux,code = <KEY_RESTART>;
|
||||
gpios = <&gpio0 29 GPIO_ACTIVE_LOW>;
|
||||
gpios = <&gpio1 15 GPIO_ACTIVE_LOW>;
|
||||
};
|
||||
};
|
||||
|
||||
@@ -260,7 +260,7 @@
|
||||
};
|
||||
|
||||
sata {
|
||||
gpios = <&gpio1 22 GPIO_ACTIVE_LOW>;
|
||||
gpios = <&gpio1 22 GPIO_ACTIVE_HIGH>;
|
||||
default-state = "off";
|
||||
};
|
||||
};
|
||||
@@ -313,7 +313,7 @@
|
||||
|
||||
&pinctrl {
|
||||
keys_pin: keys-pin {
|
||||
marvell,pins = "mpp24", "mpp29";
|
||||
marvell,pins = "mpp24", "mpp47";
|
||||
marvell,function = "gpio";
|
||||
};
|
||||
|
||||
|
||||
@@ -303,6 +303,16 @@
|
||||
gpio = <&expander0 4 GPIO_ACTIVE_HIGH>;
|
||||
};
|
||||
|
||||
reg_usb2_1_vbus: v5-vbus1 {
|
||||
compatible = "regulator-fixed";
|
||||
regulator-name = "v5.0-vbus1";
|
||||
regulator-min-microvolt = <5000000>;
|
||||
regulator-max-microvolt = <5000000>;
|
||||
enable-active-high;
|
||||
regulator-always-on;
|
||||
gpio = <&expander0 4 GPIO_ACTIVE_HIGH>;
|
||||
};
|
||||
|
||||
reg_sata0: pwr-sata0 {
|
||||
compatible = "regulator-fixed";
|
||||
regulator-name = "pwr_en_sata0";
|
||||
|
||||
@@ -70,8 +70,8 @@
|
||||
soc {
|
||||
ranges = <MBUS_ID(0xf0, 0x01) 0 0 0xf1000000 0x100000
|
||||
MBUS_ID(0x01, 0x1d) 0 0 0xfff00000 0x100000
|
||||
MBUS_ID(0x09, 0x09) 0 0 0xf1100000 0x10000
|
||||
MBUS_ID(0x09, 0x05) 0 0 0xf1110000 0x10000>;
|
||||
MBUS_ID(0x09, 0x09) 0 0 0xf8100000 0x10000
|
||||
MBUS_ID(0x09, 0x05) 0 0 0xf8110000 0x10000>;
|
||||
|
||||
pcie-controller {
|
||||
status = "okay";
|
||||
|
||||
@@ -76,8 +76,8 @@
|
||||
ranges = <MBUS_ID(0xf0, 0x01) 0 0 0xf1000000 0x100000
|
||||
MBUS_ID(0x01, 0x1d) 0 0 0xfff00000 0x100000
|
||||
MBUS_ID(0x01, 0x2f) 0 0 0xf0000000 0x1000000
|
||||
MBUS_ID(0x09, 0x09) 0 0 0xf1100000 0x10000
|
||||
MBUS_ID(0x09, 0x05) 0 0 0xf1110000 0x10000>;
|
||||
MBUS_ID(0x09, 0x09) 0 0 0xf8100000 0x10000
|
||||
MBUS_ID(0x09, 0x05) 0 0 0xf8110000 0x10000>;
|
||||
|
||||
devbus-bootcs {
|
||||
status = "okay";
|
||||
|
||||
@@ -95,8 +95,8 @@
|
||||
ranges = <MBUS_ID(0xf0, 0x01) 0 0 0xf1000000 0x100000
|
||||
MBUS_ID(0x01, 0x1d) 0 0 0xfff00000 0x100000
|
||||
MBUS_ID(0x01, 0x2f) 0 0 0xf0000000 0x1000000
|
||||
MBUS_ID(0x09, 0x09) 0 0 0xf1100000 0x10000
|
||||
MBUS_ID(0x09, 0x05) 0 0 0xf1110000 0x10000>;
|
||||
MBUS_ID(0x09, 0x09) 0 0 0xf8100000 0x10000
|
||||
MBUS_ID(0x09, 0x05) 0 0 0xf8110000 0x10000>;
|
||||
|
||||
devbus-bootcs {
|
||||
status = "okay";
|
||||
|
||||
@@ -65,8 +65,8 @@
|
||||
soc {
|
||||
ranges = <MBUS_ID(0xf0, 0x01) 0 0 0xd0000000 0x100000
|
||||
MBUS_ID(0x01, 0x1d) 0 0 0xfff00000 0x100000
|
||||
MBUS_ID(0x09, 0x09) 0 0 0xf1100000 0x10000
|
||||
MBUS_ID(0x09, 0x05) 0 0 0xf1110000 0x10000>;
|
||||
MBUS_ID(0x09, 0x09) 0 0 0xf8100000 0x10000
|
||||
MBUS_ID(0x09, 0x05) 0 0 0xf8110000 0x10000>;
|
||||
|
||||
pcie-controller {
|
||||
status = "okay";
|
||||
|
||||
@@ -70,8 +70,8 @@
|
||||
soc {
|
||||
ranges = <MBUS_ID(0xf0, 0x01) 0 0 0xf1000000 0x100000
|
||||
MBUS_ID(0x01, 0x1d) 0 0 0xfff00000 0x100000
|
||||
MBUS_ID(0x09, 0x09) 0 0 0xf1100000 0x10000
|
||||
MBUS_ID(0x09, 0x05) 0 0 0xf1110000 0x10000>;
|
||||
MBUS_ID(0x09, 0x09) 0 0 0xf8100000 0x10000
|
||||
MBUS_ID(0x09, 0x05) 0 0 0xf8110000 0x10000>;
|
||||
|
||||
pcie-controller {
|
||||
status = "okay";
|
||||
@@ -304,13 +304,13 @@
|
||||
button@1 {
|
||||
label = "WPS";
|
||||
linux,code = <KEY_WPS_BUTTON>;
|
||||
gpios = <&gpio1 0 GPIO_ACTIVE_LOW>;
|
||||
gpios = <&gpio1 0 GPIO_ACTIVE_HIGH>;
|
||||
};
|
||||
|
||||
button@2 {
|
||||
label = "Factory Reset Button";
|
||||
linux,code = <KEY_RESTART>;
|
||||
gpios = <&gpio1 1 GPIO_ACTIVE_LOW>;
|
||||
gpios = <&gpio1 1 GPIO_ACTIVE_HIGH>;
|
||||
};
|
||||
};
|
||||
|
||||
|
||||
@@ -68,8 +68,8 @@
|
||||
soc {
|
||||
ranges = <MBUS_ID(0xf0, 0x01) 0 0 0xf1000000 0x100000
|
||||
MBUS_ID(0x01, 0x1d) 0 0 0xfff00000 0x100000
|
||||
MBUS_ID(0x09, 0x09) 0 0 0xf1100000 0x10000
|
||||
MBUS_ID(0x09, 0x05) 0 0 0xf1110000 0x10000>;
|
||||
MBUS_ID(0x09, 0x09) 0 0 0xf8100000 0x10000
|
||||
MBUS_ID(0x09, 0x05) 0 0 0xf8110000 0x10000>;
|
||||
|
||||
internal-regs {
|
||||
serial@12000 {
|
||||
|
||||
@@ -64,8 +64,8 @@
|
||||
soc {
|
||||
ranges = <MBUS_ID(0xf0, 0x01) 0 0 0xd0000000 0x100000
|
||||
MBUS_ID(0x01, 0x1d) 0 0 0xfff00000 0x100000
|
||||
MBUS_ID(0x09, 0x09) 0 0 0xf1100000 0x10000
|
||||
MBUS_ID(0x09, 0x05) 0 0 0xf1110000 0x10000>;
|
||||
MBUS_ID(0x09, 0x09) 0 0 0xf8100000 0x10000
|
||||
MBUS_ID(0x09, 0x05) 0 0 0xf8110000 0x10000>;
|
||||
|
||||
pcie-controller {
|
||||
status = "okay";
|
||||
|
||||
@@ -65,9 +65,9 @@
|
||||
soc {
|
||||
ranges = <MBUS_ID(0xf0, 0x01) 0 0 0xd0000000 0x100000
|
||||
MBUS_ID(0x01, 0x1d) 0 0 0xfff00000 0x100000
|
||||
MBUS_ID(0x01, 0x2f) 0 0 0xe8000000 0x8000000
|
||||
MBUS_ID(0x09, 0x09) 0 0 0xf1100000 0x10000
|
||||
MBUS_ID(0x09, 0x05) 0 0 0xf1110000 0x10000>;
|
||||
MBUS_ID(0x01, 0x2f) 0 0 0xf0000000 0x8000000
|
||||
MBUS_ID(0x09, 0x09) 0 0 0xf8100000 0x10000
|
||||
MBUS_ID(0x09, 0x05) 0 0 0xf8110000 0x10000>;
|
||||
|
||||
devbus-bootcs {
|
||||
status = "okay";
|
||||
|
||||
@@ -78,8 +78,8 @@
|
||||
soc {
|
||||
ranges = <MBUS_ID(0xf0, 0x01) 0 0 0xf1000000 0x100000
|
||||
MBUS_ID(0x01, 0x1d) 0 0 0xfff00000 0x100000
|
||||
MBUS_ID(0x09, 0x09) 0 0 0xf1100000 0x10000
|
||||
MBUS_ID(0x09, 0x05) 0 0 0xf1110000 0x10000>;
|
||||
MBUS_ID(0x09, 0x09) 0 0 0xf8100000 0x10000
|
||||
MBUS_ID(0x09, 0x05) 0 0 0xf8110000 0x10000>;
|
||||
|
||||
pcie-controller {
|
||||
status = "okay";
|
||||
|
||||
@@ -303,7 +303,6 @@
|
||||
regulator-name = "mmc0-card-supply";
|
||||
regulator-min-microvolt = <3300000>;
|
||||
regulator-max-microvolt = <3300000>;
|
||||
regulator-always-on;
|
||||
};
|
||||
|
||||
gpio_keys {
|
||||
|
||||
@@ -86,12 +86,10 @@
|
||||
macb0: ethernet@f8020000 {
|
||||
phy-mode = "rmii";
|
||||
status = "okay";
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&pinctrl_macb0_rmii &pinctrl_macb0_phy_irq>;
|
||||
|
||||
phy0: ethernet-phy@1 {
|
||||
interrupt-parent = <&pioE>;
|
||||
interrupts = <1 IRQ_TYPE_LEVEL_LOW>;
|
||||
interrupts = <1 IRQ_TYPE_EDGE_FALLING>;
|
||||
reg = <1>;
|
||||
};
|
||||
};
|
||||
@@ -154,10 +152,6 @@
|
||||
atmel,pins =
|
||||
<AT91_PIOE 8 AT91_PERIPH_GPIO AT91_PINCTRL_PULL_UP_DEGLITCH>;
|
||||
};
|
||||
pinctrl_macb0_phy_irq: macb0_phy_irq_0 {
|
||||
atmel,pins =
|
||||
<AT91_PIOE 1 AT91_PERIPH_GPIO AT91_PINCTRL_PULL_UP_DEGLITCH>;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
@@ -268,6 +262,5 @@
|
||||
regulator-min-microvolt = <3300000>;
|
||||
regulator-max-microvolt = <3300000>;
|
||||
vin-supply = <&vcc_3v3_reg>;
|
||||
regulator-always-on;
|
||||
};
|
||||
};
|
||||
|
||||
@@ -160,15 +160,8 @@
|
||||
};
|
||||
|
||||
macb0: ethernet@f8020000 {
|
||||
pinctrl-0 = <&pinctrl_macb0_rmii &pinctrl_macb0_phy_irq>;
|
||||
phy-mode = "rmii";
|
||||
status = "okay";
|
||||
|
||||
ethernet-phy@1 {
|
||||
reg = <0x1>;
|
||||
interrupt-parent = <&pioE>;
|
||||
interrupts = <1 IRQ_TYPE_LEVEL_LOW>;
|
||||
};
|
||||
};
|
||||
|
||||
mmc1: mmc@fc000000 {
|
||||
@@ -200,10 +193,6 @@
|
||||
|
||||
pinctrl@fc06a000 {
|
||||
board {
|
||||
pinctrl_macb0_phy_irq: macb0_phy_irq {
|
||||
atmel,pins =
|
||||
<AT91_PIOE 1 AT91_PERIPH_GPIO AT91_PINCTRL_NONE>;
|
||||
};
|
||||
pinctrl_mmc0_cd: mmc0_cd {
|
||||
atmel,pins =
|
||||
<AT91_PIOE 5 AT91_PERIPH_GPIO AT91_PINCTRL_PULL_UP_DEGLITCH>;
|
||||
|
||||
@@ -106,7 +106,7 @@
|
||||
|
||||
pmc: pmc@fffffc00 {
|
||||
compatible = "atmel,at91sam9x5-pmc", "syscon";
|
||||
reg = <0xfffffc00 0x200>;
|
||||
reg = <0xfffffc00 0x100>;
|
||||
interrupts = <1 IRQ_TYPE_LEVEL_HIGH 7>;
|
||||
interrupt-controller;
|
||||
#address-cells = <1>;
|
||||
|
||||
@@ -37,11 +37,6 @@
|
||||
brcm,pins = <18 19 20 21>;
|
||||
brcm,function = <4>; /* alt0 */
|
||||
};
|
||||
|
||||
audio_pins: audio_pins {
|
||||
brcm,pins = <40 45>;
|
||||
brcm,function = <4>;
|
||||
};
|
||||
};
|
||||
|
||||
&sdhost {
|
||||
@@ -64,7 +59,7 @@
|
||||
pinctrl-0 = <&spi0_pins &spi0_cs_pins>;
|
||||
cs-gpios = <&gpio 8 1>, <&gpio 7 1>;
|
||||
|
||||
spidev0: spidev@0{
|
||||
spidev@0{
|
||||
compatible = "spidev";
|
||||
reg = <0>; /* CE0 */
|
||||
#address-cells = <1>;
|
||||
@@ -72,7 +67,7 @@
|
||||
spi-max-frequency = <500000>;
|
||||
};
|
||||
|
||||
spidev1: spidev@1{
|
||||
spidev@1{
|
||||
compatible = "spidev";
|
||||
reg = <1>; /* CE1 */
|
||||
#address-cells = <1>;
|
||||
@@ -121,20 +116,10 @@
|
||||
};
|
||||
};
|
||||
|
||||
&hdmi {
|
||||
hpd-gpios = <&gpio 46 GPIO_ACTIVE_LOW>;
|
||||
};
|
||||
|
||||
&audio {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&audio_pins>;
|
||||
};
|
||||
|
||||
/ {
|
||||
__overrides__ {
|
||||
uart0 = <&uart0>,"status";
|
||||
uart0_clkrate = <&clk_uart0>,"clock-frequency:0";
|
||||
uart1 = <&uart1>,"status";
|
||||
i2s = <&i2s>,"status";
|
||||
spi = <&spi0>,"status";
|
||||
i2c0 = <&i2c0>,"status";
|
||||
@@ -156,9 +141,5 @@
|
||||
audio = <&audio>,"status";
|
||||
watchdog = <&watchdog>,"status";
|
||||
random = <&random>,"status";
|
||||
sd_overclock = <&sdhost>,"brcm,overclock-50:0";
|
||||
sd_force_pio = <&sdhost>,"brcm,force-pio?";
|
||||
sd_pio_limit = <&sdhost>,"brcm,pio-limit:0";
|
||||
sd_debug = <&sdhost>,"brcm,debug";
|
||||
};
|
||||
};
|
||||
|
||||
@@ -37,11 +37,6 @@
|
||||
brcm,pins = <28 29 30 31>;
|
||||
brcm,function = <6>; /* alt2 */
|
||||
};
|
||||
|
||||
audio_pins: audio_pins {
|
||||
brcm,pins = <40 45>;
|
||||
brcm,function = <4>;
|
||||
};
|
||||
};
|
||||
|
||||
&sdhost {
|
||||
@@ -64,7 +59,7 @@
|
||||
pinctrl-0 = <&spi0_pins &spi0_cs_pins>;
|
||||
cs-gpios = <&gpio 8 1>, <&gpio 7 1>;
|
||||
|
||||
spidev0: spidev@0{
|
||||
spidev@0{
|
||||
compatible = "spidev";
|
||||
reg = <0>; /* CE0 */
|
||||
#address-cells = <1>;
|
||||
@@ -72,7 +67,7 @@
|
||||
spi-max-frequency = <500000>;
|
||||
};
|
||||
|
||||
spidev1: spidev@1{
|
||||
spidev@1{
|
||||
compatible = "spidev";
|
||||
reg = <1>; /* CE1 */
|
||||
#address-cells = <1>;
|
||||
@@ -115,20 +110,10 @@
|
||||
};
|
||||
};
|
||||
|
||||
&hdmi {
|
||||
hpd-gpios = <&gpio 46 GPIO_ACTIVE_HIGH>;
|
||||
};
|
||||
|
||||
&audio {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&audio_pins>;
|
||||
};
|
||||
|
||||
/ {
|
||||
__overrides__ {
|
||||
uart0 = <&uart0>,"status";
|
||||
uart0_clkrate = <&clk_uart0>,"clock-frequency:0";
|
||||
uart1 = <&uart1>,"status";
|
||||
i2s = <&i2s>,"status";
|
||||
spi = <&spi0>,"status";
|
||||
i2c0 = <&i2c0>,"status";
|
||||
@@ -146,9 +131,5 @@
|
||||
audio = <&audio>,"status";
|
||||
watchdog = <&watchdog>,"status";
|
||||
random = <&random>,"status";
|
||||
sd_overclock = <&sdhost>,"brcm,overclock-50:0";
|
||||
sd_force_pio = <&sdhost>,"brcm,force-pio?";
|
||||
sd_pio_limit = <&sdhost>,"brcm,pio-limit:0";
|
||||
sd_debug = <&sdhost>,"brcm,debug";
|
||||
};
|
||||
};
|
||||
|
||||
@@ -35,11 +35,6 @@
|
||||
brcm,pins = <18 19 20 21>;
|
||||
brcm,function = <4>; /* alt0 */
|
||||
};
|
||||
|
||||
audio_pins: audio_pins {
|
||||
brcm,pins;
|
||||
brcm,function;
|
||||
};
|
||||
};
|
||||
|
||||
&spi0 {
|
||||
@@ -47,7 +42,7 @@
|
||||
pinctrl-0 = <&spi0_pins &spi0_cs_pins>;
|
||||
cs-gpios = <&gpio 8 1>, <&gpio 7 1>;
|
||||
|
||||
spidev0: spidev@0{
|
||||
spidev@0{
|
||||
compatible = "spidev";
|
||||
reg = <0>; /* CE0 */
|
||||
#address-cells = <1>;
|
||||
@@ -55,7 +50,7 @@
|
||||
spi-max-frequency = <500000>;
|
||||
};
|
||||
|
||||
spidev1: spidev@1{
|
||||
spidev@1{
|
||||
compatible = "spidev";
|
||||
reg = <1>; /* CE1 */
|
||||
#address-cells = <1>;
|
||||
@@ -94,7 +89,6 @@
|
||||
__overrides__ {
|
||||
uart0 = <&uart0>,"status";
|
||||
uart0_clkrate = <&clk_uart0>,"clock-frequency:0";
|
||||
uart1 = <&uart1>,"status";
|
||||
i2s = <&i2s>,"status";
|
||||
spi = <&spi0>,"status";
|
||||
i2c0 = <&i2c0>,"status";
|
||||
@@ -103,5 +97,6 @@
|
||||
i2c0_baudrate = <&i2c0>,"clock-frequency:0";
|
||||
i2c1_baudrate = <&i2c1>,"clock-frequency:0";
|
||||
i2c2_baudrate = <&i2c2>,"clock-frequency:0";
|
||||
core_freq = <&clk_core>,"clock-frequency:0";
|
||||
};
|
||||
};
|
||||
|
||||
@@ -7,13 +7,6 @@
|
||||
};
|
||||
};
|
||||
|
||||
&gpio {
|
||||
mmc_pins: mmc_pins {
|
||||
brcm,pins = <48 49 50 51 52 53>;
|
||||
brcm,function = <7>; /* alt3 */
|
||||
};
|
||||
};
|
||||
|
||||
&leds {
|
||||
act_led: act {
|
||||
label = "led0";
|
||||
@@ -22,14 +15,12 @@
|
||||
};
|
||||
};
|
||||
|
||||
|
||||
&sdhost {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&sdhost_pins>;
|
||||
non-removable;
|
||||
bus-width = <4>;
|
||||
non-removable;
|
||||
status = "okay";
|
||||
brcm,overclock-50 = <0>;
|
||||
};
|
||||
|
||||
&fb {
|
||||
@@ -38,8 +29,6 @@
|
||||
|
||||
/ {
|
||||
__overrides__ {
|
||||
core_freq = <&clk_core>,"clock-frequency:0";
|
||||
|
||||
act_led_gpio = <&act_led>,"gpios:4";
|
||||
act_led_activelow = <&act_led>,"gpios:8";
|
||||
act_led_trigger = <&act_led>,"linux,default-trigger";
|
||||
@@ -47,6 +36,5 @@
|
||||
audio = <&audio>,"status";
|
||||
watchdog = <&watchdog>,"status";
|
||||
random = <&random>,"status";
|
||||
sd_overclock = <&mmc>,"brcm,overclock-50:0";
|
||||
};
|
||||
};
|
||||
|
||||
@@ -1,8 +1,3 @@
|
||||
#include "dt-bindings/clock/bcm2835.h"
|
||||
#include <dt-bindings/clock/bcm2835-aux.h>
|
||||
#include "dt-bindings/power/raspberrypi-power.h"
|
||||
#include "dt-bindings/gpio/gpio.h"
|
||||
#include "dt-bindings/pinctrl/bcm2835.h"
|
||||
#include "skeleton.dtsi"
|
||||
|
||||
/ {
|
||||
@@ -10,7 +5,6 @@
|
||||
|
||||
aliases {
|
||||
audio = &audio;
|
||||
aux = &aux;
|
||||
sound = &sound;
|
||||
soc = &soc;
|
||||
dma = &dma;
|
||||
@@ -25,8 +19,6 @@
|
||||
spi0 = &spi0;
|
||||
i2c0 = &i2c0;
|
||||
uart1 = &uart1;
|
||||
spi1 = &spi1;
|
||||
spi2 = &spi2;
|
||||
mmc = &mmc;
|
||||
i2c1 = &i2c1;
|
||||
i2c2 = &i2c2;
|
||||
@@ -38,6 +30,17 @@
|
||||
clocks = &clocks;
|
||||
};
|
||||
|
||||
/* Onboard audio */
|
||||
audio: audio {
|
||||
compatible = "brcm,bcm2835-audio";
|
||||
brcm,pwm-channels = <8>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
/* External sound card */
|
||||
sound: sound {
|
||||
};
|
||||
|
||||
soc: soc {
|
||||
compatible = "simple-bus";
|
||||
#address-cells = <1>;
|
||||
@@ -57,32 +60,10 @@
|
||||
<1 24>,
|
||||
<1 25>,
|
||||
<1 26>,
|
||||
/* dma channel 11-14 share one irq */
|
||||
<1 27>,
|
||||
<1 27>,
|
||||
<1 27>,
|
||||
<1 27>,
|
||||
/* unused shared irq for all channels */
|
||||
<1 28>;
|
||||
interrupt-names = "dma0",
|
||||
"dma1",
|
||||
"dma2",
|
||||
"dma3",
|
||||
"dma4",
|
||||
"dma5",
|
||||
"dma6",
|
||||
"dma7",
|
||||
"dma8",
|
||||
"dma9",
|
||||
"dma10",
|
||||
"dma11",
|
||||
"dma12",
|
||||
"dma13",
|
||||
"dma14",
|
||||
"dma-shared-all";
|
||||
<1 27>;
|
||||
|
||||
#dma-cells = <1>;
|
||||
brcm,dma-channel-mask = <0x7f34>;
|
||||
brcm,dma-channel-mask = <0x0f35>;
|
||||
};
|
||||
|
||||
intc: interrupt-controller@7e00b200 {
|
||||
@@ -111,10 +92,9 @@
|
||||
reg = <0x7e101000 0x2000>;
|
||||
|
||||
/* CPRMAN derives everything from the platform's
|
||||
* oscillator except for a few clocks that may
|
||||
* derive from something else derived from CPRMAN..
|
||||
* oscillator.
|
||||
*/
|
||||
clocks = <&clk_osc>, <&dsi1 0>, <&dsi1 1>, <&dsi1 2>;
|
||||
clocks = <&clk_osc>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
@@ -152,16 +132,15 @@
|
||||
reg = <0x7e202000 0x100>;
|
||||
interrupts = <2 24>;
|
||||
clocks = <&clk_core>;
|
||||
dmas = <&dma 13>;
|
||||
dma-names = "rx-tx";
|
||||
brcm,overclock-50 = <0>;
|
||||
dmas = <&dma 13>,
|
||||
<&dma 13>;
|
||||
dma-names = "tx", "rx";
|
||||
brcm,pio-limit = <1>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
i2s: i2s@7e203000 {
|
||||
compatible = "brcm,bcm2835-i2s";
|
||||
#sound-dai-cells = <0>;
|
||||
reg = <0x7e203000 0x24>,
|
||||
<0x7e101098 0x08>;
|
||||
|
||||
@@ -185,7 +164,7 @@
|
||||
* add more gpios if necessary as <&gpio 6 1>
|
||||
* (but do not forget to make them output!)
|
||||
*/
|
||||
cs-gpios = <&gpio 8 1>, <&gpio 7 1>;
|
||||
cs-gpios = <0>, <0>;
|
||||
};
|
||||
|
||||
i2c0: i2c@7e205000 {
|
||||
@@ -198,29 +177,6 @@
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
pixelvalve0: pixelvalve@7e206000 {
|
||||
compatible = "brcm,bcm2835-pixelvalve0";
|
||||
reg = <0x7e206000 0x100>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
dpi: dpi@7e208000 {
|
||||
compatible = "brcm,bcm2835-dpi";
|
||||
reg = <0x7e208000 0x8c>;
|
||||
clocks = <&cprman BCM2835_CLOCK_VPU>,
|
||||
<&cprman BCM2835_CLOCK_DPI>;
|
||||
clock-names = "core", "pixel";
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
pixelvalve1: pixelvalve@7e207000 {
|
||||
compatible = "brcm,bcm2835-pixelvalve1";
|
||||
reg = <0x7e207000 0x100>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
pwm: pwm@7e20c000 {
|
||||
compatible = "brcm,bcm2835-pwm";
|
||||
reg = <0x7e20c000 0x28>;
|
||||
@@ -229,14 +185,6 @@
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
aux: aux@0x7e215004 {
|
||||
compatible = "brcm,bcm2835-aux";
|
||||
#clock-cells = <1>;
|
||||
reg = <0x7e215000 0x8>;
|
||||
clocks = <&clk_core>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
uart1: uart@7e215040 {
|
||||
compatible = "brcm,bcm2835-aux-uart", "ns16550";
|
||||
reg = <0x7e215040 0x40>;
|
||||
@@ -247,81 +195,17 @@
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
spi1: spi@7e215080 {
|
||||
compatible = "brcm,bcm2835-aux-spi";
|
||||
reg = <0x7e215080 0x40>, <0x7e215000 0x8>;
|
||||
interrupts = <1 29>;
|
||||
clocks = <&aux BCM2835_AUX_CLOCK_SPI1>;
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
spi2: spi@7e2150C0 {
|
||||
compatible = "brcm,bcm2835-aux-spi";
|
||||
reg = <0x7e2150C0 0x40>, <0x7e215000 0x8>;
|
||||
interrupts = <1 29>;
|
||||
clocks = <&aux BCM2835_AUX_CLOCK_SPI2>;
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
mmc: mmc@7e300000 {
|
||||
compatible = "brcm,bcm2835-mmc";
|
||||
reg = <0x7e300000 0x100>;
|
||||
interrupts = <2 30>;
|
||||
clocks = <&clk_mmc>;
|
||||
dmas = <&dma 11>;
|
||||
dma-names = "rx-tx";
|
||||
brcm,overclock-50 = <0>;
|
||||
dmas = <&dma 11>,
|
||||
<&dma 11>;
|
||||
dma-names = "tx", "rx";
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
hvs: hvs@7e400000 {
|
||||
compatible = "brcm,bcm2835-hvs";
|
||||
reg = <0x7e400000 0x6000>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
firmwarekms: firmwarekms@7e600000 {
|
||||
compatible = "raspberrypi,rpi-firmware-kms";
|
||||
/* SMI interrupt reg */
|
||||
reg = <0x7e600000 0x100>;
|
||||
interrupts = <2 16>;
|
||||
brcm,firmware = <&firmware>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
smi: smi@7e600000 {
|
||||
compatible = "brcm,bcm2835-smi";
|
||||
reg = <0x7e600000 0x44>, <0x7e1010b0 0x8>;
|
||||
interrupts = <2 16>;
|
||||
brcm,smi-clock-source = <6>;
|
||||
brcm,smi-clock-divisor = <4>;
|
||||
dmas = <&dma 4>;
|
||||
dma-names = "rx-tx";
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
dsi1: dsi@7e700000 {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
#clock-cells = <1>;
|
||||
|
||||
compatible = "brcm,bcm2835-dsi1";
|
||||
reg = <0x7e700000 0x8c>;
|
||||
interrupts = <2 12>;
|
||||
|
||||
clocks = <&cprman BCM2835_PLLD_DSI1>,
|
||||
<&cprman BCM2835_CLOCK_DSI1E>,
|
||||
<&cprman BCM2835_CLOCK_DSI1P>;
|
||||
clock-names = "phy", "escape", "pixel";
|
||||
clock-output-names = "dsi1_byte", "dsi1_ddr2", "dsi1_ddr";
|
||||
status = "disabled";
|
||||
power-domains = <&power RPI_POWER_DOMAIN_DSI1>;
|
||||
};
|
||||
|
||||
i2c1: i2c@7e804000 {
|
||||
compatible = "brcm,bcm2708-i2c";
|
||||
reg = <0x7e804000 0x1000>;
|
||||
@@ -345,21 +229,14 @@
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
pixelvalve2: pixelvalve@7e807000 {
|
||||
compatible = "brcm,bcm2835-pixelvalve2";
|
||||
reg = <0x7e807000 0x100>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
hdmi: hdmi@7e902000 {
|
||||
compatible = "brcm,bcm2835-hdmi";
|
||||
reg = <0x7e902000 0x600>,
|
||||
<0x7e808000 0x100>;
|
||||
ddc = <&i2c2>;
|
||||
clocks = <&cprman BCM2835_PLLH_PIX>,
|
||||
<&cprman BCM2835_CLOCK_HSM>;
|
||||
clock-names = "pixel", "hdmi";
|
||||
power-domains = <&power RPI_POWER_DOMAIN_HDMI>;
|
||||
smi: smi@7e600000 {
|
||||
compatible = "brcm,bcm2835-smi";
|
||||
reg = <0x7e600000 0x44>, <0x7e1010b0 0x8>;
|
||||
interrupts = <2 16>;
|
||||
brcm,smi-clock-source = <6>;
|
||||
brcm,smi-clock-divisor = <4>;
|
||||
dmas = <&dma 4>;
|
||||
dma-names = "rx-tx";
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
@@ -371,24 +248,11 @@
|
||||
<1 9>;
|
||||
};
|
||||
|
||||
v3d: v3d@7ec00000 {
|
||||
compatible = "brcm,vc4-v3d";
|
||||
reg = <0x7ec00000 0x1000>;
|
||||
power-domains = <&power RPI_POWER_DOMAIN_V3D>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
firmware: firmware {
|
||||
compatible = "raspberrypi,bcm2835-firmware";
|
||||
mboxes = <&mailbox>;
|
||||
};
|
||||
|
||||
power: power {
|
||||
compatible = "raspberrypi,bcm2835-power";
|
||||
firmware = <&firmware>;
|
||||
#power-domain-cells = <1>;
|
||||
};
|
||||
|
||||
leds: leds {
|
||||
compatible = "gpio-leds";
|
||||
};
|
||||
@@ -411,23 +275,6 @@
|
||||
compatible = "brcm,bcm2835-thermal";
|
||||
firmware = <&firmware>;
|
||||
};
|
||||
|
||||
gpu: gpu {
|
||||
compatible = "brcm,bcm2835-vc4";
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
/* Onboard audio */
|
||||
audio: audio {
|
||||
compatible = "brcm,bcm2835-audio";
|
||||
brcm,pwm-channels = <8>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
/* External sound card */
|
||||
sound: sound {
|
||||
status = "disabled";
|
||||
};
|
||||
};
|
||||
|
||||
clocks: clocks {
|
||||
|
||||
@@ -37,11 +37,6 @@
|
||||
brcm,pins = <18 19 20 21>;
|
||||
brcm,function = <4>; /* alt0 */
|
||||
};
|
||||
|
||||
audio_pins: audio_pins {
|
||||
brcm,pins = <40 45>;
|
||||
brcm,function = <4>;
|
||||
};
|
||||
};
|
||||
|
||||
&sdhost {
|
||||
@@ -64,7 +59,7 @@
|
||||
pinctrl-0 = <&spi0_pins &spi0_cs_pins>;
|
||||
cs-gpios = <&gpio 8 1>, <&gpio 7 1>;
|
||||
|
||||
spidev0: spidev@0{
|
||||
spidev@0{
|
||||
compatible = "spidev";
|
||||
reg = <0>; /* CE0 */
|
||||
#address-cells = <1>;
|
||||
@@ -72,7 +67,7 @@
|
||||
spi-max-frequency = <500000>;
|
||||
};
|
||||
|
||||
spidev1: spidev@1{
|
||||
spidev@1{
|
||||
compatible = "spidev";
|
||||
reg = <1>; /* CE1 */
|
||||
#address-cells = <1>;
|
||||
@@ -121,20 +116,10 @@
|
||||
};
|
||||
};
|
||||
|
||||
&hdmi {
|
||||
hpd-gpios = <&gpio 46 GPIO_ACTIVE_LOW>;
|
||||
};
|
||||
|
||||
&audio {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&audio_pins>;
|
||||
};
|
||||
|
||||
/ {
|
||||
__overrides__ {
|
||||
uart0 = <&uart0>,"status";
|
||||
uart0_clkrate = <&clk_uart0>,"clock-frequency:0";
|
||||
uart1 = <&uart1>,"status";
|
||||
i2s = <&i2s>,"status";
|
||||
spi = <&spi0>,"status";
|
||||
i2c0 = <&i2c0>,"status";
|
||||
@@ -156,9 +141,5 @@
|
||||
audio = <&audio>,"status";
|
||||
watchdog = <&watchdog>,"status";
|
||||
random = <&random>,"status";
|
||||
sd_overclock = <&sdhost>,"brcm,overclock-50:0";
|
||||
sd_force_pio = <&sdhost>,"brcm,force-pio?";
|
||||
sd_pio_limit = <&sdhost>,"brcm,pio-limit:0";
|
||||
sd_debug = <&sdhost>,"brcm,debug";
|
||||
};
|
||||
};
|
||||
|
||||
@@ -1,207 +0,0 @@
|
||||
/dts-v1/;
|
||||
|
||||
#include "bcm2710.dtsi"
|
||||
|
||||
/ {
|
||||
compatible = "brcm,bcm2710","brcm,bcm2709";
|
||||
model = "Raspberry Pi 3 Model B";
|
||||
};
|
||||
|
||||
&gpio {
|
||||
sdhost_pins: sdhost_pins {
|
||||
brcm,pins = <48 49 50 51 52 53>;
|
||||
brcm,function = <4>; /* alt0 */
|
||||
};
|
||||
|
||||
spi0_pins: spi0_pins {
|
||||
brcm,pins = <9 10 11>;
|
||||
brcm,function = <4>; /* alt0 */
|
||||
};
|
||||
|
||||
spi0_cs_pins: spi0_cs_pins {
|
||||
brcm,pins = <8 7>;
|
||||
brcm,function = <1>; /* output */
|
||||
};
|
||||
|
||||
i2c0_pins: i2c0 {
|
||||
brcm,pins = <0 1>;
|
||||
brcm,function = <4>;
|
||||
};
|
||||
|
||||
i2c1_pins: i2c1 {
|
||||
brcm,pins = <2 3>;
|
||||
brcm,function = <4>;
|
||||
};
|
||||
|
||||
i2s_pins: i2s {
|
||||
brcm,pins = <18 19 20 21>;
|
||||
brcm,function = <4>; /* alt0 */
|
||||
};
|
||||
|
||||
sdio_pins: sdio_pins {
|
||||
brcm,pins = <34 35 36 37 38 39>;
|
||||
brcm,function = <7>; // alt3 = SD1
|
||||
brcm,pull = <0 2 2 2 2 2>;
|
||||
};
|
||||
|
||||
bt_pins: bt_pins {
|
||||
brcm,pins = <43>;
|
||||
brcm,function = <4>; /* alt0:GPCLK2 */
|
||||
brcm,pull = <0>;
|
||||
};
|
||||
|
||||
uart0_pins: uart0_pins {
|
||||
brcm,pins = <32 33>;
|
||||
brcm,function = <7>; /* alt3=UART0 */
|
||||
brcm,pull = <0 2>;
|
||||
};
|
||||
|
||||
uart1_pins: uart1_pins {
|
||||
brcm,pins;
|
||||
brcm,function;
|
||||
brcm,pull;
|
||||
};
|
||||
|
||||
audio_pins: audio_pins {
|
||||
brcm,pins = <40 41>;
|
||||
brcm,function = <4>;
|
||||
};
|
||||
};
|
||||
|
||||
&sdhost {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&sdhost_pins>;
|
||||
bus-width = <4>;
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&mmc {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&sdio_pins>;
|
||||
non-removable;
|
||||
bus-width = <4>;
|
||||
status = "okay";
|
||||
brcm,overclock-50 = <0>;
|
||||
};
|
||||
|
||||
&soc {
|
||||
virtgpio: virtgpio {
|
||||
compatible = "brcm,bcm2835-virtgpio";
|
||||
gpio-controller;
|
||||
#gpio-cells = <2>;
|
||||
firmware = <&firmware>;
|
||||
status = "okay";
|
||||
};
|
||||
};
|
||||
|
||||
&fb {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&uart0 {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&uart0_pins &bt_pins>;
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&uart1 {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&uart1_pins>;
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&spi0 {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&spi0_pins &spi0_cs_pins>;
|
||||
cs-gpios = <&gpio 8 1>, <&gpio 7 1>;
|
||||
|
||||
spidev0: spidev@0{
|
||||
compatible = "spidev";
|
||||
reg = <0>; /* CE0 */
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
spi-max-frequency = <500000>;
|
||||
};
|
||||
|
||||
spidev1: spidev@1{
|
||||
compatible = "spidev";
|
||||
reg = <1>; /* CE1 */
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
spi-max-frequency = <500000>;
|
||||
};
|
||||
};
|
||||
|
||||
&i2c0 {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&i2c0_pins>;
|
||||
clock-frequency = <100000>;
|
||||
};
|
||||
|
||||
&i2c1 {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&i2c1_pins>;
|
||||
clock-frequency = <100000>;
|
||||
};
|
||||
|
||||
&i2c2 {
|
||||
clock-frequency = <100000>;
|
||||
};
|
||||
|
||||
&i2s {
|
||||
#sound-dai-cells = <0>;
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&i2s_pins>;
|
||||
};
|
||||
|
||||
&random {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&leds {
|
||||
act_led: act {
|
||||
label = "led0";
|
||||
linux,default-trigger = "mmc0";
|
||||
gpios = <&virtgpio 0 0>;
|
||||
};
|
||||
};
|
||||
|
||||
&audio {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&audio_pins>;
|
||||
};
|
||||
|
||||
/ {
|
||||
chosen {
|
||||
bootargs = "8250.nr_uarts=1";
|
||||
};
|
||||
};
|
||||
|
||||
/ {
|
||||
__overrides__ {
|
||||
uart0 = <&uart0>,"status";
|
||||
uart0_clkrate = <&clk_uart0>,"clock-frequency:0";
|
||||
uart1 = <&uart1>,"status";
|
||||
i2s = <&i2s>,"status";
|
||||
spi = <&spi0>,"status";
|
||||
i2c0 = <&i2c0>,"status";
|
||||
i2c1 = <&i2c1>,"status";
|
||||
i2c2_iknowwhatimdoing = <&i2c2>,"status";
|
||||
i2c0_baudrate = <&i2c0>,"clock-frequency:0";
|
||||
i2c1_baudrate = <&i2c1>,"clock-frequency:0";
|
||||
i2c2_baudrate = <&i2c2>,"clock-frequency:0";
|
||||
core_freq = <&clk_core>,"clock-frequency:0";
|
||||
|
||||
act_led_gpio = <&act_led>,"gpios:4";
|
||||
act_led_activelow = <&act_led>,"gpios:8";
|
||||
act_led_trigger = <&act_led>,"linux,default-trigger";
|
||||
|
||||
audio = <&audio>,"status";
|
||||
watchdog = <&watchdog>,"status";
|
||||
random = <&random>,"status";
|
||||
sd_overclock = <&sdhost>,"brcm,overclock-50:0";
|
||||
sd_force_pio = <&sdhost>,"brcm,force-pio?";
|
||||
sd_pio_limit = <&sdhost>,"brcm,pio-limit:0";
|
||||
sd_debug = <&sdhost>,"brcm,debug";
|
||||
};
|
||||
};
|
||||
@@ -1,164 +0,0 @@
|
||||
/dts-v1/;
|
||||
|
||||
#include "bcm2710.dtsi"
|
||||
|
||||
/ {
|
||||
compatible = "brcm,bcm2710","brcm,bcm2709";
|
||||
model = "Raspberry Pi Compute Module 3";
|
||||
};
|
||||
|
||||
&gpio {
|
||||
|
||||
mmc_pins: mmc_pins {
|
||||
brcm,pins = <48 49 50 51 52 53>;
|
||||
brcm,function = <7>; /* alt3 */
|
||||
brcm,pull = <0 2 2 2 2 2>;
|
||||
};
|
||||
|
||||
spi0_pins: spi0_pins {
|
||||
brcm,pins = <9 10 11>;
|
||||
brcm,function = <4>; /* alt0 */
|
||||
};
|
||||
|
||||
spi0_cs_pins: spi0_cs_pins {
|
||||
brcm,pins = <8 7>;
|
||||
brcm,function = <1>; /* output */
|
||||
};
|
||||
|
||||
i2c0_pins: i2c0 {
|
||||
brcm,pins = <0 1>;
|
||||
brcm,function = <4>;
|
||||
};
|
||||
|
||||
i2c1_pins: i2c1 {
|
||||
brcm,pins = <2 3>;
|
||||
brcm,function = <4>;
|
||||
};
|
||||
|
||||
i2s_pins: i2s {
|
||||
brcm,pins = <18 19 20 21>;
|
||||
brcm,function = <4>; /* alt0 */
|
||||
};
|
||||
|
||||
audio_pins: audio_pins {
|
||||
brcm,pins;
|
||||
brcm,function;
|
||||
};
|
||||
};
|
||||
|
||||
&mmc {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&mmc_pins>;
|
||||
non-removable;
|
||||
bus-width = <4>;
|
||||
status = "okay";
|
||||
brcm,overclock-50 = <0>;
|
||||
};
|
||||
|
||||
&soc {
|
||||
virtgpio: virtgpio {
|
||||
compatible = "brcm,bcm2835-virtgpio";
|
||||
gpio-controller;
|
||||
#gpio-cells = <2>;
|
||||
firmware = <&firmware>;
|
||||
status = "okay";
|
||||
};
|
||||
};
|
||||
|
||||
&fb {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&spi0 {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&spi0_pins &spi0_cs_pins>;
|
||||
cs-gpios = <&gpio 8 1>, <&gpio 7 1>;
|
||||
|
||||
spidev0: spidev@0{
|
||||
compatible = "spidev";
|
||||
reg = <0>; /* CE0 */
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
spi-max-frequency = <500000>;
|
||||
};
|
||||
|
||||
spidev1: spidev@1{
|
||||
compatible = "spidev";
|
||||
reg = <1>; /* CE1 */
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
spi-max-frequency = <500000>;
|
||||
};
|
||||
};
|
||||
|
||||
&i2c0 {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&i2c0_pins>;
|
||||
clock-frequency = <100000>;
|
||||
};
|
||||
|
||||
&i2c1 {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&i2c1_pins>;
|
||||
clock-frequency = <100000>;
|
||||
};
|
||||
|
||||
&i2c2 {
|
||||
clock-frequency = <100000>;
|
||||
};
|
||||
|
||||
&i2s {
|
||||
#sound-dai-cells = <0>;
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&i2s_pins>;
|
||||
};
|
||||
|
||||
&random {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&leds {
|
||||
act_led: act {
|
||||
label = "led0";
|
||||
linux,default-trigger = "mmc0";
|
||||
gpios = <&virtgpio 0 0>;
|
||||
};
|
||||
};
|
||||
|
||||
&hdmi {
|
||||
hpd-gpios = <&gpio 46 GPIO_ACTIVE_LOW>;
|
||||
};
|
||||
|
||||
&audio {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&audio_pins>;
|
||||
};
|
||||
|
||||
/ {
|
||||
__overrides__ {
|
||||
uart0 = <&uart0>,"status";
|
||||
uart0_clkrate = <&clk_uart0>,"clock-frequency:0";
|
||||
uart1 = <&uart1>,"status";
|
||||
i2s = <&i2s>,"status";
|
||||
spi = <&spi0>,"status";
|
||||
i2c0 = <&i2c0>,"status";
|
||||
i2c1 = <&i2c1>,"status";
|
||||
i2c2_iknowwhatimdoing = <&i2c2>,"status";
|
||||
i2c0_baudrate = <&i2c0>,"clock-frequency:0";
|
||||
i2c1_baudrate = <&i2c1>,"clock-frequency:0";
|
||||
i2c2_baudrate = <&i2c2>,"clock-frequency:0";
|
||||
core_freq = <&clk_core>,"clock-frequency:0";
|
||||
|
||||
act_led_gpio = <&act_led>,"gpios:4";
|
||||
act_led_activelow = <&act_led>,"gpios:8";
|
||||
act_led_trigger = <&act_led>,"linux,default-trigger";
|
||||
|
||||
audio = <&audio>,"status";
|
||||
watchdog = <&watchdog>,"status";
|
||||
random = <&random>,"status";
|
||||
sd_overclock = <&sdhost>,"brcm,overclock-50:0";
|
||||
sd_force_pio = <&sdhost>,"brcm,force-pio?";
|
||||
sd_pio_limit = <&sdhost>,"brcm,pio-limit:0";
|
||||
sd_debug = <&sdhost>,"brcm,debug";
|
||||
};
|
||||
};
|
||||
@@ -1,102 +0,0 @@
|
||||
#include "bcm2708_common.dtsi"
|
||||
|
||||
/ {
|
||||
compatible = "brcm,bcm2710","brcm,bcm2709";
|
||||
model = "BCM2710";
|
||||
|
||||
chosen {
|
||||
/* No padding required - the boot loader can do that. */
|
||||
bootargs = "";
|
||||
};
|
||||
|
||||
soc {
|
||||
ranges = <0x7e000000 0x3f000000 0x01000000>,
|
||||
<0x40000000 0x40000000 0x00040000>;
|
||||
|
||||
local_intc: local_intc {
|
||||
compatible = "brcm,bcm2836-l1-intc";
|
||||
reg = <0x40000000 0x100>;
|
||||
interrupt-controller;
|
||||
#interrupt-cells = <1>;
|
||||
interrupt-parent = <&local_intc>;
|
||||
};
|
||||
|
||||
arm-pmu {
|
||||
compatible = "arm,cortex-a7-pmu";
|
||||
interrupt-parent = <&local_intc>;
|
||||
interrupts = <9>;
|
||||
};
|
||||
|
||||
gpiomem {
|
||||
compatible = "brcm,bcm2835-gpiomem";
|
||||
reg = <0x7e200000 0x1000>;
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
timer {
|
||||
compatible = "arm,armv7-timer";
|
||||
clock-frequency = <19200000>;
|
||||
interrupt-parent = <&local_intc>;
|
||||
interrupts = <0>, // PHYS_SECURE_PPI
|
||||
<1>, // PHYS_NONSECURE_PPI
|
||||
<3>, // VIRT_PPI
|
||||
<2>; // HYP_PPI
|
||||
always-on;
|
||||
};
|
||||
|
||||
syscon@40000000 {
|
||||
compatible = "brcm,bcm2836-arm-local", "syscon";
|
||||
reg = <0x40000000 0x100>;
|
||||
};
|
||||
};
|
||||
|
||||
cpus: cpus {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
v7_cpu0: cpu@0 {
|
||||
device_type = "cpu";
|
||||
compatible = "arm,cortex-a7";
|
||||
reg = <0x000>;
|
||||
clock-frequency = <800000000>;
|
||||
};
|
||||
|
||||
v7_cpu1: cpu@1 {
|
||||
device_type = "cpu";
|
||||
compatible = "arm,cortex-a7";
|
||||
reg = <0x001>;
|
||||
clock-frequency = <800000000>;
|
||||
};
|
||||
|
||||
v7_cpu2: cpu@2 {
|
||||
device_type = "cpu";
|
||||
compatible = "arm,cortex-a7";
|
||||
reg = <0x002>;
|
||||
clock-frequency = <800000000>;
|
||||
};
|
||||
|
||||
v7_cpu3: cpu@3 {
|
||||
device_type = "cpu";
|
||||
compatible = "arm,cortex-a7";
|
||||
reg = <0x003>;
|
||||
clock-frequency = <800000000>;
|
||||
};
|
||||
};
|
||||
|
||||
__overrides__ {
|
||||
arm_freq = <&v7_cpu0>, "clock-frequency:0",
|
||||
<&v7_cpu1>, "clock-frequency:0",
|
||||
<&v7_cpu2>, "clock-frequency:0",
|
||||
<&v7_cpu3>, "clock-frequency:0";
|
||||
};
|
||||
};
|
||||
|
||||
&watchdog {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&intc {
|
||||
compatible = "brcm,bcm2836-armctrl-ic";
|
||||
interrupt-parent = <&local_intc>;
|
||||
interrupts = <8>;
|
||||
};
|
||||
@@ -1497,16 +1497,6 @@
|
||||
0x48485200 0x2E00>;
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
|
||||
/*
|
||||
* Do not allow gating of cpsw clock as workaround
|
||||
* for errata i877. Keeping internal clock disabled
|
||||
* causes the device switching characteristics
|
||||
* to degrade over time and eventually fail to meet
|
||||
* the data manual delay time/skew specs.
|
||||
*/
|
||||
ti,no-idle;
|
||||
|
||||
/*
|
||||
* rx_thresh_pend
|
||||
* rx_pend
|
||||
|
||||
@@ -298,8 +298,6 @@
|
||||
compatible = "maxim,max8997-pmic";
|
||||
|
||||
reg = <0x66>;
|
||||
interrupt-parent = <&gpx0>;
|
||||
interrupts = <7 0>;
|
||||
|
||||
max8997,pmic-buck1-uses-gpio-dvs;
|
||||
max8997,pmic-buck2-uses-gpio-dvs;
|
||||
|
||||
@@ -154,7 +154,7 @@
|
||||
&fec {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&pinctrl_enet>;
|
||||
phy-mode = "rgmii-id";
|
||||
phy-mode = "rgmii";
|
||||
phy-reset-gpios = <&gpio1 30 GPIO_ACTIVE_HIGH>;
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
@@ -94,7 +94,7 @@
|
||||
&fec {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&pinctrl_enet>;
|
||||
phy-mode = "rgmii-id";
|
||||
phy-mode = "rgmii";
|
||||
phy-reset-gpios = <&gpio1 30 GPIO_ACTIVE_LOW>;
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
@@ -154,7 +154,7 @@
|
||||
&fec {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&pinctrl_enet>;
|
||||
phy-mode = "rgmii-id";
|
||||
phy-mode = "rgmii";
|
||||
phy-reset-gpios = <&gpio1 30 GPIO_ACTIVE_LOW>;
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
@@ -155,7 +155,7 @@
|
||||
&fec {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&pinctrl_enet>;
|
||||
phy-mode = "rgmii-id";
|
||||
phy-mode = "rgmii";
|
||||
phy-reset-gpios = <&gpio1 30 GPIO_ACTIVE_LOW>;
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
@@ -145,7 +145,7 @@
|
||||
&fec {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&pinctrl_enet>;
|
||||
phy-mode = "rgmii-id";
|
||||
phy-mode = "rgmii";
|
||||
phy-reset-gpios = <&gpio1 30 GPIO_ACTIVE_LOW>;
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
@@ -113,14 +113,14 @@
|
||||
&clks {
|
||||
assigned-clocks = <&clks IMX6QDL_PLL4_BYPASS_SRC>,
|
||||
<&clks IMX6QDL_PLL4_BYPASS>,
|
||||
<&clks IMX6QDL_CLK_PLL4_POST_DIV>,
|
||||
<&clks IMX6QDL_CLK_LDB_DI0_SEL>,
|
||||
<&clks IMX6QDL_CLK_LDB_DI1_SEL>,
|
||||
<&clks IMX6QDL_CLK_PLL4_POST_DIV>;
|
||||
<&clks IMX6QDL_CLK_LDB_DI1_SEL>;
|
||||
assigned-clock-parents = <&clks IMX6QDL_CLK_LVDS2_IN>,
|
||||
<&clks IMX6QDL_PLL4_BYPASS_SRC>,
|
||||
<&clks IMX6QDL_CLK_PLL3_USB_OTG>,
|
||||
<&clks IMX6QDL_CLK_PLL3_USB_OTG>;
|
||||
assigned-clock-rates = <0>, <0>, <0>, <0>, <24576000>;
|
||||
assigned-clock-rates = <0>, <0>, <24576000>;
|
||||
};
|
||||
|
||||
&ecspi1 {
|
||||
|
||||
@@ -122,7 +122,6 @@
|
||||
interrupt-parent = <&gpio5>;
|
||||
interrupts = <24 IRQ_TYPE_LEVEL_HIGH>; /* gpio 152 */
|
||||
ref-clock-frequency = <26000000>;
|
||||
tcxo-clock-frequency = <26000000>;
|
||||
};
|
||||
};
|
||||
|
||||
|
||||
@@ -189,7 +189,3 @@
|
||||
};
|
||||
};
|
||||
|
||||
&uart3 {
|
||||
interrupts-extended = <&wakeupgen GIC_SPI 74 IRQ_TYPE_LEVEL_HIGH
|
||||
&omap4_pmx_core OMAP4_UART3_RX>;
|
||||
};
|
||||
|
||||
@@ -130,16 +130,6 @@
|
||||
};
|
||||
};
|
||||
|
||||
&gpio8 {
|
||||
/* TI trees use GPIO instead of msecure, see also muxing */
|
||||
p234 {
|
||||
gpio-hog;
|
||||
gpios = <10 GPIO_ACTIVE_HIGH>;
|
||||
output-high;
|
||||
line-name = "gpio8_234/msecure";
|
||||
};
|
||||
};
|
||||
|
||||
&omap5_pmx_core {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <
|
||||
@@ -223,13 +213,6 @@
|
||||
>;
|
||||
};
|
||||
|
||||
/* TI trees use GPIO mode; msecure mode does not work reliably? */
|
||||
palmas_msecure_pins: palmas_msecure_pins {
|
||||
pinctrl-single,pins = <
|
||||
OMAP5_IOPAD(0x180, PIN_OUTPUT | MUX_MODE6) /* gpio8_234 */
|
||||
>;
|
||||
};
|
||||
|
||||
usbhost_pins: pinmux_usbhost_pins {
|
||||
pinctrl-single,pins = <
|
||||
0x84 (PIN_INPUT | MUX_MODE0) /* usbb2_hsic_strobe */
|
||||
@@ -295,12 +278,6 @@
|
||||
&usbhost_wkup_pins
|
||||
>;
|
||||
|
||||
palmas_sys_nirq_pins: pinmux_palmas_sys_nirq_pins {
|
||||
pinctrl-single,pins = <
|
||||
OMAP5_IOPAD(0x068, PIN_INPUT_PULLUP | MUX_MODE0) /* sys_nirq1 */
|
||||
>;
|
||||
};
|
||||
|
||||
usbhost_wkup_pins: pinmux_usbhost_wkup_pins {
|
||||
pinctrl-single,pins = <
|
||||
0x1A (PIN_OUTPUT | MUX_MODE0) /* fref_clk1_out, USB hub clk */
|
||||
@@ -368,8 +345,6 @@
|
||||
interrupt-controller;
|
||||
#interrupt-cells = <2>;
|
||||
ti,system-power-controller;
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&palmas_sys_nirq_pins &palmas_msecure_pins>;
|
||||
|
||||
extcon_usb3: palmas_usb {
|
||||
compatible = "ti,palmas-usb-vid";
|
||||
@@ -383,14 +358,6 @@
|
||||
#clock-cells = <0>;
|
||||
};
|
||||
|
||||
rtc {
|
||||
compatible = "ti,palmas-rtc";
|
||||
interrupt-parent = <&palmas>;
|
||||
interrupts = <8 IRQ_TYPE_NONE>;
|
||||
ti,backup-battery-chargeable;
|
||||
ti,backup-battery-charge-high-current;
|
||||
};
|
||||
|
||||
palmas_pmic {
|
||||
compatible = "ti,palmas-pmic";
|
||||
interrupt-parent = <&palmas>;
|
||||
|
||||
@@ -12,101 +12,65 @@ ifeq ($(CONFIG_ARCH_BCM2835),y)
|
||||
RPI_DT_OVERLAYS=y
|
||||
endif
|
||||
|
||||
dtbo-$(RPI_DT_OVERLAYS) += adau1977-adc.dtbo
|
||||
dtbo-$(RPI_DT_OVERLAYS) += ads1015.dtbo
|
||||
dtbo-$(RPI_DT_OVERLAYS) += ads7846.dtbo
|
||||
dtbo-$(RPI_DT_OVERLAYS) += akkordion-iqdacplus.dtbo
|
||||
dtbo-$(RPI_DT_OVERLAYS) += at86rf233.dtbo
|
||||
dtbo-$(RPI_DT_OVERLAYS) += audioinjector-wm8731-audio.dtbo
|
||||
dtbo-$(RPI_DT_OVERLAYS) += audremap.dtbo
|
||||
dtbo-$(RPI_DT_OVERLAYS) += bmp085_i2c-sensor.dtbo
|
||||
dtbo-$(RPI_DT_OVERLAYS) += dht11.dtbo
|
||||
dtbo-$(RPI_DT_OVERLAYS) += dionaudio-loco.dtbo
|
||||
dtbo-$(RPI_DT_OVERLAYS) += dpi18.dtbo
|
||||
dtbo-$(RPI_DT_OVERLAYS) += dpi24.dtbo
|
||||
dtbo-$(RPI_DT_OVERLAYS) += dwc-otg.dtbo
|
||||
dtbo-$(RPI_DT_OVERLAYS) += dwc2.dtbo
|
||||
dtbo-$(RPI_DT_OVERLAYS) += enc28j60.dtbo
|
||||
dtbo-$(RPI_DT_OVERLAYS) += gpio-ir.dtbo
|
||||
dtbo-$(RPI_DT_OVERLAYS) += gpio-poweroff.dtbo
|
||||
dtbo-$(RPI_DT_OVERLAYS) += hifiberry-amp.dtbo
|
||||
dtbo-$(RPI_DT_OVERLAYS) += hifiberry-dac.dtbo
|
||||
dtbo-$(RPI_DT_OVERLAYS) += hifiberry-dacplus.dtbo
|
||||
dtbo-$(RPI_DT_OVERLAYS) += hifiberry-digi.dtbo
|
||||
dtbo-$(RPI_DT_OVERLAYS) += hifiberry-digi-pro.dtbo
|
||||
dtbo-$(RPI_DT_OVERLAYS) += hy28a.dtbo
|
||||
dtbo-$(RPI_DT_OVERLAYS) += hy28b.dtbo
|
||||
dtbo-$(RPI_DT_OVERLAYS) += i2c-gpio.dtbo
|
||||
dtbo-$(RPI_DT_OVERLAYS) += i2c-mux.dtbo
|
||||
dtbo-$(RPI_DT_OVERLAYS) += i2c-pwm-pca9685a.dtbo
|
||||
dtbo-$(RPI_DT_OVERLAYS) += i2c-rtc.dtbo
|
||||
dtbo-$(RPI_DT_OVERLAYS) += i2c0-bcm2708.dtbo
|
||||
dtbo-$(RPI_DT_OVERLAYS) += i2c1-bcm2708.dtbo
|
||||
dtbo-$(RPI_DT_OVERLAYS) += i2s-gpio28-31.dtbo
|
||||
dtbo-$(RPI_DT_OVERLAYS) += i2s-mmap.dtbo
|
||||
dtbo-$(RPI_DT_OVERLAYS) += iqaudio-dac.dtbo
|
||||
dtbo-$(RPI_DT_OVERLAYS) += iqaudio-dacplus.dtbo
|
||||
dtbo-$(RPI_DT_OVERLAYS) += iqaudio-digi-wm8804-audio.dtbo
|
||||
dtbo-$(RPI_DT_OVERLAYS) += justboom-dac.dtbo
|
||||
dtbo-$(RPI_DT_OVERLAYS) += justboom-digi.dtbo
|
||||
dtbo-$(RPI_DT_OVERLAYS) += lirc-rpi.dtbo
|
||||
dtbo-$(RPI_DT_OVERLAYS) += mcp23017.dtbo
|
||||
dtbo-$(RPI_DT_OVERLAYS) += mcp23s17.dtbo
|
||||
dtbo-$(RPI_DT_OVERLAYS) += mcp2515-can0.dtbo
|
||||
dtbo-$(RPI_DT_OVERLAYS) += mcp2515-can1.dtbo
|
||||
dtbo-$(RPI_DT_OVERLAYS) += mmc.dtbo
|
||||
dtbo-$(RPI_DT_OVERLAYS) += mz61581.dtbo
|
||||
dtbo-$(RPI_DT_OVERLAYS) += pi3-act-led.dtbo
|
||||
dtbo-$(RPI_DT_OVERLAYS) += pi3-disable-bt.dtbo
|
||||
dtbo-$(RPI_DT_OVERLAYS) += pi3-miniuart-bt.dtbo
|
||||
dtbo-$(RPI_DT_OVERLAYS) += piscreen.dtbo
|
||||
dtbo-$(RPI_DT_OVERLAYS) += piscreen2r.dtbo
|
||||
dtbo-$(RPI_DT_OVERLAYS) += pitft22.dtbo
|
||||
dtbo-$(RPI_DT_OVERLAYS) += pitft28-capacitive.dtbo
|
||||
dtbo-$(RPI_DT_OVERLAYS) += pitft28-resistive.dtbo
|
||||
dtbo-$(RPI_DT_OVERLAYS) += pps-gpio.dtbo
|
||||
dtbo-$(RPI_DT_OVERLAYS) += pwm.dtbo
|
||||
dtbo-$(RPI_DT_OVERLAYS) += pwm-2chan.dtbo
|
||||
dtbo-$(RPI_DT_OVERLAYS) += qca7000.dtbo
|
||||
dtbo-$(RPI_DT_OVERLAYS) += raspidac3.dtbo
|
||||
dtbo-$(RPI_DT_OVERLAYS) += rpi-backlight.dtbo
|
||||
dtbo-$(RPI_DT_OVERLAYS) += rpi-dac.dtbo
|
||||
dtbo-$(RPI_DT_OVERLAYS) += rpi-display.dtbo
|
||||
dtbo-$(RPI_DT_OVERLAYS) += rpi-ft5406.dtbo
|
||||
dtbo-$(RPI_DT_OVERLAYS) += rpi-proto.dtbo
|
||||
dtbo-$(RPI_DT_OVERLAYS) += rpi-sense.dtbo
|
||||
dtbo-$(RPI_DT_OVERLAYS) += rra-digidac1-wm8741-audio.dtbo
|
||||
dtbo-$(RPI_DT_OVERLAYS) += sc16is750-i2c.dtbo
|
||||
dtbo-$(RPI_DT_OVERLAYS) += sc16is752-spi1.dtbo
|
||||
dtbo-$(RPI_DT_OVERLAYS) += sdhost.dtbo
|
||||
dtbo-$(RPI_DT_OVERLAYS) += sdio.dtbo
|
||||
dtbo-$(RPI_DT_OVERLAYS) += sdio-1bit.dtbo
|
||||
dtbo-$(RPI_DT_OVERLAYS) += sdtweak.dtbo
|
||||
dtbo-$(RPI_DT_OVERLAYS) += smi.dtbo
|
||||
dtbo-$(RPI_DT_OVERLAYS) += smi-dev.dtbo
|
||||
dtbo-$(RPI_DT_OVERLAYS) += smi-nand.dtbo
|
||||
dtbo-$(RPI_DT_OVERLAYS) += spi-gpio35-39.dtbo
|
||||
dtbo-$(RPI_DT_OVERLAYS) += spi-rtc.dtbo
|
||||
dtbo-$(RPI_DT_OVERLAYS) += spi0-hw-cs.dtbo
|
||||
dtbo-$(RPI_DT_OVERLAYS) += spi1-1cs.dtbo
|
||||
dtbo-$(RPI_DT_OVERLAYS) += spi1-2cs.dtbo
|
||||
dtbo-$(RPI_DT_OVERLAYS) += spi1-3cs.dtbo
|
||||
dtbo-$(RPI_DT_OVERLAYS) += spi2-1cs.dtbo
|
||||
dtbo-$(RPI_DT_OVERLAYS) += spi2-2cs.dtbo
|
||||
dtbo-$(RPI_DT_OVERLAYS) += spi2-3cs.dtbo
|
||||
dtbo-$(RPI_DT_OVERLAYS) += tinylcd35.dtbo
|
||||
dtbo-$(RPI_DT_OVERLAYS) += uart1.dtbo
|
||||
dtbo-$(RPI_DT_OVERLAYS) += vc4-fkms-v3d.dtbo
|
||||
dtbo-$(RPI_DT_OVERLAYS) += vc4-kms-v3d.dtbo
|
||||
dtbo-$(RPI_DT_OVERLAYS) += vga666.dtbo
|
||||
dtbo-$(RPI_DT_OVERLAYS) += w1-gpio.dtbo
|
||||
dtbo-$(RPI_DT_OVERLAYS) += w1-gpio-pullup.dtbo
|
||||
dtbo-$(RPI_DT_OVERLAYS) += wittypi.dtbo
|
||||
dtb-$(RPI_DT_OVERLAYS) += ads7846-overlay.dtb
|
||||
dtb-$(RPI_DT_OVERLAYS) += at86rf233-overlay.dtb
|
||||
dtb-$(RPI_DT_OVERLAYS) += bmp085_i2c-sensor-overlay.dtb
|
||||
dtb-$(RPI_DT_OVERLAYS) += dht11-overlay.dtb
|
||||
dtb-$(RPI_DT_OVERLAYS) += enc28j60-overlay.dtb
|
||||
dtb-$(RPI_DT_OVERLAYS) += gpio-ir-overlay.dtb
|
||||
dtb-$(RPI_DT_OVERLAYS) += gpio-poweroff-overlay.dtb
|
||||
dtb-$(RPI_DT_OVERLAYS) += hifiberry-amp-overlay.dtb
|
||||
dtb-$(RPI_DT_OVERLAYS) += hifiberry-dac-overlay.dtb
|
||||
dtb-$(RPI_DT_OVERLAYS) += hifiberry-dacplus-overlay.dtb
|
||||
dtb-$(RPI_DT_OVERLAYS) += hifiberry-digi-overlay.dtb
|
||||
dtb-$(RPI_DT_OVERLAYS) += hy28a-overlay.dtb
|
||||
dtb-$(RPI_DT_OVERLAYS) += hy28b-overlay.dtb
|
||||
dtb-$(RPI_DT_OVERLAYS) += i2c-rtc-overlay.dtb
|
||||
dtb-$(RPI_DT_OVERLAYS) += i2c-gpio-overlay.dtb
|
||||
dtb-$(RPI_DT_OVERLAYS) += i2s-mmap-overlay.dtb
|
||||
dtb-$(RPI_DT_OVERLAYS) += iqaudio-dac-overlay.dtb
|
||||
dtb-$(RPI_DT_OVERLAYS) += iqaudio-dacplus-overlay.dtb
|
||||
dtb-$(RPI_DT_OVERLAYS) += lirc-rpi-overlay.dtb
|
||||
dtb-$(RPI_DT_OVERLAYS) += mcp2515-can0-overlay.dtb
|
||||
dtb-$(RPI_DT_OVERLAYS) += mcp2515-can1-overlay.dtb
|
||||
dtb-$(RPI_DT_OVERLAYS) += mmc-overlay.dtb
|
||||
dtb-$(RPI_DT_OVERLAYS) += mz61581-overlay.dtb
|
||||
dtb-$(RPI_DT_OVERLAYS) += piscreen-overlay.dtb
|
||||
dtb-$(RPI_DT_OVERLAYS) += piscreen2r-overlay.dtb
|
||||
dtb-$(RPI_DT_OVERLAYS) += pitft28-capacitive-overlay.dtb
|
||||
dtb-$(RPI_DT_OVERLAYS) += pitft28-resistive-overlay.dtb
|
||||
dtb-$(RPI_DT_OVERLAYS) += pps-gpio-overlay.dtb
|
||||
dtb-$(RPI_DT_OVERLAYS) += pwm-overlay.dtb
|
||||
dtb-$(RPI_DT_OVERLAYS) += pwm-2chan-overlay.dtb
|
||||
dtb-$(RPI_DT_OVERLAYS) += raspidac3-overlay.dtb
|
||||
dtb-$(RPI_DT_OVERLAYS) += rpi-backlight-overlay.dtb
|
||||
dtb-$(RPI_DT_OVERLAYS) += rpi-dac-overlay.dtb
|
||||
dtb-$(RPI_DT_OVERLAYS) += rpi-display-overlay.dtb
|
||||
dtb-$(RPI_DT_OVERLAYS) += rpi-ft5406-overlay.dtb
|
||||
dtb-$(RPI_DT_OVERLAYS) += rpi-proto-overlay.dtb
|
||||
dtb-$(RPI_DT_OVERLAYS) += rpi-sense-overlay.dtb
|
||||
dtb-$(RPI_DT_OVERLAYS) += sdhost-overlay.dtb
|
||||
dtb-$(RPI_DT_OVERLAYS) += sdio-overlay.dtb
|
||||
dtb-$(RPI_DT_OVERLAYS) += smi-dev-overlay.dtb
|
||||
dtb-$(RPI_DT_OVERLAYS) += smi-nand-overlay.dtb
|
||||
dtb-$(RPI_DT_OVERLAYS) += smi-overlay.dtb
|
||||
dtb-$(RPI_DT_OVERLAYS) += spi-gpio35-39-overlay.dtb
|
||||
dtb-$(RPI_DT_OVERLAYS) += tinylcd35-overlay.dtb
|
||||
dtb-$(RPI_DT_OVERLAYS) += uart1-overlay.dtb
|
||||
dtb-$(RPI_DT_OVERLAYS) += vc4-kms-v3d-overlay.dtb
|
||||
dtb-$(RPI_DT_OVERLAYS) += vga666-overlay.dtb
|
||||
dtb-$(RPI_DT_OVERLAYS) += w1-gpio-overlay.dtb
|
||||
dtb-$(RPI_DT_OVERLAYS) += w1-gpio-pullup-overlay.dtb
|
||||
|
||||
targets += dtbs dtbs_install
|
||||
targets += $(dtbo-y)
|
||||
targets += $(dtb-y)
|
||||
|
||||
endif
|
||||
|
||||
always := $(dtbo-y)
|
||||
clean-files := *.dtbo
|
||||
always := $(dtb-y)
|
||||
clean-files := *.dtb
|
||||
|
||||
# Enable fixups to support overlays on BCM2708 platforms
|
||||
ifeq ($(RPI_DT_OVERLAYS),y)
|
||||
DTC_FLAGS ?= -@
|
||||
endif
|
||||
|
||||
@@ -53,8 +53,8 @@ have its contents deleted (or commented out).
|
||||
Using Overlays
|
||||
==============
|
||||
|
||||
Overlays are loaded using the "dtoverlay" directive. As an example, consider
|
||||
the popular lirc-rpi module, the Linux Infrared Remote Control driver. In the
|
||||
Overlays are loaded using the "dtoverlay" directive. As an example, consider the
|
||||
popular lirc-rpi module, the Linux Infrared Remote Control driver. In the
|
||||
pre-DT world this would be loaded from /etc/modules, with an explicit
|
||||
"modprobe lirc-rpi" command, or programmatically by lircd. With DT enabled,
|
||||
this becomes a line in config.txt:
|
||||
@@ -110,23 +110,10 @@ Params:
|
||||
(default "off")
|
||||
|
||||
random Set to "on" to enable the hardware random
|
||||
number generator (default "on")
|
||||
|
||||
sd_overclock Clock (in MHz) to use when the MMC framework
|
||||
requests 50MHz
|
||||
|
||||
sd_force_pio Disable DMA support for SD driver (default off)
|
||||
|
||||
sd_pio_limit Number of blocks above which to use DMA for
|
||||
SD card (default 1)
|
||||
|
||||
sd_debug Enable debug output from SD driver (default off)
|
||||
number generator (default "off")
|
||||
|
||||
uart0 Set to "off" to disable uart0 (default "on")
|
||||
|
||||
uart1 Set to "on" or "off" to enable or disable uart1
|
||||
(default varies)
|
||||
|
||||
watchdog Set to "on" to enable the hardware watchdog
|
||||
(default "off")
|
||||
|
||||
@@ -136,14 +123,12 @@ Params:
|
||||
|
||||
act_led_activelow Set to "on" to invert the sense of the LED
|
||||
(default "off")
|
||||
N.B. For Pi3 see pi3-act-led overlay.
|
||||
|
||||
act_led_gpio Set which GPIO to use for the activity LED
|
||||
(in case you want to connect it to an external
|
||||
device)
|
||||
(default "16" on a non-Plus board, "47" on a
|
||||
Plus or Pi 2)
|
||||
N.B. For Pi3 see pi3-act-led overlay.
|
||||
|
||||
pwr_led_trigger
|
||||
pwr_led_activelow
|
||||
@@ -161,35 +146,6 @@ Params:
|
||||
and the other i2c baudrate parameters.
|
||||
|
||||
|
||||
Name: adau1977-adc
|
||||
Info: Overlay for activation of ADAU1977 ADC codec over I2C for control
|
||||
and I2S for data.
|
||||
Load: dtoverlay=adau1977-adc
|
||||
Params: <None>
|
||||
|
||||
|
||||
Name: ads1015
|
||||
Info: Overlay for activation of Texas Instruments ADS1015 ADC over I2C
|
||||
Load: dtoverlay=ads1015,<param>=<val>
|
||||
Params: addr I2C bus address of device. Set based on how the
|
||||
addr pin is wired. (default=0x48 assumes addr
|
||||
is pulled to GND)
|
||||
cha_enable Enable virtual channel a. (default=true)
|
||||
cha_cfg Set the configuration for virtual channel a.
|
||||
(default=4 configures this channel for the
|
||||
voltage at A0 with respect to GND)
|
||||
cha_datarate Set the datarate (samples/sec) for this channel.
|
||||
(default=4 sets 1600 sps)
|
||||
cha_gain Set the gain of the Programmable Gain
|
||||
Amplifier for this channel. (default=2 sets the
|
||||
full scale of the channel to 2.048 Volts)
|
||||
|
||||
Channel (ch) parameters can be set for each enabled channel.
|
||||
A maximum of 4 channels can be enabled (letters a thru d).
|
||||
For more information refer to the device datasheet at:
|
||||
http://www.ti.com/lit/ds/symlink/ads1015.pdf
|
||||
|
||||
|
||||
Name: ads7846
|
||||
Info: ADS7846 Touch controller
|
||||
Load: dtoverlay=ads7846,<param>=<val>
|
||||
@@ -215,26 +171,6 @@ Params: cs SPI bus Chip Select (default 1)
|
||||
www.kernel.org/doc/Documentation/devicetree/bindings/input/ads7846.txt
|
||||
|
||||
|
||||
Name: akkordion-iqdacplus
|
||||
Info: Configures the Digital Dreamtime Akkordion Music Player (based on the
|
||||
OEM IQAudIO DAC+ or DAC Zero module).
|
||||
Load: dtoverlay=akkordion-iqdacplus,<param>=<val>
|
||||
Params: 24db_digital_gain Allow gain to be applied via the PCM512x codec
|
||||
Digital volume control. Enable with
|
||||
dtoverlay=akkordion-iqdacplus,24db_digital_gain
|
||||
(The default behaviour is that the Digital
|
||||
volume control is limited to a maximum of
|
||||
0dB. ie. it can attenuate but not provide
|
||||
gain. For most users, this will be desired
|
||||
as it will prevent clipping. By appending
|
||||
the 24db_digital_gain parameter, the Digital
|
||||
volume control will allow up to 24dB of
|
||||
gain. If this parameter is enabled, it is the
|
||||
responsibility of the user to ensure that
|
||||
the Digital volume control is set to a value
|
||||
that does not result in clipping/distortion!)
|
||||
|
||||
|
||||
Name: at86rf233
|
||||
Info: Configures the Atmel AT86RF233 802.15.4 low-power WPAN transceiver,
|
||||
connected to spi0.0
|
||||
@@ -242,26 +178,11 @@ Load: dtoverlay=at86rf233,<param>=<val>
|
||||
Params: interrupt GPIO used for INT (default 23)
|
||||
reset GPIO used for Reset (default 24)
|
||||
sleep GPIO used for Sleep (default 25)
|
||||
speed SPI bus speed in Hz (default 3000000)
|
||||
speed SPI bus speed in Hz (default 6000000)
|
||||
trim Fine tuning of the internal capacitance
|
||||
arrays (0=+0pF, 15=+4.5pF, default 15)
|
||||
|
||||
|
||||
Name: audioinjector-wm8731-audio
|
||||
Info: Configures the audioinjector.net audio add on soundcard
|
||||
Load: dtoverlay=audioinjector-wm8731-audio
|
||||
Params: <None>
|
||||
|
||||
|
||||
Name: audremap
|
||||
Info: Switches PWM sound output to pins 12 (Right) & 13 (Left)
|
||||
Load: dtoverlay=audremap,<param>=<val>
|
||||
Params: swap_lr Reverse the channel allocation, which will also
|
||||
swap the audio jack outputs (default off)
|
||||
enable_jack Don't switch off the audio jack output
|
||||
(default off)
|
||||
|
||||
|
||||
Name: bmp085_i2c-sensor
|
||||
Info: Configures the BMP085/BMP180 digital barometric pressure and temperature
|
||||
sensors from Bosch Sensortec
|
||||
@@ -277,49 +198,6 @@ Params: gpiopin GPIO connected to the sensor's DATA output.
|
||||
(default 4)
|
||||
|
||||
|
||||
Name: dionaudio-loco
|
||||
Info: Configures the Dion Audio LOCO DAC-AMP
|
||||
Load: dtoverlay=dionaudio-loco
|
||||
Params: <None>
|
||||
|
||||
|
||||
Name: dpi18
|
||||
Info: Overlay for a generic 18-bit DPI display
|
||||
This uses GPIOs 0-21 (so no I2C, uart etc.), and activates the output
|
||||
2-3 seconds after the kernel has started.
|
||||
Load: dtoverlay=dpi18
|
||||
Params: <None>
|
||||
|
||||
|
||||
Name: dpi24
|
||||
Info: Overlay for a generic 24-bit DPI display
|
||||
This uses GPIOs 0-27 (so no I2C, uart etc.), and activates the output
|
||||
2-3 seconds after the kernel has started.
|
||||
Load: dtoverlay=dpi24
|
||||
Params: <None>
|
||||
|
||||
|
||||
Name: dwc-otg
|
||||
Info: Selects the dwc_otg USB controller driver which has fiq support. This
|
||||
is the default on all except the Pi Zero which defaults to dwc2.
|
||||
Load: dtoverlay=dwc-otg
|
||||
Params: <None>
|
||||
|
||||
|
||||
Name: dwc2
|
||||
Info: Selects the dwc2 USB controller driver
|
||||
Load: dtoverlay=dwc2,<param>=<val>
|
||||
Params: dr_mode Dual role mode: "host", "peripheral" or "otg"
|
||||
|
||||
g-rx-fifo-size Size of rx fifo size in gadget mode
|
||||
|
||||
g-np-tx-fifo-size Size of non-periodic tx fifo size in gadget
|
||||
mode
|
||||
|
||||
g-tx-fifo-size Size of periodic tx fifo per endpoint
|
||||
(except ep0) in gadget mode
|
||||
|
||||
|
||||
[ The ds1307-rtc overlay has been deleted. See i2c-rtc. ]
|
||||
|
||||
|
||||
@@ -348,7 +226,7 @@ Params: gpio_pin Input pin number. Default is 18.
|
||||
|
||||
|
||||
Name: gpio-poweroff
|
||||
Info: Drives a GPIO high or low on poweroff (including halt)
|
||||
Info: Drives a GPIO high or low on reboot
|
||||
Load: dtoverlay=gpio-poweroff,<param>=<val>
|
||||
Params: gpiopin GPIO for signalling (default 26)
|
||||
|
||||
@@ -374,34 +252,13 @@ Params: <None>
|
||||
|
||||
Name: hifiberry-dacplus
|
||||
Info: Configures the HifiBerry DAC+ audio card
|
||||
Load: dtoverlay=hifiberry-dacplus,<param>=<val>
|
||||
Params: 24db_digital_gain Allow gain to be applied via the PCM512x codec
|
||||
Digital volume control. Enable with
|
||||
"dtoverlay=hifiberry-dacplus,24db_digital_gain"
|
||||
(The default behaviour is that the Digital
|
||||
volume control is limited to a maximum of
|
||||
0dB. ie. it can attenuate but not provide
|
||||
gain. For most users, this will be desired
|
||||
as it will prevent clipping. By appending
|
||||
the 24dB_digital_gain parameter, the Digital
|
||||
volume control will allow up to 24dB of
|
||||
gain. If this parameter is enabled, it is the
|
||||
responsibility of the user to ensure that
|
||||
the Digital volume control is set to a value
|
||||
that does not result in clipping/distortion!)
|
||||
slave Force DAC+ Pro into slave mode, using Pi as
|
||||
master for bit clock and frame clock.
|
||||
|
||||
|
||||
Name: hifiberry-digi
|
||||
Info: Configures the HifiBerry Digi and Digi+ audio card
|
||||
Load: dtoverlay=hifiberry-digi
|
||||
Load: dtoverlay=hifiberry-dacplus
|
||||
Params: <None>
|
||||
|
||||
|
||||
Name: hifiberry-digi-pro
|
||||
Info: Configures the HifiBerry Digi+ Pro audio card
|
||||
Load: dtoverlay=hifiberry-digi-pro
|
||||
Name: hifiberry-digi
|
||||
Info: Configures the HifiBerry Digi audio card
|
||||
Load: dtoverlay=hifiberry-digi
|
||||
Params: <None>
|
||||
|
||||
|
||||
@@ -454,38 +311,13 @@ Params: i2c_gpio_sda GPIO used for I2C data (default "23")
|
||||
(default "2" = ~100kHz)
|
||||
|
||||
|
||||
Name: i2c-mux
|
||||
Info: Adds support for a number of I2C bus multiplexers on i2c_arm
|
||||
Load: dtoverlay=i2c-mux,<param>=<val>
|
||||
Params: pca9542 Select the NXP PCA9542 device
|
||||
|
||||
pca9545 Select the NXP PCA9545 device
|
||||
|
||||
pca9548 Select the NXP PCA9548 device
|
||||
|
||||
addr Change I2C address of the device (default 0x70)
|
||||
|
||||
|
||||
[ The i2c-mux-pca9548a overlay has been deleted. See i2c-mux. ]
|
||||
|
||||
|
||||
Name: i2c-pwm-pca9685a
|
||||
Info: Adds support for an NXP PCA9685A I2C PWM controller on i2c_arm
|
||||
Load: dtoverlay=i2c-pwm-pca9685a,<param>=<val>
|
||||
Params: addr I2C address of PCA9685A (default 0x40)
|
||||
|
||||
|
||||
Name: i2c-rtc
|
||||
Info: Adds support for a number of I2C Real Time Clock devices
|
||||
Load: dtoverlay=i2c-rtc,<param>=<val>
|
||||
Params: ds1307 Select the DS1307 device
|
||||
|
||||
ds1339 Select the DS1339 device
|
||||
|
||||
ds3231 Select the DS3231 device
|
||||
|
||||
mcp7940x Select the MCP7940x device
|
||||
|
||||
mcp7941x Select the MCP7941x device
|
||||
|
||||
pcf2127 Select the PCF2127 device
|
||||
@@ -494,38 +326,6 @@ Params: ds1307 Select the DS1307 device
|
||||
|
||||
pcf8563 Select the PCF8563 device
|
||||
|
||||
trickle-resistor-ohms Resistor value for trickle charge (DS1339-only)
|
||||
|
||||
wakeup-source Specify that the RTC can be used as a wakeup
|
||||
source
|
||||
|
||||
|
||||
Name: i2c0-bcm2708
|
||||
Info: Enable the i2c_bcm2708 driver for the i2c0 bus. Not all pin combinations
|
||||
are usable on all platforms.
|
||||
Load: dtoverlay=i2c0-bcm2708,<param>=<val>
|
||||
Params: sda0_pin GPIO pin for SDA0 (deprecated - use pins_*)
|
||||
scl0_pin GPIO pin for SCL0 (deprecated - use pins_*)
|
||||
pins_0_1 Use pins 0 and 1 (default)
|
||||
pins_28_29 Use pins 28 and 29
|
||||
pins_44_45 Use pins 44 and 45
|
||||
pins_46_47 Use pins 46 and 47
|
||||
|
||||
|
||||
Name: i2c1-bcm2708
|
||||
Info: Enable the i2c_bcm2708 driver for the i2c1 bus
|
||||
Load: dtoverlay=i2c1-bcm2708,<param>=<val>
|
||||
Params: sda1_pin GPIO pin for SDA1 (2 or 44 - default 2)
|
||||
scl1_pin GPIO pin for SCL1 (3 or 45 - default 3)
|
||||
pin_func Alternative pin function (4 (alt0), 6 (alt2) -
|
||||
default 4)
|
||||
|
||||
|
||||
Name: i2s-gpio28-31
|
||||
Info: move I2S function block to GPIO 28 to 31
|
||||
Load: dtoverlay=i2s-gpio28-31
|
||||
Params: <None>
|
||||
|
||||
|
||||
Name: i2s-mmap
|
||||
Info: Enables mmap support in the bcm2708-i2s driver
|
||||
@@ -535,78 +335,13 @@ Params: <None>
|
||||
|
||||
Name: iqaudio-dac
|
||||
Info: Configures the IQaudio DAC audio card
|
||||
Load: dtoverlay=iqaudio-dac,<param>
|
||||
Params: 24db_digital_gain Allow gain to be applied via the PCM512x codec
|
||||
Digital volume control. Enable with
|
||||
"dtoverlay=iqaudio-dac,24db_digital_gain"
|
||||
(The default behaviour is that the Digital
|
||||
volume control is limited to a maximum of
|
||||
0dB. ie. it can attenuate but not provide
|
||||
gain. For most users, this will be desired
|
||||
as it will prevent clipping. By appending
|
||||
the 24db_digital_gain parameter, the Digital
|
||||
volume control will allow up to 24dB of
|
||||
gain. If this parameter is enabled, it is the
|
||||
responsibility of the user to ensure that
|
||||
the Digital volume control is set to a value
|
||||
that does not result in clipping/distortion!)
|
||||
Load: dtoverlay=iqaudio-dac
|
||||
Params: <None>
|
||||
|
||||
|
||||
Name: iqaudio-dacplus
|
||||
Info: Configures the IQaudio DAC+ audio card
|
||||
Load: dtoverlay=iqaudio-dacplus,<param>=<val>
|
||||
Params: 24db_digital_gain Allow gain to be applied via the PCM512x codec
|
||||
Digital volume control. Enable with
|
||||
"dtoverlay=iqaudio-dacplus,24db_digital_gain"
|
||||
(The default behaviour is that the Digital
|
||||
volume control is limited to a maximum of
|
||||
0dB. ie. it can attenuate but not provide
|
||||
gain. For most users, this will be desired
|
||||
as it will prevent clipping. By appending
|
||||
the 24db_digital_gain parameter, the Digital
|
||||
volume control will allow up to 24dB of
|
||||
gain. If this parameter is enabled, it is the
|
||||
responsibility of the user to ensure that
|
||||
the Digital volume control is set to a value
|
||||
that does not result in clipping/distortion!)
|
||||
auto_mute_amp If specified, unmute/mute the IQaudIO amp when
|
||||
starting/stopping audio playback.
|
||||
unmute_amp If specified, unmute the IQaudIO amp once when
|
||||
the DAC driver module loads.
|
||||
|
||||
|
||||
Name: iqaudio-digi-wm8804-audio
|
||||
Info: Configures the IQAudIO Digi WM8804 audio card
|
||||
Load: dtoverlay=iqaudio-digi-wm8804-audio,<param>=<val>
|
||||
Params: card_name Override the default, "IQAudIODigi", card name.
|
||||
dai_name Override the default, "IQAudIO Digi", dai name.
|
||||
dai_stream_name Override the default, "IQAudIO Digi HiFi",
|
||||
dai stream name.
|
||||
|
||||
|
||||
Name: justboom-dac
|
||||
Info: Configures the JustBoom DAC HAT, Amp HAT, DAC Zero and Amp Zero audio
|
||||
cards
|
||||
Load: dtoverlay=justboom-dac,<param>=<val>
|
||||
Params: 24db_digital_gain Allow gain to be applied via the PCM512x codec
|
||||
Digital volume control. Enable with
|
||||
"dtoverlay=justboom-dac,24db_digital_gain"
|
||||
(The default behaviour is that the Digital
|
||||
volume control is limited to a maximum of
|
||||
0dB. ie. it can attenuate but not provide
|
||||
gain. For most users, this will be desired
|
||||
as it will prevent clipping. By appending
|
||||
the 24dB_digital_gain parameter, the Digital
|
||||
volume control will allow up to 24dB of
|
||||
gain. If this parameter is enabled, it is the
|
||||
responsibility of the user to ensure that
|
||||
the Digital volume control is set to a value
|
||||
that does not result in clipping/distortion!)
|
||||
|
||||
|
||||
Name: justboom-digi
|
||||
Info: Configures the JustBoom Digi HAT and Digi Zero audio cards
|
||||
Load: dtoverlay=justboom-digi
|
||||
Load: dtoverlay=iqaudio-dacplus
|
||||
Params: <None>
|
||||
|
||||
|
||||
@@ -636,39 +371,6 @@ Params: gpio_out_pin GPIO for output (default "17")
|
||||
(default "off")
|
||||
|
||||
|
||||
Name: mcp23017
|
||||
Info: Configures the MCP23017 I2C GPIO expander
|
||||
Load: dtoverlay=mcp23017,<param>=<val>
|
||||
Params: gpiopin Gpio pin connected to the INTA output of the
|
||||
MCP23017 (default: 4)
|
||||
|
||||
addr I2C address of the MCP23017 (default: 0x20)
|
||||
|
||||
|
||||
Name: mcp23s17
|
||||
Info: Configures the MCP23S08/17 SPI GPIO expanders.
|
||||
If devices are present on SPI1 or SPI2, those interfaces must be enabled
|
||||
with one of the spi1-1/2/3cs and/or spi2-1/2/3cs overlays.
|
||||
If interrupts are enabled for a device on a given CS# on a SPI bus, that
|
||||
device must be the only one present on that SPI bus/CS#.
|
||||
Load: dtoverlay=mcp23s17,<param>=<val>
|
||||
Params: s08-spi<n>-<m>-present 4-bit integer, bitmap indicating MCP23S08
|
||||
devices present on SPI<n>, CS#<m>
|
||||
|
||||
s17-spi<n>-<m>-present 8-bit integer, bitmap indicating MCP23S17
|
||||
devices present on SPI<n>, CS#<m>
|
||||
|
||||
s08-spi<n>-<m>-int-gpio integer, enables interrupts on a single
|
||||
MCP23S08 device on SPI<n>, CS#<m>, specifies
|
||||
the GPIO pin to which INT output of MCP23S08
|
||||
is connected.
|
||||
|
||||
s17-spi<n>-<m>-int-gpio integer, enables mirrored interrupts on a
|
||||
single MCP23S17 device on SPI<n>, CS#<m>,
|
||||
specifies the GPIO pin to which either INTA
|
||||
or INTB output of MCP23S17 is connected.
|
||||
|
||||
|
||||
Name: mcp2515-can0
|
||||
Info: Configures the MCP2515 CAN controller on spi0.0
|
||||
Load: dtoverlay=mcp2515-can0,<param>=<val>
|
||||
@@ -694,6 +396,7 @@ Info: Selects the bcm2835-mmc SD/MMC driver, optionally with overclock
|
||||
Load: dtoverlay=mmc,<param>=<val>
|
||||
Params: overclock_50 Clock (in MHz) to use when the MMC framework
|
||||
requests 50MHz
|
||||
force_pio Disable DMA support
|
||||
|
||||
|
||||
Name: mz61581
|
||||
@@ -721,45 +424,6 @@ Params: speed Display SPI bus speed
|
||||
[ The pcf8563-rtc overlay has been deleted. See i2c-rtc. ]
|
||||
|
||||
|
||||
Name: pi3-act-led
|
||||
Info: Pi3 uses a GPIO expander to drive the LEDs which can only be accessed
|
||||
from the VPU. There is a special driver for this with a separate DT
|
||||
node, which has the unfortunate consequence of breaking the
|
||||
act_led_gpio and act_led_activelow dtparams.
|
||||
This overlay changes the GPIO controller back to the standard one and
|
||||
restores the dtparams.
|
||||
Load: dtoverlay=pi3-act-led,<param>=<val>
|
||||
Params: activelow Set to "on" to invert the sense of the LED
|
||||
(default "off")
|
||||
|
||||
gpio Set which GPIO to use for the activity LED
|
||||
(in case you want to connect it to an external
|
||||
device)
|
||||
REQUIRED
|
||||
|
||||
|
||||
Name: pi3-disable-bt
|
||||
Info: Disable Pi3 Bluetooth and restore UART0/ttyAMA0 over GPIOs 14 & 15
|
||||
N.B. To disable the systemd service that initialises the modem so it
|
||||
doesn't use the UART, use 'sudo systemctl disable hciuart'.
|
||||
Load: dtoverlay=pi3-disable-bt
|
||||
Params: <None>
|
||||
|
||||
|
||||
Name: pi3-miniuart-bt
|
||||
Info: Switch Pi3 Bluetooth function to use the mini-UART (ttyS0) and restore
|
||||
UART0/ttyAMA0 over GPIOs 14 & 15. Note that this may reduce the maximum
|
||||
usable baudrate.
|
||||
N.B. It is also necessary to edit /lib/systemd/system/hciuart.service
|
||||
and replace ttyAMA0 with ttyS0, unless you have a system with udev rules
|
||||
that create /dev/serial0 and /dev/serial1, in which case use
|
||||
/dev/serial1 instead because it will always be correct. Furthermore,
|
||||
you must also set core_freq=250 in config.txt or the miniuart will not
|
||||
work.
|
||||
Load: dtoverlay=pi3-miniuart-bt
|
||||
Params: <None>
|
||||
|
||||
|
||||
Name: piscreen
|
||||
Info: PiScreen display by OzzMaker.com
|
||||
Load: dtoverlay=piscreen,<param>=<val>
|
||||
@@ -788,18 +452,6 @@ Params: speed Display SPI bus speed
|
||||
xohms Touchpanel sensitivity (X-plate resistance)
|
||||
|
||||
|
||||
Name: pitft22
|
||||
Info: Adafruit PiTFT 2.2" screen
|
||||
Load: dtoverlay=pitft22,<param>=<val>
|
||||
Params: speed Display SPI bus speed
|
||||
|
||||
rotate Display rotation {0,90,180,270}
|
||||
|
||||
fps Delay between frame updates
|
||||
|
||||
debug Debug output level {0-7}
|
||||
|
||||
|
||||
Name: pitft28-capacitive
|
||||
Info: Adafruit PiTFT 2.8" capacitive touch screen
|
||||
Load: dtoverlay=pitft28-capacitive,<param>=<val>
|
||||
@@ -838,8 +490,6 @@ Name: pps-gpio
|
||||
Info: Configures the pps-gpio (pulse-per-second time signal via GPIO).
|
||||
Load: dtoverlay=pps-gpio,<param>=<val>
|
||||
Params: gpiopin Input GPIO (default "18")
|
||||
assert_falling_edge When present, assert is indicated by a falling
|
||||
edge, rather than by a rising edge
|
||||
|
||||
|
||||
Name: pwm
|
||||
@@ -882,14 +532,6 @@ Params: pin Output pin (default 18) - see table
|
||||
clock PWM clock frequency (informational)
|
||||
|
||||
|
||||
Name: qca7000
|
||||
Info: I2SE's Evaluation Board for PLC Stamp micro
|
||||
Load: dtoverlay=qca7000,<param>=<val>
|
||||
Params: int_pin GPIO pin for interrupt signal (default 23)
|
||||
|
||||
speed SPI bus speed (default 12 MHz)
|
||||
|
||||
|
||||
Name: raspidac3
|
||||
Info: Configures the RaspiDAV Rev.3x audio card
|
||||
Load: dtoverlay=raspidac3
|
||||
@@ -912,11 +554,14 @@ Name: rpi-display
|
||||
Info: RPi-Display - 2.8" Touch Display by Watterott
|
||||
Load: dtoverlay=rpi-display,<param>=<val>
|
||||
Params: speed Display SPI bus speed
|
||||
|
||||
rotate Display rotation {0,90,180,270}
|
||||
|
||||
fps Delay between frame updates
|
||||
|
||||
debug Debug output level {0-7}
|
||||
|
||||
xohms Touchpanel sensitivity (X-plate resistance)
|
||||
swapxy Swap x and y axis
|
||||
|
||||
|
||||
Name: rpi-ft5406
|
||||
@@ -937,38 +582,8 @@ Load: dtoverlay=rpi-sense
|
||||
Params: <None>
|
||||
|
||||
|
||||
Name: rra-digidac1-wm8741-audio
|
||||
Info: Configures the Red Rocks Audio DigiDAC1 soundcard
|
||||
Load: dtoverlay=rra-digidac1-wm8741-audio
|
||||
Params: <None>
|
||||
|
||||
|
||||
Name: sc16is750-i2c
|
||||
Info: Overlay for the NXP SC16IS750 UART with I2C Interface
|
||||
Enables the chip on I2C1 at 0x48. To select another address,
|
||||
please refer to table 10 in reference manual.
|
||||
|
||||
Load: dtoverlay=sc16is750-i2c,<param>=<val>
|
||||
Params: int_pin GPIO used for IRQ (default 24)
|
||||
addr Address (default 0x48)
|
||||
|
||||
|
||||
Name: sc16is752-spi1
|
||||
Info: Overlay for the NXP SC16IS752 Dual UART with SPI Interface
|
||||
Enables the chip on SPI1.
|
||||
N.B.: spi1 is only accessible on devices with a 40pin header, eg:
|
||||
A+, B+, Zero and PI2 B; as well as the Compute Module.
|
||||
|
||||
Load: dtoverlay=sc16is752-spi1,<param>=<val>
|
||||
Params: int_pin GPIO used for IRQ (default 24)
|
||||
|
||||
|
||||
Name: sdhost
|
||||
Info: Selects the bcm2835-sdhost SD/MMC driver, optionally with overclock.
|
||||
N.B. This overlay is designed for situations where the mmc driver is
|
||||
the default, so it disables the other (mmc) interface - this will kill
|
||||
WiFi on a Pi3. If this isn't what you want, either use the sdtweak
|
||||
overlay or the new sd_* dtparams of the base DTBs.
|
||||
Info: Selects the bcm2835-sdhost SD/MMC driver, optionally with overclock
|
||||
Load: dtoverlay=sdhost,<param>=<val>
|
||||
Params: overclock_50 Clock (in MHz) to use when the MMC framework
|
||||
requests 50MHz
|
||||
@@ -985,51 +600,6 @@ Name: sdio
|
||||
Info: Selects the bcm2835-sdhost SD/MMC driver, optionally with overclock,
|
||||
and enables SDIO via GPIOs 22-27.
|
||||
Load: dtoverlay=sdio,<param>=<val>
|
||||
Params: overclock_50 SD Clock (in MHz) to use when the MMC framework
|
||||
requests 50MHz
|
||||
|
||||
sdio_overclock SDIO Clock (in MHz) to use when the MMC
|
||||
framework requests 50MHz
|
||||
|
||||
force_pio Disable DMA support (default off)
|
||||
|
||||
pio_limit Number of blocks above which to use DMA
|
||||
(default 1)
|
||||
|
||||
debug Enable debug output (default off)
|
||||
|
||||
poll_once Disable SDIO-device polling every second
|
||||
(default on: polling once at boot-time)
|
||||
|
||||
bus_width Set the SDIO host bus width (default 4 bits)
|
||||
|
||||
|
||||
Name: sdio-1bit
|
||||
Info: Selects the bcm2835-sdhost SD/MMC driver, optionally with overclock,
|
||||
and enables 1-bit SDIO via GPIOs 22-25.
|
||||
Load: dtoverlay=sdio-1bit,<param>=<val>
|
||||
Params: overclock_50 SD Clock (in MHz) to use when the MMC framework
|
||||
requests 50MHz
|
||||
|
||||
sdio_overclock SDIO Clock (in MHz) to use when the MMC
|
||||
framework requests 50MHz
|
||||
|
||||
force_pio Disable DMA support (default off)
|
||||
|
||||
pio_limit Number of blocks above which to use DMA
|
||||
(default 1)
|
||||
|
||||
debug Enable debug output (default off)
|
||||
|
||||
poll_once Disable SDIO-device polling every second
|
||||
(default on: polling once at boot-time)
|
||||
|
||||
|
||||
Name: sdtweak
|
||||
Info: Tunes the bcm2835-sdhost SD/MMC driver
|
||||
N.B. This functionality is now available via the sd_* dtparams in the
|
||||
base DTB.
|
||||
Load: dtoverlay=sdtweak,<param>=<val>
|
||||
Params: overclock_50 Clock (in MHz) to use when the MMC framework
|
||||
requests 50MHz
|
||||
|
||||
@@ -1040,6 +610,9 @@ Params: overclock_50 Clock (in MHz) to use when the MMC framework
|
||||
|
||||
debug Enable debug output (default off)
|
||||
|
||||
poll_once Disable SDIO-device polling every second
|
||||
(default on: polling once at boot-time)
|
||||
|
||||
|
||||
Name: smi
|
||||
Info: Enables the Secondary Memory Interface peripheral. Uses GPIOs 2-25!
|
||||
@@ -1065,117 +638,6 @@ Load: dtoverlay=spi-gpio35-39
|
||||
Params: <None>
|
||||
|
||||
|
||||
Name: spi-rtc
|
||||
Info: Adds support for a number of SPI Real Time Clock devices
|
||||
Load: dtoverlay=spi-rtc,<param>=<val>
|
||||
Params: pcf2123 Select the PCF2123 device
|
||||
|
||||
|
||||
Name: spi0-hw-cs
|
||||
Info: Re-enables hardware CS/CE (chip selects) for SPI0
|
||||
Load: dtoverlay=spi0-hw-cs
|
||||
Params: <None>
|
||||
|
||||
|
||||
Name: spi1-1cs
|
||||
Info: Enables spi1 with a single chip select (CS) line and associated spidev
|
||||
dev node. The gpio pin number for the CS line and spidev device node
|
||||
creation are configurable.
|
||||
N.B.: spi1 is only accessible on devices with a 40pin header, eg:
|
||||
A+, B+, Zero and PI2 B; as well as the Compute Module.
|
||||
Load: dtoverlay=spi1-1cs,<param>=<val>
|
||||
Params: cs0_pin GPIO pin for CS0 (default 18 - BCM SPI1_CE0).
|
||||
cs0_spidev Set to 'disabled' to stop the creation of a
|
||||
userspace device node /dev/spidev1.0 (default
|
||||
is 'okay' or enabled).
|
||||
|
||||
|
||||
Name: spi1-2cs
|
||||
Info: Enables spi1 with two chip select (CS) lines and associated spidev
|
||||
dev nodes. The gpio pin numbers for the CS lines and spidev device node
|
||||
creation are configurable.
|
||||
N.B.: spi1 is only accessible on devices with a 40pin header, eg:
|
||||
A+, B+, Zero and PI2 B; as well as the Compute Module.
|
||||
Load: dtoverlay=spi1-2cs,<param>=<val>
|
||||
Params: cs0_pin GPIO pin for CS0 (default 18 - BCM SPI1_CE0).
|
||||
cs1_pin GPIO pin for CS1 (default 17 - BCM SPI1_CE1).
|
||||
cs0_spidev Set to 'disabled' to stop the creation of a
|
||||
userspace device node /dev/spidev1.0 (default
|
||||
is 'okay' or enabled).
|
||||
cs1_spidev Set to 'disabled' to stop the creation of a
|
||||
userspace device node /dev/spidev1.1 (default
|
||||
is 'okay' or enabled).
|
||||
|
||||
|
||||
Name: spi1-3cs
|
||||
Info: Enables spi1 with three chip select (CS) lines and associated spidev
|
||||
dev nodes. The gpio pin numbers for the CS lines and spidev device node
|
||||
creation are configurable.
|
||||
N.B.: spi1 is only accessible on devices with a 40pin header, eg:
|
||||
A+, B+, Zero and PI2 B; as well as the Compute Module.
|
||||
Load: dtoverlay=spi1-3cs,<param>=<val>
|
||||
Params: cs0_pin GPIO pin for CS0 (default 18 - BCM SPI1_CE0).
|
||||
cs1_pin GPIO pin for CS1 (default 17 - BCM SPI1_CE1).
|
||||
cs2_pin GPIO pin for CS2 (default 16 - BCM SPI1_CE2).
|
||||
cs0_spidev Set to 'disabled' to stop the creation of a
|
||||
userspace device node /dev/spidev1.0 (default
|
||||
is 'okay' or enabled).
|
||||
cs1_spidev Set to 'disabled' to stop the creation of a
|
||||
userspace device node /dev/spidev1.1 (default
|
||||
is 'okay' or enabled).
|
||||
cs2_spidev Set to 'disabled' to stop the creation of a
|
||||
userspace device node /dev/spidev1.2 (default
|
||||
is 'okay' or enabled).
|
||||
|
||||
|
||||
Name: spi2-1cs
|
||||
Info: Enables spi2 with a single chip select (CS) line and associated spidev
|
||||
dev node. The gpio pin number for the CS line and spidev device node
|
||||
creation are configurable.
|
||||
N.B.: spi2 is only accessible with the Compute Module.
|
||||
Load: dtoverlay=spi2-1cs,<param>=<val>
|
||||
Params: cs0_pin GPIO pin for CS0 (default 43 - BCM SPI2_CE0).
|
||||
cs0_spidev Set to 'disabled' to stop the creation of a
|
||||
userspace device node /dev/spidev2.0 (default
|
||||
is 'okay' or enabled).
|
||||
|
||||
|
||||
Name: spi2-2cs
|
||||
Info: Enables spi2 with two chip select (CS) lines and associated spidev
|
||||
dev nodes. The gpio pin numbers for the CS lines and spidev device node
|
||||
creation are configurable.
|
||||
N.B.: spi2 is only accessible with the Compute Module.
|
||||
Load: dtoverlay=spi2-2cs,<param>=<val>
|
||||
Params: cs0_pin GPIO pin for CS0 (default 43 - BCM SPI2_CE0).
|
||||
cs1_pin GPIO pin for CS1 (default 44 - BCM SPI2_CE1).
|
||||
cs0_spidev Set to 'disabled' to stop the creation of a
|
||||
userspace device node /dev/spidev2.0 (default
|
||||
is 'okay' or enabled).
|
||||
cs1_spidev Set to 'disabled' to stop the creation of a
|
||||
userspace device node /dev/spidev2.1 (default
|
||||
is 'okay' or enabled).
|
||||
|
||||
|
||||
Name: spi2-3cs
|
||||
Info: Enables spi2 with three chip select (CS) lines and associated spidev
|
||||
dev nodes. The gpio pin numbers for the CS lines and spidev device node
|
||||
creation are configurable.
|
||||
N.B.: spi2 is only accessible with the Compute Module.
|
||||
Load: dtoverlay=spi2-3cs,<param>=<val>
|
||||
Params: cs0_pin GPIO pin for CS0 (default 43 - BCM SPI2_CE0).
|
||||
cs1_pin GPIO pin for CS1 (default 44 - BCM SPI2_CE1).
|
||||
cs2_pin GPIO pin for CS2 (default 45 - BCM SPI2_CE2).
|
||||
cs0_spidev Set to 'disabled' to stop the creation of a
|
||||
userspace device node /dev/spidev2.0 (default
|
||||
is 'okay' or enabled).
|
||||
cs1_spidev Set to 'disabled' to stop the creation of a
|
||||
userspace device node /dev/spidev2.1 (default
|
||||
is 'okay' or enabled).
|
||||
cs2_spidev Set to 'disabled' to stop the creation of a
|
||||
userspace device node /dev/spidev2.2 (default
|
||||
is 'okay' or enabled).
|
||||
|
||||
|
||||
Name: tinylcd35
|
||||
Info: 3.5" Color TFT Display by www.tinylcd.com
|
||||
Options: Touch, RTC, keypad
|
||||
@@ -1215,27 +677,12 @@ Params: txd1_pin GPIO pin for TXD1 (14, 32 or 40 - default 14)
|
||||
rxd1_pin GPIO pin for RXD1 (15, 33 or 41 - default 15)
|
||||
|
||||
|
||||
Name: vc4-fkms-v3d
|
||||
Info: Enable Eric Anholt's DRM VC4 V3D driver on top of the dispmanx
|
||||
display stack.
|
||||
Load: dtoverlay=vc4-fkms-v3d,<param>
|
||||
Params: cma-256 CMA is 256MB, 256MB-aligned (needs 1GB)
|
||||
cma-192 CMA is 192MB, 256MB-aligned (needs 1GB)
|
||||
cma-128 CMA is 128MB, 128MB-aligned
|
||||
cma-96 CMA is 96MB, 128MB-aligned
|
||||
cma-64 CMA is 64MB, 64MB-aligned
|
||||
|
||||
|
||||
Name: vc4-kms-v3d
|
||||
Info: Enable Eric Anholt's DRM VC4 HDMI/HVS/V3D driver. Running startx or
|
||||
booting to GUI while this overlay is in use will cause interesting
|
||||
lockups.
|
||||
Load: dtoverlay=vc4-kms-v3d,<param>
|
||||
Params: cma-256 CMA is 256MB, 256MB-aligned (needs 1GB)
|
||||
cma-192 CMA is 192MB, 256MB-aligned (needs 1GB)
|
||||
cma-128 CMA is 128MB, 128MB-aligned
|
||||
cma-96 CMA is 96MB, 128MB-aligned
|
||||
cma-64 CMA is 64MB, 64MB-aligned
|
||||
Load: dtoverlay=vc4-kms-v3d
|
||||
Params: <None>
|
||||
|
||||
|
||||
Name: vga666
|
||||
@@ -1268,14 +715,6 @@ Params: gpiopin GPIO for I/O (default "4")
|
||||
extpullup GPIO for external pullup (default "5")
|
||||
|
||||
|
||||
Name: wittypi
|
||||
Info: Configures the wittypi RTC module.
|
||||
Load: dtoverlay=wittypi,<param>=<val>
|
||||
Params: led_gpio GPIO for LED (default "17")
|
||||
led_trigger Choose which activity the LED tracks (default
|
||||
"default-on")
|
||||
|
||||
|
||||
Troubleshooting
|
||||
===============
|
||||
|
||||
|
||||
@@ -1,53 +0,0 @@
|
||||
// Definitions for ADAU1977 ADC
|
||||
/dts-v1/;
|
||||
/plugin/;
|
||||
|
||||
/ {
|
||||
compatible = "brcm,bcm2708";
|
||||
|
||||
fragment@0 {
|
||||
target = <&soc>;
|
||||
|
||||
__overlay__ {
|
||||
codec_supply: fixedregulator@0 {
|
||||
compatible = "regulator-fixed";
|
||||
regulator-name = "AVDD";
|
||||
regulator-min-microvolt = <3300000>;
|
||||
regulator-max-microvolt = <3300000>;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
fragment@1 {
|
||||
target = <&i2c>;
|
||||
|
||||
__overlay__ {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
status = "okay";
|
||||
|
||||
adau1977: codec@11 {
|
||||
compatible = "adi,adau1977";
|
||||
reg = <0x11>;
|
||||
reset-gpios = <&gpio 5 0>;
|
||||
AVDD-supply = <&codec_supply>;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
fragment@2 {
|
||||
target = <&i2s>;
|
||||
__overlay__ {
|
||||
status = "okay";
|
||||
};
|
||||
};
|
||||
|
||||
fragment@3 {
|
||||
target = <&sound>;
|
||||
__overlay__ {
|
||||
compatible = "adi,adau1977-adc";
|
||||
i2s-controller = <&i2s>;
|
||||
status = "okay";
|
||||
};
|
||||
};
|
||||
};
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user