forked from Minki/linux
ASoC: Updates for v3.16
Lots of cleanup work going on in the core this release but very little visible to external users except for the new drivers that have been added. - Support for specifying aux CODECs in DT. - Removal of the deprecated mux and enum macros. - More moves towards full componentisation. - Removal of some unused I/O code. - Lots of cleanups, fixes and enhancements to the davinci, Freescale, Haswell and Realtek drivers. - Several drivers exposed directly in Kconfig for use with simple-card. - New drivers for Cirrus CS42L56, Realtek RT5639, RT5642 and RT5651 and ST STA350. -----BEGIN PGP SIGNATURE----- Version: GnuPG v1 iQIcBAABAgAGBQJTfhiIAAoJELSic+t+oim9jy0P/jcbZQkwBD23UWDbtUph5hRr O7tQ832exPbpFAKsxybFSt67H2yUb4iaGFy9hwM8GSKWzay23FAO7bw7Hxtd9tUC F7xPc7iqbk///aGpviHQAFV9wCtUB0jxz/fyUNPYFi9ZvhyYXzxa0xi7OfhCwuY/ mb2LoaZ0EcpESyxwMQbVQhh22ZUXlf7BXEZuybSWFyH4DiyX/F6atSRWzki3mEMR 1x7GnDr0jsCxQHJMfLYzSzYQXlj7F99iXqXCNUmV+sVuJdMHV8rFdsKt4x0YnfEp kQH1XE6pwyxgL6fGdN1FbJTE2pDqfsUh5IiJ5fIWVfKwY0dtJzn9CMsCVr7XLIsc RDa/ATzeeXWc/KQEVraHJd6BEr/1XfDRGoJIUA9qSsEg+xhHOmG0OiaHjr+/ci8R KcmIj3ETWh61V48sJeG3U1EArUqUyupufmYZdrzPGmhgFjxmgyKQB/8E1k5IPJCh TlFko05Xy+A1XTv54nrhJyM+zsFtbrmhkdFqUOSZINHzRAWv6/Y/55Q6HfVuuyPO 7p0hBapp4EqyKT4gch7qd2yLGyVn/SYG9lusp1I8wcPWOX7g5iHJzs3VLc/4gLZs FJKsLxeUy7AWVWLVBMnJqgf1WBMQs+lkeOwB4MwZsJ0slYMezkI/EO8AxyMULr2w ilpbOkn3TZvqmAaRTPxG =OKes -----END PGP SIGNATURE----- Merge tag 'asoc-v3.16' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound into for-next ASoC: Updates for v3.16 Lots of cleanup work going on in the core this release but very little visible to external users except for the new drivers that have been added. - Support for specifying aux CODECs in DT. - Removal of the deprecated mux and enum macros. - More moves towards full componentisation. - Removal of some unused I/O code. - Lots of cleanups, fixes and enhancements to the davinci, Freescale, Haswell and Realtek drivers. - Several drivers exposed directly in Kconfig for use with simple-card. - New drivers for Cirrus CS42L56, Realtek RT5639, RT5642 and RT5651 and ST STA350.
This commit is contained in:
commit
0c1d121016
@ -19,6 +19,9 @@ to deliver its interrupts via SPIs.
|
||||
|
||||
- clock-frequency : The frequency of the main counter, in Hz. Optional.
|
||||
|
||||
- always-on : a boolean property. If present, the timer is powered through an
|
||||
always-on power domain, therefore it never loses context.
|
||||
|
||||
Example:
|
||||
|
||||
timer {
|
||||
|
@ -24,6 +24,7 @@ Required properties:
|
||||
* "sata-phy" for the SATA 6.0Gbps PHY
|
||||
|
||||
Optional properties:
|
||||
- dma-coherent : Present if dma operations are coherent
|
||||
- status : Shall be "ok" if enabled or "disabled" if disabled.
|
||||
Default is "ok".
|
||||
|
||||
@ -55,6 +56,7 @@ Example:
|
||||
<0x0 0x1f22e000 0x0 0x1000>,
|
||||
<0x0 0x1f227000 0x0 0x1000>;
|
||||
interrupts = <0x0 0x87 0x4>;
|
||||
dma-coherent;
|
||||
status = "ok";
|
||||
clocks = <&sataclk 0>;
|
||||
phys = <&phy2 0>;
|
||||
@ -69,6 +71,7 @@ Example:
|
||||
<0x0 0x1f23e000 0x0 0x1000>,
|
||||
<0x0 0x1f237000 0x0 0x1000>;
|
||||
interrupts = <0x0 0x88 0x4>;
|
||||
dma-coherent;
|
||||
status = "ok";
|
||||
clocks = <&sataclk 0>;
|
||||
phys = <&phy3 0>;
|
||||
|
@ -10,6 +10,9 @@ Optional properties:
|
||||
- fsl,mc13xxx-uses-touch : Indicate the touchscreen controller is being used
|
||||
|
||||
Sub-nodes:
|
||||
- codec: Contain the Audio Codec node.
|
||||
- adc-port: Contain PMIC SSI port number used for ADC.
|
||||
- dac-port: Contain PMIC SSI port number used for DAC.
|
||||
- leds : Contain the led nodes and initial register values in property
|
||||
"led-control". Number of register depends of used IC, for MC13783 is 6,
|
||||
for MC13892 is 4, for MC34708 is 1. See datasheet for bits definitions of
|
||||
|
@ -4,11 +4,15 @@ Required properties:
|
||||
- compatible: Should be "snps,arc-emac"
|
||||
- reg: Address and length of the register set for the device
|
||||
- interrupts: Should contain the EMAC interrupts
|
||||
- clock-frequency: CPU frequency. It is needed to calculate and set polling
|
||||
period of EMAC.
|
||||
- max-speed: see ethernet.txt file in the same directory.
|
||||
- phy: see ethernet.txt file in the same directory.
|
||||
|
||||
Clock handling:
|
||||
The clock frequency is needed to calculate and set polling period of EMAC.
|
||||
It must be provided by one of:
|
||||
- clock-frequency: CPU frequency.
|
||||
- clocks: reference to the clock supplying the EMAC.
|
||||
|
||||
Child nodes of the driver are the individual PHY devices connected to the
|
||||
MDIO bus. They must have a "reg" property given the PHY address on the MDIO bus.
|
||||
|
||||
@ -19,7 +23,11 @@ Examples:
|
||||
reg = <0xc0fc2000 0x3c>;
|
||||
interrupts = <6>;
|
||||
mac-address = [ 00 11 22 33 44 55 ];
|
||||
|
||||
clock-frequency = <80000000>;
|
||||
/* or */
|
||||
clocks = <&emac_clock>;
|
||||
|
||||
max-speed = <100>;
|
||||
phy = <&phy0>;
|
||||
|
||||
|
@ -23,5 +23,5 @@ gmac0: ethernet@ff700000 {
|
||||
interrupt-names = "macirq";
|
||||
mac-address = [00 00 00 00 00 00];/* Filled in by U-Boot */
|
||||
clocks = <&emac_0_clk>;
|
||||
clocks-names = "stmmaceth";
|
||||
clock-names = "stmmaceth";
|
||||
};
|
||||
|
@ -33,7 +33,7 @@ Optional properties:
|
||||
- max-frame-size: See ethernet.txt file in the same directory
|
||||
- clocks: If present, the first clock should be the GMAC main clock,
|
||||
further clocks may be specified in derived bindings.
|
||||
- clocks-names: One name for each entry in the clocks property, the
|
||||
- clock-names: One name for each entry in the clocks property, the
|
||||
first one should be "stmmaceth".
|
||||
|
||||
Examples:
|
||||
|
@ -83,7 +83,7 @@ Example:
|
||||
reg = <0xfe61f080 0x4>;
|
||||
reg-names = "irqmux";
|
||||
interrupts = <GIC_SPI 180 IRQ_TYPE_LEVEL_HIGH>;
|
||||
interrupts-names = "irqmux";
|
||||
interrupt-names = "irqmux";
|
||||
ranges = <0 0xfe610000 0x5000>;
|
||||
|
||||
PIO0: gpio@fe610000 {
|
||||
@ -165,7 +165,7 @@ sdhci0:sdhci@fe810000{
|
||||
interrupt-parent = <&PIO3>;
|
||||
#interrupt-cells = <2>;
|
||||
interrupts = <3 IRQ_TYPE_LEVEL_HIGH>; /* Interrupt line via PIO3-3 */
|
||||
interrupts-names = "card-detect";
|
||||
interrupt-names = "card-detect";
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&pinctrl_mmc>;
|
||||
};
|
||||
|
@ -8,6 +8,8 @@ Required properties:
|
||||
|
||||
- reg : The chip select number on the SPI bus
|
||||
|
||||
- vdd-supply : A regulator node, providing 2.7V - 3.6V
|
||||
|
||||
Optional properties:
|
||||
|
||||
- reset-gpio : a GPIO spec for the reset pin. If specified, it will be
|
||||
@ -19,4 +21,5 @@ spdif: ak4104@0 {
|
||||
compatible = "asahi-kasei,ak4104";
|
||||
reg = <0>;
|
||||
spi-max-frequency = <5000000>;
|
||||
vdd-supply = <&vdd_3v3_reg>;
|
||||
};
|
||||
|
25
Documentation/devicetree/bindings/sound/alc5623.txt
Normal file
25
Documentation/devicetree/bindings/sound/alc5623.txt
Normal file
@ -0,0 +1,25 @@
|
||||
ALC5621/ALC5622/ALC5623 audio Codec
|
||||
|
||||
Required properties:
|
||||
|
||||
- compatible: "realtek,alc5623"
|
||||
- reg: the I2C address of the device.
|
||||
|
||||
Optional properties:
|
||||
|
||||
- add-ctrl: Default register value for Reg-40h, Additional Control
|
||||
Register. If absent or has the value of 0, the
|
||||
register is untouched.
|
||||
|
||||
- jack-det-ctrl: Default register value for Reg-5Ah, Jack Detect
|
||||
Control Register. If absent or has value 0, the
|
||||
register is untouched.
|
||||
|
||||
Example:
|
||||
|
||||
alc5621: alc5621@1a {
|
||||
compatible = "alc5621";
|
||||
reg = <0x1a>;
|
||||
add-ctrl = <0x3700>;
|
||||
jack-det-ctrl = <0x4810>;
|
||||
};
|
63
Documentation/devicetree/bindings/sound/cs42l56.txt
Normal file
63
Documentation/devicetree/bindings/sound/cs42l56.txt
Normal file
@ -0,0 +1,63 @@
|
||||
CS42L52 audio CODEC
|
||||
|
||||
Required properties:
|
||||
|
||||
- compatible : "cirrus,cs42l56"
|
||||
|
||||
- reg : the I2C address of the device for I2C
|
||||
|
||||
- VA-supply, VCP-supply, VLDO-supply : power supplies for the device,
|
||||
as covered in Documentation/devicetree/bindings/regulator/regulator.txt.
|
||||
|
||||
Optional properties:
|
||||
|
||||
- cirrus,gpio-nreset : GPIO controller's phandle and the number
|
||||
of the GPIO used to reset the codec.
|
||||
|
||||
- cirrus,chgfreq-divisor : Values used to set the Charge Pump Frequency.
|
||||
Allowable values of 0x00 through 0x0F. These are raw values written to the
|
||||
register, not the actual frequency. The frequency is determined by the following.
|
||||
Frequency = MCLK / 4 * (N+2)
|
||||
N = chgfreq_val
|
||||
MCLK = Where MCLK is the frequency of the mclk signal after the MCLKDIV2 circuit.
|
||||
|
||||
- cirrus,ain1a-ref-cfg, ain1b-ref-cfg : boolean, If present, AIN1A or AIN1B are configured
|
||||
as a pseudo-differential input referenced to AIN1REF/AIN3A.
|
||||
|
||||
- cirrus,ain2a-ref-cfg, ain2b-ref-cfg : boolean, If present, AIN2A or AIN2B are configured
|
||||
as a pseudo-differential input referenced to AIN2REF/AIN3B.
|
||||
|
||||
- cirrus,micbias-lvl: Set the output voltage level on the MICBIAS Pin.
|
||||
0 = 0.5 x VA
|
||||
1 = 0.6 x VA
|
||||
2 = 0.7 x VA
|
||||
3 = 0.8 x VA
|
||||
4 = 0.83 x VA
|
||||
5 = 0.91 x VA
|
||||
|
||||
- cirrus,adaptive-pwr-cfg : Configures how the power to the Headphone and Lineout
|
||||
Amplifiers adapt to the output signal levels.
|
||||
0 = Adapt to Volume Mode. Voltage level determined by the sum of the relevant volume settings.
|
||||
1 = Fixed - Headphone and Line Amp supply = + or - VCP/2.
|
||||
2 = Fixed - Headphone and Line Amp supply = + or - VCP.
|
||||
3 = Adapted to Signal; Voltage level is dynamically determined by the output signal.
|
||||
|
||||
- cirrus,hpf-left-freq, hpf-right-freq : Sets the corner frequency (-3dB point) for the internal High-Pass
|
||||
Filter.
|
||||
0 = 1.8Hz
|
||||
1 = 119Hz
|
||||
2 = 236Hz
|
||||
3 = 464Hz
|
||||
|
||||
|
||||
Example:
|
||||
|
||||
codec: codec@4b {
|
||||
compatible = "cirrus,cs42l56";
|
||||
reg = <0x4b>;
|
||||
gpio-reset = <&gpio 10 0>;
|
||||
cirrus,chgfreq-divisor = <0x05>;
|
||||
cirrus.ain1_ref_cfg;
|
||||
cirrus,micbias-lvl = <5>;
|
||||
VA-supply = <®_audio>;
|
||||
};
|
@ -47,7 +47,7 @@ mcasp0: mcasp0@1d00000 {
|
||||
reg = <0x100000 0x3000>;
|
||||
reg-names "mpu";
|
||||
interrupts = <82>, <83>;
|
||||
interrupts-names = "tx", "rx";
|
||||
interrupt-names = "tx", "rx";
|
||||
op-mode = <0>; /* MCASP_IIS_MODE */
|
||||
tdm-slots = <2>;
|
||||
serial-dir = <
|
||||
|
@ -7,10 +7,11 @@ codec/DSP interfaces.
|
||||
|
||||
|
||||
Required properties:
|
||||
- compatible: Compatible list, contains "fsl,vf610-sai".
|
||||
- compatible: Compatible list, contains "fsl,vf610-sai" or "fsl,imx6sx-sai".
|
||||
- reg: Offset and length of the register set for the device.
|
||||
- clocks: Must contain an entry for each entry in clock-names.
|
||||
- clock-names : Must include the "sai" entry.
|
||||
- clock-names : Must include the "bus" for register access and "mclk1" "mclk2"
|
||||
"mclk3" for bit clock and frame clock providing.
|
||||
- dmas : Generic dma devicetree binding as described in
|
||||
Documentation/devicetree/bindings/dma/dma.txt.
|
||||
- dma-names : Two dmas have to be defined, "tx" and "rx".
|
||||
@ -30,8 +31,10 @@ sai2: sai@40031000 {
|
||||
reg = <0x40031000 0x1000>;
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&pinctrl_sai2_1>;
|
||||
clocks = <&clks VF610_CLK_SAI2>;
|
||||
clock-names = "sai";
|
||||
clocks = <&clks VF610_CLK_PLATFORM_BUS>,
|
||||
<&clks VF610_CLK_SAI2>,
|
||||
<&clks 0>, <&clks 0>;
|
||||
clock-names = "bus", "mclk1", "mclk2", "mclk3";
|
||||
dma-names = "tx", "rx";
|
||||
dmas = <&edma0 0 VF610_EDMA_MUXID0_SAI2_TX>,
|
||||
<&edma0 0 VF610_EDMA_MUXID0_SAI2_RX>;
|
||||
|
16
Documentation/devicetree/bindings/sound/max98095.txt
Normal file
16
Documentation/devicetree/bindings/sound/max98095.txt
Normal file
@ -0,0 +1,16 @@
|
||||
MAX98095 audio CODEC
|
||||
|
||||
This device supports I2C only.
|
||||
|
||||
Required properties:
|
||||
|
||||
- compatible : "maxim,max98095".
|
||||
|
||||
- reg : The I2C address of the device.
|
||||
|
||||
Example:
|
||||
|
||||
max98095: codec@11 {
|
||||
compatible = "maxim,max98095";
|
||||
reg = <0x11>;
|
||||
};
|
27
Documentation/devicetree/bindings/sound/nokia,rx51.txt
Normal file
27
Documentation/devicetree/bindings/sound/nokia,rx51.txt
Normal file
@ -0,0 +1,27 @@
|
||||
* Nokia N900 audio setup
|
||||
|
||||
Required properties:
|
||||
- compatible: Should contain "nokia,n900-audio"
|
||||
- nokia,cpu-dai: phandle for the McBSP node
|
||||
- nokia,audio-codec: phandles for the main TLV320AIC3X node and the
|
||||
auxiliary TLV320AIC3X node (in this order)
|
||||
- nokia,headphone-amplifier: phandle for the TPA6130A2 node
|
||||
- tvout-selection-gpios: GPIO for tvout selection
|
||||
- jack-detection-gpios: GPIO for jack detection
|
||||
- eci-switch-gpios: GPIO for ECI (Enhancement Control Interface) switch
|
||||
- speaker-amplifier-gpios: GPIO for speaker amplifier
|
||||
|
||||
Example:
|
||||
|
||||
sound {
|
||||
compatible = "nokia,n900-audio";
|
||||
|
||||
nokia,cpu-dai = <&mcbsp2>;
|
||||
nokia,audio-codec = <&tlv320aic3x>, <&tlv320aic3x_aux>;
|
||||
nokia,headphone-amplifier = <&tpa6130a2>;
|
||||
|
||||
tvout-selection-gpios = <&gpio2 8 GPIO_ACTIVE_HIGH>; /* 40 */
|
||||
jack-detection-gpios = <&gpio6 17 GPIO_ACTIVE_HIGH>; /* 177 */
|
||||
eci-switch-gpios = <&gpio6 22 GPIO_ACTIVE_HIGH>; /* 182 */
|
||||
speaker-amplifier-gpios = <&twl_gpio 7 GPIO_ACTIVE_HIGH>;
|
||||
};
|
@ -1,10 +1,10 @@
|
||||
RT5640 audio CODEC
|
||||
RT5640/RT5639 audio CODEC
|
||||
|
||||
This device supports I2C only.
|
||||
|
||||
Required properties:
|
||||
|
||||
- compatible : "realtek,rt5640".
|
||||
- compatible : One of "realtek,rt5640" or "realtek,rt5639".
|
||||
|
||||
- reg : The I2C address of the device.
|
||||
|
||||
@ -18,7 +18,7 @@ Optional properties:
|
||||
|
||||
- realtek,ldo1-en-gpios : The GPIO that controls the CODEC's LDO1_EN pin.
|
||||
|
||||
Pins on the device (for linking into audio routes):
|
||||
Pins on the device (for linking into audio routes) for RT5639/RT5640:
|
||||
|
||||
* DMIC1
|
||||
* DMIC2
|
||||
@ -31,13 +31,16 @@ Pins on the device (for linking into audio routes):
|
||||
* HPOR
|
||||
* LOUTL
|
||||
* LOUTR
|
||||
* MONOP
|
||||
* MONON
|
||||
* SPOLP
|
||||
* SPOLN
|
||||
* SPORP
|
||||
* SPORN
|
||||
|
||||
Additional pins on the device for RT5640:
|
||||
|
||||
* MONOP
|
||||
* MONON
|
||||
|
||||
Example:
|
||||
|
||||
rt5640 {
|
||||
|
@ -1,6 +1,6 @@
|
||||
Simple-Card:
|
||||
|
||||
Simple-Card specifies audio DAI connection of SoC <-> codec.
|
||||
Simple-Card specifies audio DAI connections of SoC <-> codec.
|
||||
|
||||
Required properties:
|
||||
|
||||
@ -10,26 +10,51 @@ Optional properties:
|
||||
|
||||
- simple-audio-card,name : User specified audio sound card name, one string
|
||||
property.
|
||||
- simple-audio-card,format : CPU/CODEC common audio format.
|
||||
"i2s", "right_j", "left_j" , "dsp_a"
|
||||
"dsp_b", "ac97", "pdm", "msb", "lsb"
|
||||
- simple-audio-card,widgets : Please refer to widgets.txt.
|
||||
- simple-audio-card,routing : A list of the connections between audio components.
|
||||
Each entry is a pair of strings, the first being the
|
||||
connection's sink, the second being the connection's
|
||||
source.
|
||||
- dai-tdm-slot-num : Please refer to tdm-slot.txt.
|
||||
- dai-tdm-slot-width : Please refer to tdm-slot.txt.
|
||||
Optional subnodes:
|
||||
|
||||
Required subnodes:
|
||||
- simple-audio-card,dai-link : Container for dai-link level
|
||||
properties and the CPU and CODEC
|
||||
sub-nodes. This container may be
|
||||
omitted when the card has only one
|
||||
DAI link. See the examples and the
|
||||
section bellow.
|
||||
|
||||
- simple-audio-card,dai-link : container for the CPU and CODEC sub-nodes
|
||||
This container may be omitted when the
|
||||
card has only one DAI link.
|
||||
See the examples.
|
||||
Dai-link subnode properties and subnodes:
|
||||
|
||||
- simple-audio-card,cpu : CPU sub-node
|
||||
- simple-audio-card,codec : CODEC sub-node
|
||||
If dai-link subnode is omitted and the subnode properties are directly
|
||||
under "sound"-node the subnode property and subnode names have to be
|
||||
prefixed with "simple-audio-card,"-prefix.
|
||||
|
||||
Required dai-link subnodes:
|
||||
|
||||
- cpu : CPU sub-node
|
||||
- codec : CODEC sub-node
|
||||
|
||||
Optional dai-link subnode properties:
|
||||
|
||||
- format : CPU/CODEC common audio format.
|
||||
"i2s", "right_j", "left_j" , "dsp_a"
|
||||
"dsp_b", "ac97", "pdm", "msb", "lsb"
|
||||
- frame-master : Indicates dai-link frame master.
|
||||
phandle to a cpu or codec subnode.
|
||||
- bitclock-master : Indicates dai-link bit clock master.
|
||||
phandle to a cpu or codec subnode.
|
||||
- bitclock-inversion : bool property. Add this if the
|
||||
dai-link uses bit clock inversion.
|
||||
- frame-inversion : bool property. Add this if the
|
||||
dai-link uses frame clock inversion.
|
||||
|
||||
For backward compatibility the frame-master and bitclock-master
|
||||
properties can be used as booleans in codec subnode to indicate if the
|
||||
codec is the dai-link frame or bit clock master. In this case there
|
||||
should be no dai-link node, the same properties should not be present
|
||||
at sound-node level, and the bitclock-inversion and frame-inversion
|
||||
properties should also be placed in the codec node if needed.
|
||||
|
||||
Required CPU/CODEC subnodes properties:
|
||||
|
||||
@ -37,29 +62,21 @@ Required CPU/CODEC subnodes properties:
|
||||
|
||||
Optional CPU/CODEC subnodes properties:
|
||||
|
||||
- format : CPU/CODEC specific audio format if needed.
|
||||
see simple-audio-card,format
|
||||
- frame-master : bool property. add this if subnode is frame master
|
||||
- bitclock-master : bool property. add this if subnode is bitclock master
|
||||
- bitclock-inversion : bool property. add this if subnode has clock inversion
|
||||
- frame-inversion : bool property. add this if subnode has frame inversion
|
||||
- dai-tdm-slot-num : Please refer to tdm-slot.txt.
|
||||
- dai-tdm-slot-width : Please refer to tdm-slot.txt.
|
||||
- clocks / system-clock-frequency : specify subnode's clock if needed.
|
||||
it can be specified via "clocks" if system has
|
||||
clock node (= common clock), or "system-clock-frequency"
|
||||
(if system doens't support common clock)
|
||||
|
||||
Note:
|
||||
* For 'format', 'frame-master', 'bitclock-master', 'bitclock-inversion' and
|
||||
'frame-inversion', the simple card will use the settings of CODEC for both
|
||||
CPU and CODEC sides as we need to keep the settings identical for both ends
|
||||
of the link.
|
||||
|
||||
Example 1 - single DAI link:
|
||||
|
||||
sound {
|
||||
compatible = "simple-audio-card";
|
||||
simple-audio-card,name = "VF610-Tower-Sound-Card";
|
||||
simple-audio-card,format = "left_j";
|
||||
simple-audio-card,bitclock-master = <&dailink0_master>;
|
||||
simple-audio-card,frame-master = <&dailink0_master>;
|
||||
simple-audio-card,widgets =
|
||||
"Microphone", "Microphone Jack",
|
||||
"Headphone", "Headphone Jack",
|
||||
@ -69,17 +86,12 @@ sound {
|
||||
"Headphone Jack", "HP_OUT",
|
||||
"External Speaker", "LINE_OUT";
|
||||
|
||||
dai-tdm-slot-num = <2>;
|
||||
dai-tdm-slot-width = <8>;
|
||||
|
||||
simple-audio-card,cpu {
|
||||
sound-dai = <&sh_fsi2 0>;
|
||||
};
|
||||
|
||||
simple-audio-card,codec {
|
||||
dailink0_master: simple-audio-card,codec {
|
||||
sound-dai = <&ak4648>;
|
||||
bitclock-master;
|
||||
frame-master;
|
||||
clocks = <&osc>;
|
||||
};
|
||||
};
|
||||
@ -105,31 +117,31 @@ Example 2 - many DAI links:
|
||||
sound {
|
||||
compatible = "simple-audio-card";
|
||||
simple-audio-card,name = "Cubox Audio";
|
||||
simple-audio-card,format = "i2s";
|
||||
|
||||
simple-audio-card,dai-link@0 { /* I2S - HDMI */
|
||||
simple-audio-card,cpu {
|
||||
format = "i2s";
|
||||
cpu {
|
||||
sound-dai = <&audio1 0>;
|
||||
};
|
||||
simple-audio-card,codec {
|
||||
codec {
|
||||
sound-dai = <&tda998x 0>;
|
||||
};
|
||||
};
|
||||
|
||||
simple-audio-card,dai-link@1 { /* S/PDIF - HDMI */
|
||||
simple-audio-card,cpu {
|
||||
cpu {
|
||||
sound-dai = <&audio1 1>;
|
||||
};
|
||||
simple-audio-card,codec {
|
||||
codec {
|
||||
sound-dai = <&tda998x 1>;
|
||||
};
|
||||
};
|
||||
|
||||
simple-audio-card,dai-link@2 { /* S/PDIF - S/PDIF */
|
||||
simple-audio-card,cpu {
|
||||
cpu {
|
||||
sound-dai = <&audio1 1>;
|
||||
};
|
||||
simple-audio-card,codec {
|
||||
codec {
|
||||
sound-dai = <&spdif_codec>;
|
||||
};
|
||||
};
|
||||
|
17
Documentation/devicetree/bindings/sound/snow.txt
Normal file
17
Documentation/devicetree/bindings/sound/snow.txt
Normal file
@ -0,0 +1,17 @@
|
||||
Audio Binding for Snow boards
|
||||
|
||||
Required properties:
|
||||
- compatible : Can be one of the following,
|
||||
"google,snow-audio-max98090" or
|
||||
"google,snow-audio-max98095"
|
||||
- samsung,i2s-controller: The phandle of the Samsung I2S controller
|
||||
- samsung,audio-codec: The phandle of the audio codec
|
||||
|
||||
Example:
|
||||
|
||||
sound {
|
||||
compatible = "google,snow-audio-max98095";
|
||||
|
||||
samsung,i2s-controller = <&i2s0>;
|
||||
samsung,audio-codec = <&max98095>;
|
||||
};
|
131
Documentation/devicetree/bindings/sound/st,sta350.txt
Normal file
131
Documentation/devicetree/bindings/sound/st,sta350.txt
Normal file
@ -0,0 +1,131 @@
|
||||
STA350 audio CODEC
|
||||
|
||||
The driver for this device only supports I2C.
|
||||
|
||||
Required properties:
|
||||
|
||||
- compatible: "st,sta350"
|
||||
- reg: the I2C address of the device for I2C
|
||||
- reset-gpios: a GPIO spec for the reset pin. If specified, it will be
|
||||
deasserted before communication to the codec starts.
|
||||
|
||||
- power-down-gpios: a GPIO spec for the power down pin. If specified,
|
||||
it will be deasserted before communication to the codec
|
||||
starts.
|
||||
|
||||
- vdd-dig-supply: regulator spec, providing 3.3V
|
||||
- vdd-pll-supply: regulator spec, providing 3.3V
|
||||
- vcc-supply: regulator spec, providing 5V - 26V
|
||||
|
||||
Optional properties:
|
||||
|
||||
- st,output-conf: number, Selects the output configuration:
|
||||
0: 2-channel (full-bridge) power, 2-channel data-out
|
||||
1: 2 (half-bridge). 1 (full-bridge) on-board power
|
||||
2: 2 Channel (Full-Bridge) Power, 1 Channel FFX
|
||||
3: 1 Channel Mono-Parallel
|
||||
If parameter is missing, mode 0 will be enabled.
|
||||
This property has to be specified as '/bits/ 8' value.
|
||||
|
||||
- st,ch1-output-mapping: Channel 1 output mapping
|
||||
- st,ch2-output-mapping: Channel 2 output mapping
|
||||
- st,ch3-output-mapping: Channel 3 output mapping
|
||||
0: Channel 1
|
||||
1: Channel 2
|
||||
2: Channel 3
|
||||
If parameter is missing, channel 1 is choosen.
|
||||
This properties have to be specified as '/bits/ 8' values.
|
||||
|
||||
- st,thermal-warning-recover:
|
||||
If present, thermal warning recovery is enabled.
|
||||
|
||||
- st,thermal-warning-adjustment:
|
||||
If present, thermal warning adjustment is enabled.
|
||||
|
||||
- st,fault-detect-recovery:
|
||||
If present, then fault recovery will be enabled.
|
||||
|
||||
- st,ffx-power-output-mode: string
|
||||
The FFX power output mode selects how the FFX output timing is
|
||||
configured. Must be one of these values:
|
||||
- "drop-compensation"
|
||||
- "tapered-compensation"
|
||||
- "full-power-mode"
|
||||
- "variable-drop-compensation" (default)
|
||||
|
||||
- st,drop-compensation-ns: number
|
||||
Only required for "st,ffx-power-output-mode" ==
|
||||
"variable-drop-compensation".
|
||||
Specifies the drop compensation in nanoseconds.
|
||||
The value must be in the range of 0..300, and only
|
||||
multiples of 20 are allowed. Default is 140ns.
|
||||
|
||||
- st,overcurrent-warning-adjustment:
|
||||
If present, overcurrent warning adjustment is enabled.
|
||||
|
||||
- st,max-power-use-mpcc:
|
||||
If present, then MPCC bits are used for MPC coefficients,
|
||||
otherwise standard MPC coefficients are used.
|
||||
|
||||
- st,max-power-corr:
|
||||
If present, power bridge correction for THD reduction near maximum
|
||||
power output is enabled.
|
||||
|
||||
- st,am-reduction-mode:
|
||||
If present, FFX mode runs in AM reduction mode, otherwise normal
|
||||
FFX mode is used.
|
||||
|
||||
- st,odd-pwm-speed-mode:
|
||||
If present, PWM speed mode run on odd speed mode (341.3 kHz) on all
|
||||
channels. If not present, normal PWM spped mode (384 kHz) will be used.
|
||||
|
||||
- st,distortion-compensation:
|
||||
If present, distortion compensation variable uses DCC coefficient.
|
||||
If not present, preset DC coefficient is used.
|
||||
|
||||
- st,invalid-input-detect-mute:
|
||||
If present, automatic invalid input detect mute is enabled.
|
||||
|
||||
- st,activate-mute-output:
|
||||
If present, a mute output will be activated in ase the volume will
|
||||
reach a value lower than -76 dBFS.
|
||||
|
||||
- st,bridge-immediate-off:
|
||||
If present, the bridge will be switched off immediately after the
|
||||
power-down-gpio goes low. Otherwise, the bridge will wait for 13
|
||||
million clock cycles to pass before shutting down.
|
||||
|
||||
- st,noise-shape-dc-cut:
|
||||
If present, the noise-shaping technique on the DC cutoff filter are
|
||||
enabled.
|
||||
|
||||
- st,powerdown-master-volume:
|
||||
If present, the power-down pin and I2C power-down functions will
|
||||
act on the master volume. Otherwise, the functions will act on the
|
||||
mute commands.
|
||||
|
||||
- st,powerdown-delay-divider:
|
||||
If present, the bridge power-down time will be divided by the provided
|
||||
value. If not specified, a divider of 1 will be used. Allowed values
|
||||
are 1, 2, 4, 8, 16, 32, 64 and 128.
|
||||
This property has to be specified as '/bits/ 8' value.
|
||||
|
||||
Example:
|
||||
|
||||
codec: sta350@38 {
|
||||
compatible = "st,sta350";
|
||||
reg = <0x1c>;
|
||||
reset-gpios = <&gpio1 19 0>;
|
||||
power-down-gpios = <&gpio1 16 0>;
|
||||
st,output-conf = /bits/ 8 <0x3>; // set output to 2-channel
|
||||
// (full-bridge) power,
|
||||
// 2-channel data-out
|
||||
st,ch1-output-mapping = /bits/ 8 <0>; // set channel 1 output ch 1
|
||||
st,ch2-output-mapping = /bits/ 8 <0>; // set channel 2 output ch 1
|
||||
st,ch3-output-mapping = /bits/ 8 <0>; // set channel 3 output ch 1
|
||||
st,max-power-correction; // enables power bridge
|
||||
// correction for THD reduction
|
||||
// near maximum power output
|
||||
st,invalid-input-detect-mute; // mute if no valid digital
|
||||
// audio signal is provided.
|
||||
};
|
@ -504,9 +504,12 @@ byte 5:
|
||||
* reg_10
|
||||
|
||||
bit 7 6 5 4 3 2 1 0
|
||||
0 0 0 0 0 0 0 A
|
||||
0 0 0 0 R F T A
|
||||
|
||||
A: 1 = enable absolute tracking
|
||||
T: 1 = enable two finger mode auto correct
|
||||
F: 1 = disable ABS Position Filter
|
||||
R: 1 = enable real hardware resolution
|
||||
|
||||
6.2 Native absolute mode 6 byte packet format
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
@ -429,7 +429,7 @@ RPS and RFS were introduced in kernel 2.6.35. XPS was incorporated into
|
||||
(therbert@google.com)
|
||||
|
||||
Accelerated RFS was introduced in 2.6.35. Original patches were
|
||||
submitted by Ben Hutchings (bhutchings@solarflare.com)
|
||||
submitted by Ben Hutchings (bwh@kernel.org)
|
||||
|
||||
Authors:
|
||||
Tom Herbert (therbert@google.com)
|
||||
|
27
MAINTAINERS
27
MAINTAINERS
@ -2245,12 +2245,6 @@ L: linux-usb@vger.kernel.org
|
||||
S: Maintained
|
||||
F: drivers/usb/host/ohci-ep93xx.c
|
||||
|
||||
CIRRUS LOGIC CS4270 SOUND DRIVER
|
||||
M: Timur Tabi <timur@tabi.org>
|
||||
L: alsa-devel@alsa-project.org (moderated for non-subscribers)
|
||||
S: Odd Fixes
|
||||
F: sound/soc/codecs/cs4270*
|
||||
|
||||
CIRRUS LOGIC AUDIO CODEC DRIVERS
|
||||
M: Brian Austin <brian.austin@cirrus.com>
|
||||
M: Paul Handrigan <Paul.Handrigan@cirrus.com>
|
||||
@ -3485,6 +3479,12 @@ S: Maintained
|
||||
F: drivers/extcon/
|
||||
F: Documentation/extcon/
|
||||
|
||||
EXYNOS DP DRIVER
|
||||
M: Jingoo Han <jg1.han@samsung.com>
|
||||
L: dri-devel@lists.freedesktop.org
|
||||
S: Maintained
|
||||
F: drivers/gpu/drm/exynos/exynos_dp*
|
||||
|
||||
EXYNOS MIPI DISPLAY DRIVERS
|
||||
M: Inki Dae <inki.dae@samsung.com>
|
||||
M: Donghwa Lee <dh09.lee@samsung.com>
|
||||
@ -3550,7 +3550,7 @@ F: include/scsi/libfcoe.h
|
||||
F: include/uapi/scsi/fc/
|
||||
|
||||
FILE LOCKING (flock() and fcntl()/lockf())
|
||||
M: Jeff Layton <jlayton@redhat.com>
|
||||
M: Jeff Layton <jlayton@poochiereds.net>
|
||||
M: J. Bruce Fields <bfields@fieldses.org>
|
||||
L: linux-fsdevel@vger.kernel.org
|
||||
S: Maintained
|
||||
@ -5108,14 +5108,19 @@ F: drivers/s390/kvm/
|
||||
|
||||
KERNEL VIRTUAL MACHINE (KVM) FOR ARM
|
||||
M: Christoffer Dall <christoffer.dall@linaro.org>
|
||||
M: Marc Zyngier <marc.zyngier@arm.com>
|
||||
L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
|
||||
L: kvmarm@lists.cs.columbia.edu
|
||||
W: http://systems.cs.columbia.edu/projects/kvm-arm
|
||||
S: Supported
|
||||
F: arch/arm/include/uapi/asm/kvm*
|
||||
F: arch/arm/include/asm/kvm*
|
||||
F: arch/arm/kvm/
|
||||
F: virt/kvm/arm/
|
||||
F: include/kvm/arm_*
|
||||
|
||||
KERNEL VIRTUAL MACHINE FOR ARM64 (KVM/arm64)
|
||||
M: Christoffer Dall <christoffer.dall@linaro.org>
|
||||
M: Marc Zyngier <marc.zyngier@arm.com>
|
||||
L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
|
||||
L: kvmarm@lists.cs.columbia.edu
|
||||
@ -7277,7 +7282,6 @@ F: drivers/video/aty/aty128fb.c
|
||||
RALINK RT2X00 WIRELESS LAN DRIVER
|
||||
P: rt2x00 project
|
||||
M: Ivo van Doorn <IvDoorn@gmail.com>
|
||||
M: Gertjan van Wingerde <gwingerde@gmail.com>
|
||||
M: Helmut Schaa <helmut.schaa@googlemail.com>
|
||||
L: linux-wireless@vger.kernel.org
|
||||
L: users@rt2x00.serialmonkey.com (moderated for non-subscribers)
|
||||
@ -7293,7 +7297,7 @@ F: Documentation/blockdev/ramdisk.txt
|
||||
F: drivers/block/brd.c
|
||||
|
||||
RANDOM NUMBER DRIVER
|
||||
M: Theodore Ts'o" <tytso@mit.edu>
|
||||
M: "Theodore Ts'o" <tytso@mit.edu>
|
||||
S: Maintained
|
||||
F: drivers/char/random.c
|
||||
|
||||
@ -7674,7 +7678,6 @@ F: drivers/clk/samsung/
|
||||
SAMSUNG SXGBE DRIVERS
|
||||
M: Byungho An <bh74.an@samsung.com>
|
||||
M: Girish K S <ks.giri@samsung.com>
|
||||
M: Siva Reddy Kallam <siva.kallam@samsung.com>
|
||||
M: Vipul Pandya <vipul.pandya@samsung.com>
|
||||
S: Supported
|
||||
L: netdev@vger.kernel.org
|
||||
@ -9952,7 +9955,7 @@ F: drivers/net/hamradio/*scc.c
|
||||
F: drivers/net/hamradio/z8530.h
|
||||
|
||||
ZBUD COMPRESSED PAGE ALLOCATOR
|
||||
M: Seth Jennings <sjenning@linux.vnet.ibm.com>
|
||||
M: Seth Jennings <sjennings@variantweb.net>
|
||||
L: linux-mm@kvack.org
|
||||
S: Maintained
|
||||
F: mm/zbud.c
|
||||
@ -9997,7 +10000,7 @@ F: mm/zsmalloc.c
|
||||
F: include/linux/zsmalloc.h
|
||||
|
||||
ZSWAP COMPRESSED SWAP CACHING
|
||||
M: Seth Jennings <sjenning@linux.vnet.ibm.com>
|
||||
M: Seth Jennings <sjennings@variantweb.net>
|
||||
L: linux-mm@kvack.org
|
||||
S: Maintained
|
||||
F: mm/zswap.c
|
||||
|
2
Makefile
2
Makefile
@ -1,7 +1,7 @@
|
||||
VERSION = 3
|
||||
PATCHLEVEL = 15
|
||||
SUBLEVEL = 0
|
||||
EXTRAVERSION = -rc2
|
||||
EXTRAVERSION = -rc5
|
||||
NAME = Shuffling Zombie Juror
|
||||
|
||||
# *DOCUMENTATION*
|
||||
|
@ -614,11 +614,13 @@ resume_user_mode_begin:
|
||||
|
||||
resume_kernel_mode:
|
||||
|
||||
#ifdef CONFIG_PREEMPT
|
||||
|
||||
; This is a must for preempt_schedule_irq()
|
||||
; Disable Interrupts from this point on
|
||||
; CONFIG_PREEMPT: This is a must for preempt_schedule_irq()
|
||||
; !CONFIG_PREEMPT: To ensure restore_regs is intr safe
|
||||
IRQ_DISABLE r9
|
||||
|
||||
#ifdef CONFIG_PREEMPT
|
||||
|
||||
; Can't preempt if preemption disabled
|
||||
GET_CURR_THR_INFO_FROM_SP r10
|
||||
ld r8, [r10, THREAD_INFO_PREEMPT_COUNT]
|
||||
|
@ -30,9 +30,9 @@ config ARM
|
||||
select HAVE_ARCH_SECCOMP_FILTER if (AEABI && !OABI_COMPAT)
|
||||
select HAVE_ARCH_TRACEHOOK
|
||||
select HAVE_BPF_JIT
|
||||
select HAVE_CC_STACKPROTECTOR
|
||||
select HAVE_CONTEXT_TRACKING
|
||||
select HAVE_C_RECORDMCOUNT
|
||||
select HAVE_CC_STACKPROTECTOR
|
||||
select HAVE_DEBUG_KMEMLEAK
|
||||
select HAVE_DMA_API_DEBUG
|
||||
select HAVE_DMA_ATTRS
|
||||
@ -311,6 +311,7 @@ config ARCH_MULTIPLATFORM
|
||||
select ARM_HAS_SG_CHAIN
|
||||
select ARM_PATCH_PHYS_VIRT
|
||||
select AUTO_ZRELADDR
|
||||
select CLKSRC_OF
|
||||
select COMMON_CLK
|
||||
select GENERIC_CLOCKEVENTS
|
||||
select MULTI_IRQ_HANDLER
|
||||
@ -422,8 +423,8 @@ config ARCH_EFM32
|
||||
bool "Energy Micro efm32"
|
||||
depends on !MMU
|
||||
select ARCH_REQUIRE_GPIOLIB
|
||||
select AUTO_ZRELADDR
|
||||
select ARM_NVIC
|
||||
select AUTO_ZRELADDR
|
||||
select CLKSRC_OF
|
||||
select COMMON_CLK
|
||||
select CPU_V7M
|
||||
@ -511,8 +512,8 @@ config ARCH_IXP4XX
|
||||
bool "IXP4xx-based"
|
||||
depends on MMU
|
||||
select ARCH_HAS_DMA_SET_COHERENT_MASK
|
||||
select ARCH_SUPPORTS_BIG_ENDIAN
|
||||
select ARCH_REQUIRE_GPIOLIB
|
||||
select ARCH_SUPPORTS_BIG_ENDIAN
|
||||
select CLKSRC_MMIO
|
||||
select CPU_XSCALE
|
||||
select DMABOUNCE if PCI
|
||||
@ -1110,9 +1111,9 @@ config ARM_NR_BANKS
|
||||
default 8
|
||||
|
||||
config IWMMXT
|
||||
bool "Enable iWMMXt support" if !CPU_PJ4
|
||||
depends on CPU_XSCALE || CPU_XSC3 || CPU_MOHAWK || CPU_PJ4
|
||||
default y if PXA27x || PXA3xx || ARCH_MMP || CPU_PJ4
|
||||
bool "Enable iWMMXt support"
|
||||
depends on CPU_XSCALE || CPU_XSC3 || CPU_MOHAWK || CPU_PJ4 || CPU_PJ4B
|
||||
default y if PXA27x || PXA3xx || ARCH_MMP || CPU_PJ4 || CPU_PJ4B
|
||||
help
|
||||
Enable support for iWMMXt context switching at run time if
|
||||
running on a CPU that supports it.
|
||||
@ -1575,8 +1576,8 @@ config BIG_LITTLE
|
||||
config BL_SWITCHER
|
||||
bool "big.LITTLE switcher support"
|
||||
depends on BIG_LITTLE && MCPM && HOTPLUG_CPU
|
||||
select CPU_PM
|
||||
select ARM_CPU_SUSPEND
|
||||
select CPU_PM
|
||||
help
|
||||
The big.LITTLE "switcher" provides the core functionality to
|
||||
transparently handle transition between a cluster of A15's
|
||||
@ -1920,9 +1921,9 @@ config XEN
|
||||
depends on CPU_V7 && !CPU_V6
|
||||
depends on !GENERIC_ATOMIC64
|
||||
depends on MMU
|
||||
select ARCH_DMA_ADDR_T_64BIT
|
||||
select ARM_PSCI
|
||||
select SWIOTLB_XEN
|
||||
select ARCH_DMA_ADDR_T_64BIT
|
||||
help
|
||||
Say Y if you want to run Linux in a Virtual Machine on Xen on ARM.
|
||||
|
||||
|
@ -1030,9 +1030,9 @@ config DEBUG_UART_PHYS
|
||||
default 0x40100000 if DEBUG_PXA_UART1
|
||||
default 0x42000000 if ARCH_GEMINI
|
||||
default 0x7c0003f8 if FOOTBRIDGE
|
||||
default 0x80230000 if DEBUG_PICOXCELL_UART
|
||||
default 0x80070000 if DEBUG_IMX23_UART
|
||||
default 0x80074000 if DEBUG_IMX28_UART
|
||||
default 0x80230000 if DEBUG_PICOXCELL_UART
|
||||
default 0x808c0000 if ARCH_EP93XX
|
||||
default 0x90020000 if DEBUG_NSPIRE_CLASSIC_UART || DEBUG_NSPIRE_CX_UART
|
||||
default 0xb0090000 if DEBUG_VEXPRESS_UART0_CRX
|
||||
@ -1096,22 +1096,22 @@ config DEBUG_UART_VIRT
|
||||
default 0xfeb26000 if DEBUG_RK3X_UART1
|
||||
default 0xfeb30c00 if DEBUG_KEYSTONE_UART0
|
||||
default 0xfeb31000 if DEBUG_KEYSTONE_UART1
|
||||
default 0xfec12000 if DEBUG_MVEBU_UART || DEBUG_MVEBU_UART_ALTERNATE
|
||||
default 0xfed60000 if DEBUG_RK29_UART0
|
||||
default 0xfed64000 if DEBUG_RK29_UART1 || DEBUG_RK3X_UART2
|
||||
default 0xfed68000 if DEBUG_RK29_UART2 || DEBUG_RK3X_UART3
|
||||
default 0xfec02000 if DEBUG_SOCFPGA_UART
|
||||
default 0xfec12000 if DEBUG_MVEBU_UART || DEBUG_MVEBU_UART_ALTERNATE
|
||||
default 0xfec20000 if DEBUG_DAVINCI_DMx_UART0
|
||||
default 0xfed0c000 if DEBUG_DAVINCI_DA8XX_UART1
|
||||
default 0xfed0d000 if DEBUG_DAVINCI_DA8XX_UART2
|
||||
default 0xfed12000 if ARCH_KIRKWOOD
|
||||
default 0xfed60000 if DEBUG_RK29_UART0
|
||||
default 0xfed64000 if DEBUG_RK29_UART1 || DEBUG_RK3X_UART2
|
||||
default 0xfed68000 if DEBUG_RK29_UART2 || DEBUG_RK3X_UART3
|
||||
default 0xfedc0000 if ARCH_EP93XX
|
||||
default 0xfee003f8 if FOOTBRIDGE
|
||||
default 0xfee20000 if DEBUG_NSPIRE_CLASSIC_UART || DEBUG_NSPIRE_CX_UART
|
||||
default 0xfef36000 if DEBUG_HIGHBANK_UART
|
||||
default 0xfee82340 if ARCH_IOP13XX
|
||||
default 0xfef00000 if ARCH_IXP4XX && !CPU_BIG_ENDIAN
|
||||
default 0xfef00003 if ARCH_IXP4XX && CPU_BIG_ENDIAN
|
||||
default 0xfef36000 if DEBUG_HIGHBANK_UART
|
||||
default 0xfefff700 if ARCH_IOP33X
|
||||
default 0xff003000 if DEBUG_U300_UART
|
||||
default DEBUG_UART_PHYS if !MMU
|
||||
|
@ -51,10 +51,9 @@ dtb-$(CONFIG_ARCH_AT91) += sama5d36ek.dtb
|
||||
|
||||
dtb-$(CONFIG_ARCH_ATLAS6) += atlas6-evb.dtb
|
||||
dtb-$(CONFIG_ARCH_BCM2835) += bcm2835-rpi-b.dtb
|
||||
dtb-$(CONFIG_ARCH_BCM_5301X) += bcm4708-netgear-r6250.dtb
|
||||
dtb-$(CONFIG_ARCH_BCM_MOBILE) += bcm28155-ap.dtb \
|
||||
bcm21664-garnet.dtb
|
||||
dtb-$(CONFIG_ARCH_BCM2835) += bcm2835-rpi-b.dtb
|
||||
dtb-$(CONFIG_ARCH_BCM_5301X) += bcm4708-netgear-r6250.dtb
|
||||
dtb-$(CONFIG_ARCH_BERLIN) += \
|
||||
berlin2-sony-nsz-gs7.dtb \
|
||||
berlin2cd-google-chromecast.dtb
|
||||
@ -246,6 +245,7 @@ dtb-$(CONFIG_ARCH_OMAP2PLUS) += omap2420-h4.dtb \
|
||||
omap3-sbc-t3730.dtb \
|
||||
omap3-devkit8000.dtb \
|
||||
omap3-beagle-xm.dtb \
|
||||
omap3-beagle-xm-ab.dtb \
|
||||
omap3-evm.dtb \
|
||||
omap3-evm-37xx.dtb \
|
||||
omap3-ldp.dtb \
|
||||
@ -294,13 +294,6 @@ dtb-$(CONFIG_ARCH_PRIMA2) += prima2-evb.dtb
|
||||
dtb-$(CONFIG_ARCH_QCOM) += qcom-msm8660-surf.dtb \
|
||||
qcom-msm8960-cdp.dtb \
|
||||
qcom-apq8074-dragonboard.dtb
|
||||
dtb-$(CONFIG_ARCH_U8500) += ste-snowball.dtb \
|
||||
ste-hrefprev60-stuib.dtb \
|
||||
ste-hrefprev60-tvk.dtb \
|
||||
ste-hrefv60plus-stuib.dtb \
|
||||
ste-hrefv60plus-tvk.dtb \
|
||||
ste-ccu8540.dtb \
|
||||
ste-ccu9540.dtb
|
||||
dtb-$(CONFIG_ARCH_S3C24XX) += s3c2416-smdk2416.dtb
|
||||
dtb-$(CONFIG_ARCH_S3C64XX) += s3c6410-mini6410.dtb \
|
||||
s3c6410-smdk6410.dtb
|
||||
@ -369,9 +362,16 @@ dtb-$(CONFIG_ARCH_TEGRA) += tegra20-harmony.dtb \
|
||||
tegra30-cardhu-a04.dtb \
|
||||
tegra114-dalmore.dtb \
|
||||
tegra124-venice2.dtb
|
||||
dtb-$(CONFIG_ARCH_U300) += ste-u300.dtb
|
||||
dtb-$(CONFIG_ARCH_U8500) += ste-snowball.dtb \
|
||||
ste-hrefprev60-stuib.dtb \
|
||||
ste-hrefprev60-tvk.dtb \
|
||||
ste-hrefv60plus-stuib.dtb \
|
||||
ste-hrefv60plus-tvk.dtb \
|
||||
ste-ccu8540.dtb \
|
||||
ste-ccu9540.dtb
|
||||
dtb-$(CONFIG_ARCH_VERSATILE) += versatile-ab.dtb \
|
||||
versatile-pb.dtb
|
||||
dtb-$(CONFIG_ARCH_U300) += ste-u300.dtb
|
||||
dtb-$(CONFIG_ARCH_VEXPRESS) += vexpress-v2p-ca5s.dtb \
|
||||
vexpress-v2p-ca9.dtb \
|
||||
vexpress-v2p-ca15-tc1.dtb \
|
||||
|
@ -183,7 +183,7 @@
|
||||
&usb {
|
||||
status = "okay";
|
||||
|
||||
control@44e10000 {
|
||||
control@44e10620 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
@ -204,7 +204,7 @@
|
||||
dr_mode = "host";
|
||||
};
|
||||
|
||||
dma-controller@07402000 {
|
||||
dma-controller@47402000 {
|
||||
status = "okay";
|
||||
};
|
||||
};
|
||||
|
@ -301,8 +301,8 @@
|
||||
|
||||
am335x_evm_audio_pins: am335x_evm_audio_pins {
|
||||
pinctrl-single,pins = <
|
||||
0x10c (PIN_INPUT_PULLDOWN | MUX_MODE4) /* mii1_rx_dv.mcasp1_aclkx */
|
||||
0x110 (PIN_INPUT_PULLDOWN | MUX_MODE4) /* mii1_txd3.mcasp1_fsx */
|
||||
0x10c (PIN_INPUT_PULLDOWN | MUX_MODE4) /* mii1_crs.mcasp1_aclkx */
|
||||
0x110 (PIN_INPUT_PULLDOWN | MUX_MODE4) /* mii1_rxerr.mcasp1_fsx */
|
||||
0x108 (PIN_OUTPUT_PULLDOWN | MUX_MODE4) /* mii1_col.mcasp1_axr2 */
|
||||
0x144 (PIN_INPUT_PULLDOWN | MUX_MODE4) /* rmii1_ref_clk.mcasp1_axr3 */
|
||||
>;
|
||||
@ -331,7 +331,7 @@
|
||||
&usb {
|
||||
status = "okay";
|
||||
|
||||
control@44e10000 {
|
||||
control@44e10620 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
@ -352,7 +352,7 @@
|
||||
dr_mode = "host";
|
||||
};
|
||||
|
||||
dma-controller@07402000 {
|
||||
dma-controller@47402000 {
|
||||
status = "okay";
|
||||
};
|
||||
};
|
||||
|
@ -364,7 +364,7 @@
|
||||
&usb {
|
||||
status = "okay";
|
||||
|
||||
control@44e10000 {
|
||||
control@44e10620 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
@ -385,7 +385,7 @@
|
||||
dr_mode = "host";
|
||||
};
|
||||
|
||||
dma-controller@07402000 {
|
||||
dma-controller@47402000 {
|
||||
status = "okay";
|
||||
};
|
||||
};
|
||||
|
@ -118,7 +118,6 @@
|
||||
reg = <0 0 0>; /* CS0, offset 0 */
|
||||
nand-bus-width = <8>;
|
||||
ti,nand-ecc-opt = "bch8";
|
||||
gpmc,device-nand = "true";
|
||||
gpmc,device-width = <1>;
|
||||
gpmc,sync-clk-ps = <0>;
|
||||
gpmc,cs-on-ns = <0>;
|
||||
@ -202,7 +201,7 @@
|
||||
&usb {
|
||||
status = "okay";
|
||||
|
||||
control@44e10000 {
|
||||
control@44e10620 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
@ -223,7 +222,7 @@
|
||||
dr_mode = "host";
|
||||
};
|
||||
|
||||
dma-controller@07402000 {
|
||||
dma-controller@47402000 {
|
||||
status = "okay";
|
||||
};
|
||||
};
|
||||
|
@ -72,7 +72,7 @@
|
||||
};
|
||||
|
||||
/*
|
||||
* The soc node represents the soc top level view. It is uses for IPs
|
||||
* The soc node represents the soc top level view. It is used for IPs
|
||||
* that are not memory mapped in the MPU view or for the MPU itself.
|
||||
*/
|
||||
soc {
|
||||
@ -94,8 +94,8 @@
|
||||
|
||||
/*
|
||||
* XXX: Use a flat representation of the AM33XX interconnect.
|
||||
* The real AM33XX interconnect network is quite complex.Since
|
||||
* that will not bring real advantage to represent that in DT
|
||||
* The real AM33XX interconnect network is quite complex. Since
|
||||
* it will not bring real advantage to represent that in DT
|
||||
* for the moment, just use a fake OCP bus entry to represent
|
||||
* the whole bus hierarchy.
|
||||
*/
|
||||
@ -802,7 +802,7 @@
|
||||
<0x46000000 0x400000>;
|
||||
reg-names = "mpu", "dat";
|
||||
interrupts = <80>, <81>;
|
||||
interrupts-names = "tx", "rx";
|
||||
interrupt-names = "tx", "rx";
|
||||
status = "disabled";
|
||||
dmas = <&edma 8>,
|
||||
<&edma 9>;
|
||||
@ -816,7 +816,7 @@
|
||||
<0x46400000 0x400000>;
|
||||
reg-names = "mpu", "dat";
|
||||
interrupts = <82>, <83>;
|
||||
interrupts-names = "tx", "rx";
|
||||
interrupt-names = "tx", "rx";
|
||||
status = "disabled";
|
||||
dmas = <&edma 10>,
|
||||
<&edma 11>;
|
||||
|
@ -691,7 +691,7 @@
|
||||
<0x46000000 0x400000>;
|
||||
reg-names = "mpu", "dat";
|
||||
interrupts = <80>, <81>;
|
||||
interrupts-names = "tx", "rx";
|
||||
interrupt-names = "tx", "rx";
|
||||
status = "disabled";
|
||||
dmas = <&edma 8>,
|
||||
<&edma 9>;
|
||||
@ -705,7 +705,7 @@
|
||||
<0x46400000 0x400000>;
|
||||
reg-names = "mpu", "dat";
|
||||
interrupts = <82>, <83>;
|
||||
interrupts-names = "tx", "rx";
|
||||
interrupt-names = "tx", "rx";
|
||||
status = "disabled";
|
||||
dmas = <&edma 10>,
|
||||
<&edma 11>;
|
||||
|
@ -230,6 +230,7 @@
|
||||
#size-cells = <0>;
|
||||
compatible = "marvell,orion-mdio";
|
||||
reg = <0x72004 0x4>;
|
||||
clocks = <&gateclk 4>;
|
||||
};
|
||||
|
||||
eth1: ethernet@74000 {
|
||||
|
@ -336,6 +336,7 @@
|
||||
#size-cells = <0>;
|
||||
compatible = "marvell,orion-mdio";
|
||||
reg = <0x72004 0x4>;
|
||||
clocks = <&gateclk 4>;
|
||||
};
|
||||
|
||||
coredivclk: clock@e4250 {
|
||||
|
@ -80,7 +80,7 @@
|
||||
};
|
||||
|
||||
/*
|
||||
* The soc node represents the soc top level view. It is uses for IPs
|
||||
* The soc node represents the soc top level view. It is used for IPs
|
||||
* that are not memory mapped in the MPU view or for the MPU itself.
|
||||
*/
|
||||
soc {
|
||||
@ -94,7 +94,7 @@
|
||||
/*
|
||||
* XXX: Use a flat representation of the SOC interconnect.
|
||||
* The real OMAP interconnect network is quite complex.
|
||||
* Since that will not bring real advantage to represent that in DT for
|
||||
* Since it will not bring real advantage to represent that in DT for
|
||||
* the moment, just use a fake OCP bus entry to represent the whole bus
|
||||
* hierarchy.
|
||||
*/
|
||||
|
@ -1640,7 +1640,7 @@
|
||||
#clock-cells = <0>;
|
||||
compatible = "ti,mux-clock";
|
||||
clocks = <&abe_24m_fclk>, <&abe_sys_clk_div>, <&func_24m_clk>, <&atlclkin3_ck>, <&atl_clkin2_ck>, <&atl_clkin1_ck>, <&atl_clkin0_ck>, <&sys_clkin2>, <&ref_clkin0_ck>, <&ref_clkin1_ck>, <&ref_clkin2_ck>, <&ref_clkin3_ck>, <&mlb_clk>, <&mlbp_clk>;
|
||||
ti,bit-shift = <28>;
|
||||
ti,bit-shift = <24>;
|
||||
reg = <0x1860>;
|
||||
};
|
||||
|
||||
|
@ -56,6 +56,7 @@
|
||||
|
||||
osc {
|
||||
compatible = "fsl,imx-osc", "fixed-clock";
|
||||
#clock-cells = <0>;
|
||||
clock-frequency = <24000000>;
|
||||
};
|
||||
};
|
||||
|
@ -29,6 +29,7 @@
|
||||
|
||||
osc26m {
|
||||
compatible = "fsl,imx-osc26m", "fixed-clock";
|
||||
#clock-cells = <0>;
|
||||
clock-frequency = <0>;
|
||||
};
|
||||
};
|
||||
|
@ -48,6 +48,7 @@
|
||||
|
||||
osc26m {
|
||||
compatible = "fsl,imx-osc26m", "fixed-clock";
|
||||
#clock-cells = <0>;
|
||||
clock-frequency = <26000000>;
|
||||
};
|
||||
};
|
||||
|
@ -53,21 +53,25 @@
|
||||
|
||||
ckil {
|
||||
compatible = "fsl,imx-ckil", "fixed-clock";
|
||||
#clock-cells = <0>;
|
||||
clock-frequency = <32768>;
|
||||
};
|
||||
|
||||
ckih1 {
|
||||
compatible = "fsl,imx-ckih1", "fixed-clock";
|
||||
#clock-cells = <0>;
|
||||
clock-frequency = <22579200>;
|
||||
};
|
||||
|
||||
ckih2 {
|
||||
compatible = "fsl,imx-ckih2", "fixed-clock";
|
||||
#clock-cells = <0>;
|
||||
clock-frequency = <0>;
|
||||
};
|
||||
|
||||
osc {
|
||||
compatible = "fsl,imx-osc", "fixed-clock";
|
||||
#clock-cells = <0>;
|
||||
clock-frequency = <24000000>;
|
||||
};
|
||||
};
|
||||
|
@ -50,21 +50,25 @@
|
||||
|
||||
ckil {
|
||||
compatible = "fsl,imx-ckil", "fixed-clock";
|
||||
#clock-cells = <0>;
|
||||
clock-frequency = <32768>;
|
||||
};
|
||||
|
||||
ckih1 {
|
||||
compatible = "fsl,imx-ckih1", "fixed-clock";
|
||||
#clock-cells = <0>;
|
||||
clock-frequency = <0>;
|
||||
};
|
||||
|
||||
ckih2 {
|
||||
compatible = "fsl,imx-ckih2", "fixed-clock";
|
||||
#clock-cells = <0>;
|
||||
clock-frequency = <0>;
|
||||
};
|
||||
|
||||
osc {
|
||||
compatible = "fsl,imx-osc", "fixed-clock";
|
||||
#clock-cells = <0>;
|
||||
clock-frequency = <24000000>;
|
||||
};
|
||||
};
|
||||
|
@ -17,7 +17,8 @@
|
||||
compatible = "denx,imx53-m53evk", "fsl,imx53";
|
||||
|
||||
memory {
|
||||
reg = <0x70000000 0x20000000>;
|
||||
reg = <0x70000000 0x20000000>,
|
||||
<0xb0000000 0x20000000>;
|
||||
};
|
||||
|
||||
soc {
|
||||
@ -193,17 +194,17 @@
|
||||
irq-trigger = <0x1>;
|
||||
|
||||
stmpe_touchscreen {
|
||||
compatible = "stmpe,ts";
|
||||
compatible = "st,stmpe-ts";
|
||||
reg = <0>;
|
||||
ts,sample-time = <4>;
|
||||
ts,mod-12b = <1>;
|
||||
ts,ref-sel = <0>;
|
||||
ts,adc-freq = <1>;
|
||||
ts,ave-ctrl = <3>;
|
||||
ts,touch-det-delay = <3>;
|
||||
ts,settling = <4>;
|
||||
ts,fraction-z = <7>;
|
||||
ts,i-drive = <1>;
|
||||
st,sample-time = <4>;
|
||||
st,mod-12b = <1>;
|
||||
st,ref-sel = <0>;
|
||||
st,adc-freq = <1>;
|
||||
st,ave-ctrl = <3>;
|
||||
st,touch-det-delay = <3>;
|
||||
st,settling = <4>;
|
||||
st,fraction-z = <7>;
|
||||
st,i-drive = <1>;
|
||||
};
|
||||
};
|
||||
|
||||
|
@ -14,7 +14,8 @@
|
||||
|
||||
/ {
|
||||
memory {
|
||||
reg = <0x70000000 0x40000000>;
|
||||
reg = <0x70000000 0x20000000>,
|
||||
<0xb0000000 0x20000000>;
|
||||
};
|
||||
|
||||
display0: display@di0 {
|
||||
|
@ -25,12 +25,17 @@
|
||||
soc {
|
||||
display: display@di0 {
|
||||
compatible = "fsl,imx-parallel-display";
|
||||
crtcs = <&ipu 0>;
|
||||
interface-pix-fmt = "rgb24";
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&pinctrl_rgb24_vga1>;
|
||||
status = "okay";
|
||||
|
||||
port {
|
||||
display0_in: endpoint {
|
||||
remote-endpoint = <&ipu_di0_disp0>;
|
||||
};
|
||||
};
|
||||
|
||||
display-timings {
|
||||
VGA {
|
||||
clock-frequency = <25200000>;
|
||||
@ -293,6 +298,10 @@
|
||||
};
|
||||
};
|
||||
|
||||
&ipu_di0_disp0 {
|
||||
remote-endpoint = <&display0_in>;
|
||||
};
|
||||
|
||||
&kpp {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&pinctrl_kpp>;
|
||||
|
@ -70,21 +70,25 @@
|
||||
|
||||
ckil {
|
||||
compatible = "fsl,imx-ckil", "fixed-clock";
|
||||
#clock-cells = <0>;
|
||||
clock-frequency = <32768>;
|
||||
};
|
||||
|
||||
ckih1 {
|
||||
compatible = "fsl,imx-ckih1", "fixed-clock";
|
||||
#clock-cells = <0>;
|
||||
clock-frequency = <22579200>;
|
||||
};
|
||||
|
||||
ckih2 {
|
||||
compatible = "fsl,imx-ckih2", "fixed-clock";
|
||||
#clock-cells = <0>;
|
||||
clock-frequency = <0>;
|
||||
};
|
||||
|
||||
osc {
|
||||
compatible = "fsl,imx-osc", "fixed-clock";
|
||||
#clock-cells = <0>;
|
||||
clock-frequency = <24000000>;
|
||||
};
|
||||
};
|
||||
@ -430,7 +434,7 @@
|
||||
|
||||
port {
|
||||
lvds1_in: endpoint {
|
||||
remote-endpoint = <&ipu_di0_lvds0>;
|
||||
remote-endpoint = <&ipu_di1_lvds1>;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
@ -19,7 +19,10 @@
|
||||
compatible = "dmo,imx6q-edmqmx6", "fsl,imx6q";
|
||||
|
||||
aliases {
|
||||
gpio7 = &stmpe_gpio;
|
||||
gpio7 = &stmpe_gpio1;
|
||||
gpio8 = &stmpe_gpio2;
|
||||
stmpe-i2c0 = &stmpe1;
|
||||
stmpe-i2c1 = &stmpe2;
|
||||
};
|
||||
|
||||
memory {
|
||||
@ -40,13 +43,15 @@
|
||||
regulator-always-on;
|
||||
};
|
||||
|
||||
reg_usb_otg_vbus: regulator@1 {
|
||||
reg_usb_otg_switch: regulator@1 {
|
||||
compatible = "regulator-fixed";
|
||||
reg = <1>;
|
||||
regulator-name = "usb_otg_vbus";
|
||||
regulator-name = "usb_otg_switch";
|
||||
regulator-min-microvolt = <5000000>;
|
||||
regulator-max-microvolt = <5000000>;
|
||||
gpio = <&gpio7 12 0>;
|
||||
regulator-boot-on;
|
||||
regulator-always-on;
|
||||
};
|
||||
|
||||
reg_usb_host1: regulator@2 {
|
||||
@ -65,23 +70,23 @@
|
||||
|
||||
led-blue {
|
||||
label = "blue";
|
||||
gpios = <&stmpe_gpio 8 GPIO_ACTIVE_HIGH>;
|
||||
gpios = <&stmpe_gpio1 8 GPIO_ACTIVE_HIGH>;
|
||||
linux,default-trigger = "heartbeat";
|
||||
};
|
||||
|
||||
led-green {
|
||||
label = "green";
|
||||
gpios = <&stmpe_gpio 9 GPIO_ACTIVE_HIGH>;
|
||||
gpios = <&stmpe_gpio1 9 GPIO_ACTIVE_HIGH>;
|
||||
};
|
||||
|
||||
led-pink {
|
||||
label = "pink";
|
||||
gpios = <&stmpe_gpio 10 GPIO_ACTIVE_HIGH>;
|
||||
gpios = <&stmpe_gpio1 10 GPIO_ACTIVE_HIGH>;
|
||||
};
|
||||
|
||||
led-red {
|
||||
label = "red";
|
||||
gpios = <&stmpe_gpio 11 GPIO_ACTIVE_HIGH>;
|
||||
gpios = <&stmpe_gpio1 11 GPIO_ACTIVE_HIGH>;
|
||||
};
|
||||
};
|
||||
};
|
||||
@ -99,7 +104,8 @@
|
||||
clock-frequency = <100000>;
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&pinctrl_i2c2
|
||||
&pinctrl_stmpe>;
|
||||
&pinctrl_stmpe1
|
||||
&pinctrl_stmpe2>;
|
||||
status = "okay";
|
||||
|
||||
pmic: pfuze100@08 {
|
||||
@ -205,13 +211,25 @@
|
||||
};
|
||||
};
|
||||
|
||||
stmpe: stmpe1601@40 {
|
||||
stmpe1: stmpe1601@40 {
|
||||
compatible = "st,stmpe1601";
|
||||
reg = <0x40>;
|
||||
interrupts = <30 0>;
|
||||
interrupt-parent = <&gpio3>;
|
||||
|
||||
stmpe_gpio: stmpe_gpio {
|
||||
stmpe_gpio1: stmpe_gpio {
|
||||
#gpio-cells = <2>;
|
||||
compatible = "st,stmpe-gpio";
|
||||
};
|
||||
};
|
||||
|
||||
stmpe2: stmpe1601@44 {
|
||||
compatible = "st,stmpe1601";
|
||||
reg = <0x44>;
|
||||
interrupts = <2 0>;
|
||||
interrupt-parent = <&gpio5>;
|
||||
|
||||
stmpe_gpio2: stmpe_gpio {
|
||||
#gpio-cells = <2>;
|
||||
compatible = "st,stmpe-gpio";
|
||||
};
|
||||
@ -273,10 +291,14 @@
|
||||
>;
|
||||
};
|
||||
|
||||
pinctrl_stmpe: stmpegrp {
|
||||
pinctrl_stmpe1: stmpe1grp {
|
||||
fsl,pins = <MX6QDL_PAD_EIM_D30__GPIO3_IO30 0x80000000>;
|
||||
};
|
||||
|
||||
pinctrl_stmpe2: stmpe2grp {
|
||||
fsl,pins = <MX6QDL_PAD_EIM_A25__GPIO5_IO02 0x80000000>;
|
||||
};
|
||||
|
||||
pinctrl_uart1: uart1grp {
|
||||
fsl,pins = <
|
||||
MX6QDL_PAD_SD3_DAT7__UART1_TX_DATA 0x1b0b1
|
||||
@ -293,7 +315,7 @@
|
||||
|
||||
pinctrl_usbotg: usbotggrp {
|
||||
fsl,pins = <
|
||||
MX6QDL_PAD_GPIO_1__USB_OTG_ID 0x17059
|
||||
MX6QDL_PAD_ENET_RX_ER__USB_OTG_ID 0x17059
|
||||
>;
|
||||
};
|
||||
|
||||
@ -344,11 +366,11 @@
|
||||
&usbh1 {
|
||||
vbus-supply = <®_usb_host1>;
|
||||
disable-over-current;
|
||||
dr_mode = "host";
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&usbotg {
|
||||
vbus-supply = <®_usb_otg_vbus>;
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&pinctrl_usbotg>;
|
||||
disable-over-current;
|
||||
|
@ -487,9 +487,6 @@
|
||||
|
||||
&ldb {
|
||||
status = "okay";
|
||||
lvds-channel@0 {
|
||||
crtcs = <&ipu1 0>, <&ipu1 1>, <&ipu2 0>, <&ipu2 1>;
|
||||
};
|
||||
};
|
||||
|
||||
&pcie {
|
||||
|
@ -436,9 +436,6 @@
|
||||
|
||||
&ldb {
|
||||
status = "okay";
|
||||
lvds-channel@0 {
|
||||
crtcs = <&ipu1 0>, <&ipu1 1>;
|
||||
};
|
||||
};
|
||||
|
||||
&pcie {
|
||||
|
@ -26,25 +26,25 @@
|
||||
/* GPIO16 -> AR8035 25MHz */
|
||||
MX6QDL_PAD_GPIO_16__ENET_REF_CLK 0xc0000000
|
||||
MX6QDL_PAD_RGMII_TXC__RGMII_TXC 0x80000000
|
||||
MX6QDL_PAD_RGMII_TD0__RGMII_TD0 0x1b0b0
|
||||
MX6QDL_PAD_RGMII_TD1__RGMII_TD1 0x1b0b0
|
||||
MX6QDL_PAD_RGMII_TD2__RGMII_TD2 0x1b0b0
|
||||
MX6QDL_PAD_RGMII_TD3__RGMII_TD3 0x1b0b0
|
||||
MX6QDL_PAD_RGMII_TX_CTL__RGMII_TX_CTL 0x1b0b0
|
||||
MX6QDL_PAD_RGMII_TD0__RGMII_TD0 0x1b030
|
||||
MX6QDL_PAD_RGMII_TD1__RGMII_TD1 0x1b030
|
||||
MX6QDL_PAD_RGMII_TD2__RGMII_TD2 0x1b030
|
||||
MX6QDL_PAD_RGMII_TD3__RGMII_TD3 0x1b030
|
||||
MX6QDL_PAD_RGMII_TX_CTL__RGMII_TX_CTL 0x1b030
|
||||
/* AR8035 CLK_25M --> ENET_REF_CLK (V22) */
|
||||
MX6QDL_PAD_ENET_REF_CLK__ENET_TX_CLK 0x0a0b1
|
||||
/* AR8035 pin strapping: IO voltage: pull up */
|
||||
MX6QDL_PAD_RGMII_RXC__RGMII_RXC 0x1b0b0
|
||||
MX6QDL_PAD_RGMII_RXC__RGMII_RXC 0x1b030
|
||||
/* AR8035 pin strapping: PHYADDR#0: pull down */
|
||||
MX6QDL_PAD_RGMII_RD0__RGMII_RD0 0x130b0
|
||||
MX6QDL_PAD_RGMII_RD0__RGMII_RD0 0x13030
|
||||
/* AR8035 pin strapping: PHYADDR#1: pull down */
|
||||
MX6QDL_PAD_RGMII_RD1__RGMII_RD1 0x130b0
|
||||
MX6QDL_PAD_RGMII_RD1__RGMII_RD1 0x13030
|
||||
/* AR8035 pin strapping: MODE#1: pull up */
|
||||
MX6QDL_PAD_RGMII_RD2__RGMII_RD2 0x1b0b0
|
||||
MX6QDL_PAD_RGMII_RD2__RGMII_RD2 0x1b030
|
||||
/* AR8035 pin strapping: MODE#3: pull up */
|
||||
MX6QDL_PAD_RGMII_RD3__RGMII_RD3 0x1b0b0
|
||||
MX6QDL_PAD_RGMII_RD3__RGMII_RD3 0x1b030
|
||||
/* AR8035 pin strapping: MODE#0: pull down */
|
||||
MX6QDL_PAD_RGMII_RX_CTL__RGMII_RX_CTL 0x130b0
|
||||
MX6QDL_PAD_RGMII_RX_CTL__RGMII_RX_CTL 0x13030
|
||||
|
||||
/*
|
||||
* As the RMII pins are also connected to RGMII
|
||||
|
@ -10,6 +10,8 @@
|
||||
* http://www.gnu.org/copyleft/gpl.html
|
||||
*/
|
||||
|
||||
#include <dt-bindings/interrupt-controller/arm-gic.h>
|
||||
|
||||
#include "skeleton.dtsi"
|
||||
|
||||
/ {
|
||||
@ -46,8 +48,6 @@
|
||||
intc: interrupt-controller@00a01000 {
|
||||
compatible = "arm,cortex-a9-gic";
|
||||
#interrupt-cells = <3>;
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
interrupt-controller;
|
||||
reg = <0x00a01000 0x1000>,
|
||||
<0x00a00100 0x100>;
|
||||
@ -59,16 +59,19 @@
|
||||
|
||||
ckil {
|
||||
compatible = "fsl,imx-ckil", "fixed-clock";
|
||||
#clock-cells = <0>;
|
||||
clock-frequency = <32768>;
|
||||
};
|
||||
|
||||
ckih1 {
|
||||
compatible = "fsl,imx-ckih1", "fixed-clock";
|
||||
#clock-cells = <0>;
|
||||
clock-frequency = <0>;
|
||||
};
|
||||
|
||||
osc {
|
||||
compatible = "fsl,imx-osc", "fixed-clock";
|
||||
#clock-cells = <0>;
|
||||
clock-frequency = <24000000>;
|
||||
};
|
||||
};
|
||||
@ -138,6 +141,12 @@
|
||||
0x82000000 0 0x01000000 0x01000000 0 0x00f00000>; /* non-prefetchable memory */
|
||||
num-lanes = <1>;
|
||||
interrupts = <0 123 IRQ_TYPE_LEVEL_HIGH>;
|
||||
#interrupt-cells = <1>;
|
||||
interrupt-map-mask = <0 0 0 0x7>;
|
||||
interrupt-map = <0 0 0 1 &intc GIC_SPI 123 IRQ_TYPE_LEVEL_HIGH>,
|
||||
<0 0 0 2 &intc GIC_SPI 122 IRQ_TYPE_LEVEL_HIGH>,
|
||||
<0 0 0 3 &intc GIC_SPI 121 IRQ_TYPE_LEVEL_HIGH>,
|
||||
<0 0 0 4 &intc GIC_SPI 120 IRQ_TYPE_LEVEL_HIGH>;
|
||||
clocks = <&clks 189>, <&clks 187>, <&clks 206>, <&clks 144>;
|
||||
clock-names = "pcie_ref_125m", "sata_ref_100m", "lvds_gate", "pcie_axi";
|
||||
status = "disabled";
|
||||
|
@ -282,6 +282,7 @@
|
||||
MX6SL_PAD_ECSPI1_MISO__ECSPI1_MISO 0x100b1
|
||||
MX6SL_PAD_ECSPI1_MOSI__ECSPI1_MOSI 0x100b1
|
||||
MX6SL_PAD_ECSPI1_SCLK__ECSPI1_SCLK 0x100b1
|
||||
MX6SL_PAD_ECSPI1_SS0__GPIO4_IO11 0x80000000
|
||||
>;
|
||||
};
|
||||
|
||||
|
@ -68,8 +68,6 @@
|
||||
intc: interrupt-controller@00a01000 {
|
||||
compatible = "arm,cortex-a9-gic";
|
||||
#interrupt-cells = <3>;
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
interrupt-controller;
|
||||
reg = <0x00a01000 0x1000>,
|
||||
<0x00a00100 0x100>;
|
||||
@ -81,11 +79,13 @@
|
||||
|
||||
ckil {
|
||||
compatible = "fixed-clock";
|
||||
#clock-cells = <0>;
|
||||
clock-frequency = <32768>;
|
||||
};
|
||||
|
||||
osc {
|
||||
compatible = "fixed-clock";
|
||||
#clock-cells = <0>;
|
||||
clock-frequency = <24000000>;
|
||||
};
|
||||
};
|
||||
|
@ -75,7 +75,7 @@
|
||||
m25p16@0 {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
compatible = "m25p16";
|
||||
compatible = "st,m25p16";
|
||||
reg = <0>;
|
||||
spi-max-frequency = <40000000>;
|
||||
mode = <0>;
|
||||
|
@ -46,7 +46,7 @@
|
||||
flash@0 {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
compatible = "mx25l4005a";
|
||||
compatible = "mxicy,mx25l4005a";
|
||||
reg = <0>;
|
||||
spi-max-frequency = <20000000>;
|
||||
mode = <0>;
|
||||
|
@ -43,7 +43,7 @@
|
||||
m25p40@0 {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
compatible = "mx25l1606e";
|
||||
compatible = "mxicy,mx25l1606e";
|
||||
reg = <0>;
|
||||
spi-max-frequency = <50000000>;
|
||||
mode = <0>;
|
||||
|
@ -48,7 +48,7 @@
|
||||
status = "okay";
|
||||
|
||||
eeprom@50 {
|
||||
compatible = "at,24c04";
|
||||
compatible = "atmel,24c04";
|
||||
pagesize = <16>;
|
||||
reg = <0x50>;
|
||||
};
|
||||
|
@ -56,7 +56,7 @@
|
||||
flash@0 {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
compatible = "mx25l12805d";
|
||||
compatible = "mxicy,mx25l12805d";
|
||||
reg = <0>;
|
||||
spi-max-frequency = <50000000>;
|
||||
mode = <0>;
|
||||
|
@ -32,7 +32,7 @@
|
||||
flash@0 {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
compatible = "mx25l4005a";
|
||||
compatible = "mxicy,mx25l4005a";
|
||||
reg = <0>;
|
||||
spi-max-frequency = <20000000>;
|
||||
mode = <0>;
|
||||
@ -50,7 +50,7 @@
|
||||
status = "okay";
|
||||
|
||||
eeprom@50 {
|
||||
compatible = "at,24c04";
|
||||
compatible = "atmel,24c04";
|
||||
pagesize = <16>;
|
||||
reg = <0x50>;
|
||||
};
|
||||
|
@ -104,7 +104,7 @@
|
||||
status = "okay";
|
||||
|
||||
adt7476: adt7476a@2e {
|
||||
compatible = "adt7476";
|
||||
compatible = "adi,adt7476";
|
||||
reg = <0x2e>;
|
||||
};
|
||||
};
|
||||
|
@ -94,7 +94,7 @@
|
||||
status = "okay";
|
||||
|
||||
lm85: lm85@2e {
|
||||
compatible = "lm85";
|
||||
compatible = "national,lm85";
|
||||
reg = <0x2e>;
|
||||
};
|
||||
};
|
||||
|
@ -40,7 +40,7 @@
|
||||
pinctrl-names = "default";
|
||||
|
||||
s35390a: s35390a@30 {
|
||||
compatible = "s35390a";
|
||||
compatible = "sii,s35390a";
|
||||
reg = <0x30>;
|
||||
};
|
||||
};
|
||||
|
@ -52,7 +52,7 @@
|
||||
pinctrl-names = "default";
|
||||
|
||||
s24c02: s24c02@50 {
|
||||
compatible = "24c02";
|
||||
compatible = "atmel,24c02";
|
||||
reg = <0x50>;
|
||||
};
|
||||
};
|
||||
|
16
arch/arm/boot/dts/omap3-beagle-xm-ab.dts
Normal file
16
arch/arm/boot/dts/omap3-beagle-xm-ab.dts
Normal file
@ -0,0 +1,16 @@
|
||||
/*
|
||||
* Copyright (C) 2011 Texas Instruments Incorporated - http://www.ti.com/
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License version 2 as
|
||||
* published by the Free Software Foundation.
|
||||
*/
|
||||
|
||||
#include "omap3-beagle-xm.dts"
|
||||
|
||||
/ {
|
||||
/* HS USB Port 2 Power enable was inverted with the xM C */
|
||||
hsusb2_power: hsusb2_power_reg {
|
||||
enable-active-high;
|
||||
};
|
||||
};
|
@ -112,7 +112,6 @@
|
||||
reg = <0 0 0>; /* CS0, offset 0 */
|
||||
nand-bus-width = <16>;
|
||||
|
||||
gpmc,device-nand;
|
||||
gpmc,sync-clk-ps = <0>;
|
||||
gpmc,cs-on-ns = <0>;
|
||||
gpmc,cs-rd-off-ns = <44>;
|
||||
|
@ -368,7 +368,6 @@
|
||||
/* no elm on omap3 */
|
||||
|
||||
gpmc,mux-add-data = <0>;
|
||||
gpmc,device-nand;
|
||||
gpmc,device-width = <2>;
|
||||
gpmc,wait-pin = <0>;
|
||||
gpmc,wait-monitoring-ns = <0>;
|
||||
|
@ -74,7 +74,7 @@
|
||||
/*
|
||||
* XXX: Use a flat representation of the OMAP3 interconnect.
|
||||
* The real OMAP interconnect network is quite complex.
|
||||
* Since that will not bring real advantage to represent that in DT for
|
||||
* Since it will not bring real advantage to represent that in DT for
|
||||
* the moment, just use a fake OCP bus entry to represent the whole bus
|
||||
* hierarchy.
|
||||
*/
|
||||
|
@ -72,7 +72,7 @@
|
||||
};
|
||||
|
||||
/*
|
||||
* The soc node represents the soc top level view. It is uses for IPs
|
||||
* The soc node represents the soc top level view. It is used for IPs
|
||||
* that are not memory mapped in the MPU view or for the MPU itself.
|
||||
*/
|
||||
soc {
|
||||
@ -96,7 +96,7 @@
|
||||
/*
|
||||
* XXX: Use a flat representation of the OMAP4 interconnect.
|
||||
* The real OMAP interconnect network is quite complex.
|
||||
* Since that will not bring real advantage to represent that in DT for
|
||||
* Since it will not bring real advantage to represent that in DT for
|
||||
* the moment, just use a fake OCP bus entry to represent the whole bus
|
||||
* hierarchy.
|
||||
*/
|
||||
|
@ -93,7 +93,7 @@
|
||||
};
|
||||
|
||||
/*
|
||||
* The soc node represents the soc top level view. It is uses for IPs
|
||||
* The soc node represents the soc top level view. It is used for IPs
|
||||
* that are not memory mapped in the MPU view or for the MPU itself.
|
||||
*/
|
||||
soc {
|
||||
@ -107,7 +107,7 @@
|
||||
/*
|
||||
* XXX: Use a flat representation of the OMAP3 interconnect.
|
||||
* The real OMAP interconnect network is quite complex.
|
||||
* Since that will not bring real advantage to represent that in DT for
|
||||
* Since it will not bring real advantage to represent that in DT for
|
||||
* the moment, just use a fake OCP bus entry to represent the whole bus
|
||||
* hierarchy.
|
||||
*/
|
||||
@ -813,6 +813,12 @@
|
||||
<0x4a084c00 0x40>;
|
||||
reg-names = "phy_rx", "phy_tx", "pll_ctrl";
|
||||
ctrl-module = <&omap_control_usb3phy>;
|
||||
clocks = <&usb_phy_cm_clk32k>,
|
||||
<&sys_clkin>,
|
||||
<&usb_otg_ss_refclk960m>;
|
||||
clock-names = "wkupclk",
|
||||
"sysclk",
|
||||
"refclk";
|
||||
#phy-cells = <0>;
|
||||
};
|
||||
};
|
||||
|
@ -28,7 +28,6 @@
|
||||
gic: interrupt-controller@c2800000 {
|
||||
compatible = "arm,cortex-a9-gic";
|
||||
#interrupt-cells = <3>;
|
||||
#address-cells = <1>;
|
||||
interrupt-controller;
|
||||
reg = <0xc2800000 0x1000>,
|
||||
<0xc2000000 0x1000>;
|
||||
|
@ -141,12 +141,12 @@
|
||||
};
|
||||
|
||||
sdhi0_pins: sd0 {
|
||||
renesas,gpios = "sdhi0_data4", "sdhi0_ctrl";
|
||||
renesas,groups = "sdhi0_data4", "sdhi0_ctrl";
|
||||
renesas,function = "sdhi0";
|
||||
};
|
||||
|
||||
sdhi2_pins: sd2 {
|
||||
renesas,gpios = "sdhi2_data4", "sdhi2_ctrl";
|
||||
renesas,groups = "sdhi2_data4", "sdhi2_ctrl";
|
||||
renesas,function = "sdhi2";
|
||||
};
|
||||
|
||||
|
@ -673,7 +673,7 @@
|
||||
renesas,clock-indices = <
|
||||
R8A7790_CLK_TMU1 R8A7790_CLK_TMU3 R8A7790_CLK_TMU2
|
||||
R8A7790_CLK_CMT0 R8A7790_CLK_TMU0 R8A7790_CLK_VSP1_DU1
|
||||
R8A7790_CLK_VSP1_DU0 R8A7790_CLK_VSP1_RT R8A7790_CLK_VSP1_SY
|
||||
R8A7790_CLK_VSP1_DU0 R8A7790_CLK_VSP1_R R8A7790_CLK_VSP1_S
|
||||
>;
|
||||
clock-output-names =
|
||||
"tmu1", "tmu3", "tmu2", "cmt0", "tmu0", "vsp1-du1",
|
||||
|
@ -230,17 +230,17 @@
|
||||
};
|
||||
|
||||
sdhi0_pins: sd0 {
|
||||
renesas,gpios = "sdhi0_data4", "sdhi0_ctrl";
|
||||
renesas,groups = "sdhi0_data4", "sdhi0_ctrl";
|
||||
renesas,function = "sdhi0";
|
||||
};
|
||||
|
||||
sdhi1_pins: sd1 {
|
||||
renesas,gpios = "sdhi1_data4", "sdhi1_ctrl";
|
||||
renesas,groups = "sdhi1_data4", "sdhi1_ctrl";
|
||||
renesas,function = "sdhi1";
|
||||
};
|
||||
|
||||
sdhi2_pins: sd2 {
|
||||
renesas,gpios = "sdhi2_data4", "sdhi2_ctrl";
|
||||
renesas,groups = "sdhi2_data4", "sdhi2_ctrl";
|
||||
renesas,function = "sdhi2";
|
||||
};
|
||||
|
||||
|
@ -688,7 +688,7 @@
|
||||
renesas,clock-indices = <
|
||||
R8A7791_CLK_TMU1 R8A7791_CLK_TMU3 R8A7791_CLK_TMU2
|
||||
R8A7791_CLK_CMT0 R8A7791_CLK_TMU0 R8A7791_CLK_VSP1_DU1
|
||||
R8A7791_CLK_VSP1_DU0 R8A7791_CLK_VSP1_SY
|
||||
R8A7791_CLK_VSP1_DU0 R8A7791_CLK_VSP1_S
|
||||
>;
|
||||
clock-output-names =
|
||||
"tmu1", "tmu3", "tmu2", "cmt0", "tmu0", "vsp1-du1",
|
||||
|
@ -149,7 +149,7 @@
|
||||
|
||||
uart0 {
|
||||
uart0_xfer: uart0-xfer {
|
||||
rockchip,pins = <RK_GPIO1 0 RK_FUNC_1 &pcfg_pull_none>,
|
||||
rockchip,pins = <RK_GPIO1 0 RK_FUNC_1 &pcfg_pull_up>,
|
||||
<RK_GPIO1 1 RK_FUNC_1 &pcfg_pull_none>;
|
||||
};
|
||||
|
||||
@ -164,7 +164,7 @@
|
||||
|
||||
uart1 {
|
||||
uart1_xfer: uart1-xfer {
|
||||
rockchip,pins = <RK_GPIO1 4 RK_FUNC_1 &pcfg_pull_none>,
|
||||
rockchip,pins = <RK_GPIO1 4 RK_FUNC_1 &pcfg_pull_up>,
|
||||
<RK_GPIO1 5 RK_FUNC_1 &pcfg_pull_none>;
|
||||
};
|
||||
|
||||
@ -179,7 +179,7 @@
|
||||
|
||||
uart2 {
|
||||
uart2_xfer: uart2-xfer {
|
||||
rockchip,pins = <RK_GPIO1 8 RK_FUNC_1 &pcfg_pull_none>,
|
||||
rockchip,pins = <RK_GPIO1 8 RK_FUNC_1 &pcfg_pull_up>,
|
||||
<RK_GPIO1 9 RK_FUNC_1 &pcfg_pull_none>;
|
||||
};
|
||||
/* no rts / cts for uart2 */
|
||||
@ -187,7 +187,7 @@
|
||||
|
||||
uart3 {
|
||||
uart3_xfer: uart3-xfer {
|
||||
rockchip,pins = <RK_GPIO1 10 RK_FUNC_1 &pcfg_pull_none>,
|
||||
rockchip,pins = <RK_GPIO1 10 RK_FUNC_1 &pcfg_pull_up>,
|
||||
<RK_GPIO1 11 RK_FUNC_1 &pcfg_pull_none>;
|
||||
};
|
||||
|
||||
|
@ -34,7 +34,6 @@
|
||||
gic: interrupt-controller@f0001000 {
|
||||
compatible = "arm,cortex-a9-gic";
|
||||
#interrupt-cells = <3>;
|
||||
#address-cells = <1>;
|
||||
interrupt-controller;
|
||||
reg = <0xf0001000 0x1000>,
|
||||
<0xf0000100 0x100>;
|
||||
|
@ -49,7 +49,7 @@
|
||||
reg = <0xfe61f080 0x4>;
|
||||
reg-names = "irqmux";
|
||||
interrupts = <GIC_SPI 180 IRQ_TYPE_LEVEL_HIGH>;
|
||||
interrupts-names = "irqmux";
|
||||
interrupt-names = "irqmux";
|
||||
ranges = <0 0xfe610000 0x5000>;
|
||||
|
||||
PIO0: gpio@fe610000 {
|
||||
@ -187,7 +187,7 @@
|
||||
reg = <0xfee0f080 0x4>;
|
||||
reg-names = "irqmux";
|
||||
interrupts = <GIC_SPI 181 IRQ_TYPE_LEVEL_HIGH>;
|
||||
interrupts-names = "irqmux";
|
||||
interrupt-names = "irqmux";
|
||||
ranges = <0 0xfee00000 0x8000>;
|
||||
|
||||
PIO5: gpio@fee00000 {
|
||||
@ -282,7 +282,7 @@
|
||||
reg = <0xfe82f080 0x4>;
|
||||
reg-names = "irqmux";
|
||||
interrupts = <GIC_SPI 182 IRQ_TYPE_LEVEL_HIGH>;
|
||||
interrupts-names = "irqmux";
|
||||
interrupt-names = "irqmux";
|
||||
ranges = <0 0xfe820000 0x8000>;
|
||||
|
||||
PIO13: gpio@fe820000 {
|
||||
@ -423,7 +423,7 @@
|
||||
reg = <0xfd6bf080 0x4>;
|
||||
reg-names = "irqmux";
|
||||
interrupts = <GIC_SPI 113 IRQ_TYPE_LEVEL_HIGH>;
|
||||
interrupts-names = "irqmux";
|
||||
interrupt-names = "irqmux";
|
||||
ranges = <0 0xfd6b0000 0x3000>;
|
||||
|
||||
PIO100: gpio@fd6b0000 {
|
||||
@ -460,7 +460,7 @@
|
||||
reg = <0xfd33f080 0x4>;
|
||||
reg-names = "irqmux";
|
||||
interrupts = <GIC_SPI 114 IRQ_TYPE_LEVEL_HIGH>;
|
||||
interrupts-names = "irqmux";
|
||||
interrupt-names = "irqmux";
|
||||
ranges = <0 0xfd330000 0x5000>;
|
||||
|
||||
PIO103: gpio@fd330000 {
|
||||
|
@ -53,7 +53,7 @@
|
||||
reg = <0xfe61f080 0x4>;
|
||||
reg-names = "irqmux";
|
||||
interrupts = <GIC_SPI 182 IRQ_TYPE_LEVEL_HIGH>;
|
||||
interrupts-names = "irqmux";
|
||||
interrupt-names = "irqmux";
|
||||
ranges = <0 0xfe610000 0x6000>;
|
||||
|
||||
PIO0: gpio@fe610000 {
|
||||
@ -201,7 +201,7 @@
|
||||
reg = <0xfee0f080 0x4>;
|
||||
reg-names = "irqmux";
|
||||
interrupts = <GIC_SPI 183 IRQ_TYPE_LEVEL_HIGH>;
|
||||
interrupts-names = "irqmux";
|
||||
interrupt-names = "irqmux";
|
||||
ranges = <0 0xfee00000 0x10000>;
|
||||
|
||||
PIO5: gpio@fee00000 {
|
||||
@ -333,7 +333,7 @@
|
||||
reg = <0xfe82f080 0x4>;
|
||||
reg-names = "irqmux";
|
||||
interrupts = <GIC_SPI 184 IRQ_TYPE_LEVEL_HIGH>;
|
||||
interrupts-names = "irqmux";
|
||||
interrupt-names = "irqmux";
|
||||
ranges = <0 0xfe820000 0x6000>;
|
||||
|
||||
PIO13: gpio@fe820000 {
|
||||
@ -461,7 +461,7 @@
|
||||
reg = <0xfd6bf080 0x4>;
|
||||
reg-names = "irqmux";
|
||||
interrupts = <GIC_SPI 113 IRQ_TYPE_LEVEL_HIGH>;
|
||||
interrupts-names = "irqmux";
|
||||
interrupt-names = "irqmux";
|
||||
ranges = <0 0xfd6b0000 0x3000>;
|
||||
|
||||
PIO100: gpio@fd6b0000 {
|
||||
@ -498,7 +498,7 @@
|
||||
reg = <0xfd33f080 0x4>;
|
||||
reg-names = "irqmux";
|
||||
interrupts = <GIC_SPI 114 IRQ_TYPE_LEVEL_HIGH>;
|
||||
interrupts-names = "irqmux";
|
||||
interrupt-names = "irqmux";
|
||||
ranges = <0 0xfd330000 0x5000>;
|
||||
|
||||
PIO103: gpio@fd330000 {
|
||||
|
@ -233,19 +233,6 @@
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
serial@0,70006400 {
|
||||
compatible = "nvidia,tegra124-uart", "nvidia,tegra20-uart";
|
||||
reg = <0x0 0x70006400 0x0 0x40>;
|
||||
reg-shift = <2>;
|
||||
interrupts = <GIC_SPI 91 IRQ_TYPE_LEVEL_HIGH>;
|
||||
clocks = <&tegra_car TEGRA124_CLK_UARTE>;
|
||||
resets = <&tegra_car 66>;
|
||||
reset-names = "serial";
|
||||
dmas = <&apbdma 20>, <&apbdma 20>;
|
||||
dma-names = "rx", "tx";
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
pwm@0,7000a000 {
|
||||
compatible = "nvidia,tegra124-pwm", "nvidia,tegra20-pwm";
|
||||
reg = <0x0 0x7000a000 0x0 0x100>;
|
||||
|
@ -25,11 +25,13 @@
|
||||
clocks {
|
||||
audio_ext {
|
||||
compatible = "fixed-clock";
|
||||
#clock-cells = <0>;
|
||||
clock-frequency = <24576000>;
|
||||
};
|
||||
|
||||
enet_ext {
|
||||
compatible = "fixed-clock";
|
||||
#clock-cells = <0>;
|
||||
clock-frequency = <50000000>;
|
||||
};
|
||||
};
|
||||
|
@ -45,11 +45,13 @@
|
||||
|
||||
sxosc {
|
||||
compatible = "fixed-clock";
|
||||
#clock-cells = <0>;
|
||||
clock-frequency = <32768>;
|
||||
};
|
||||
|
||||
fxosc {
|
||||
compatible = "fixed-clock";
|
||||
#clock-cells = <0>;
|
||||
clock-frequency = <24000000>;
|
||||
};
|
||||
};
|
||||
@ -72,8 +74,6 @@
|
||||
intc: interrupt-controller@40002000 {
|
||||
compatible = "arm,cortex-a9-gic";
|
||||
#interrupt-cells = <3>;
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
interrupt-controller;
|
||||
reg = <0x40003000 0x1000>,
|
||||
<0x40002100 0x100>;
|
||||
|
@ -24,6 +24,7 @@
|
||||
device_type = "cpu";
|
||||
reg = <0>;
|
||||
clocks = <&clkc 3>;
|
||||
clock-latency = <1000>;
|
||||
operating-points = <
|
||||
/* kHz uV */
|
||||
666667 1000000
|
||||
@ -54,6 +55,28 @@
|
||||
interrupt-parent = <&intc>;
|
||||
ranges;
|
||||
|
||||
i2c0: zynq-i2c@e0004000 {
|
||||
compatible = "cdns,i2c-r1p10";
|
||||
status = "disabled";
|
||||
clocks = <&clkc 38>;
|
||||
interrupt-parent = <&intc>;
|
||||
interrupts = <0 25 4>;
|
||||
reg = <0xe0004000 0x1000>;
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
};
|
||||
|
||||
i2c1: zynq-i2c@e0005000 {
|
||||
compatible = "cdns,i2c-r1p10";
|
||||
status = "disabled";
|
||||
clocks = <&clkc 39>;
|
||||
interrupt-parent = <&intc>;
|
||||
interrupts = <0 48 4>;
|
||||
reg = <0xe0005000 0x1000>;
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
};
|
||||
|
||||
intc: interrupt-controller@f8f01000 {
|
||||
compatible = "arm,cortex-a9-gic";
|
||||
#interrupt-cells = <3>;
|
||||
|
@ -34,6 +34,82 @@
|
||||
phy-mode = "rgmii";
|
||||
};
|
||||
|
||||
&i2c0 {
|
||||
status = "okay";
|
||||
clock-frequency = <400000>;
|
||||
|
||||
i2cswitch@74 {
|
||||
compatible = "nxp,pca9548";
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
reg = <0x74>;
|
||||
|
||||
i2c@0 {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
reg = <0>;
|
||||
si570: clock-generator@5d {
|
||||
#clock-cells = <0>;
|
||||
compatible = "silabs,si570";
|
||||
temperature-stability = <50>;
|
||||
reg = <0x5d>;
|
||||
factory-fout = <156250000>;
|
||||
clock-frequency = <148500000>;
|
||||
};
|
||||
};
|
||||
|
||||
i2c@2 {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
reg = <2>;
|
||||
eeprom@54 {
|
||||
compatible = "at,24c08";
|
||||
reg = <0x54>;
|
||||
};
|
||||
};
|
||||
|
||||
i2c@3 {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
reg = <3>;
|
||||
gpio@21 {
|
||||
compatible = "ti,tca6416";
|
||||
reg = <0x21>;
|
||||
gpio-controller;
|
||||
#gpio-cells = <2>;
|
||||
};
|
||||
};
|
||||
|
||||
i2c@4 {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
reg = <4>;
|
||||
rtc@51 {
|
||||
compatible = "nxp,pcf8563";
|
||||
reg = <0x51>;
|
||||
};
|
||||
};
|
||||
|
||||
i2c@7 {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
reg = <7>;
|
||||
hwmon@52 {
|
||||
compatible = "ti,ucd9248";
|
||||
reg = <52>;
|
||||
};
|
||||
hwmon@53 {
|
||||
compatible = "ti,ucd9248";
|
||||
reg = <53>;
|
||||
};
|
||||
hwmon@54 {
|
||||
compatible = "ti,ucd9248";
|
||||
reg = <54>;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
&sdhci0 {
|
||||
status = "okay";
|
||||
};
|
||||
|
@ -35,6 +35,74 @@
|
||||
phy-mode = "rgmii";
|
||||
};
|
||||
|
||||
&i2c0 {
|
||||
status = "okay";
|
||||
clock-frequency = <400000>;
|
||||
|
||||
i2cswitch@74 {
|
||||
compatible = "nxp,pca9548";
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
reg = <0x74>;
|
||||
|
||||
i2c@0 {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
reg = <0>;
|
||||
si570: clock-generator@5d {
|
||||
#clock-cells = <0>;
|
||||
compatible = "silabs,si570";
|
||||
temperature-stability = <50>;
|
||||
reg = <0x5d>;
|
||||
factory-fout = <156250000>;
|
||||
clock-frequency = <148500000>;
|
||||
};
|
||||
};
|
||||
|
||||
i2c@2 {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
reg = <2>;
|
||||
eeprom@54 {
|
||||
compatible = "at,24c08";
|
||||
reg = <0x54>;
|
||||
};
|
||||
};
|
||||
|
||||
i2c@3 {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
reg = <3>;
|
||||
gpio@21 {
|
||||
compatible = "ti,tca6416";
|
||||
reg = <0x21>;
|
||||
gpio-controller;
|
||||
#gpio-cells = <2>;
|
||||
};
|
||||
};
|
||||
|
||||
i2c@4 {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
reg = <4>;
|
||||
rtc@51 {
|
||||
compatible = "nxp,pcf8563";
|
||||
reg = <0x51>;
|
||||
};
|
||||
};
|
||||
|
||||
i2c@7 {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
reg = <7>;
|
||||
ucd90120@65 {
|
||||
compatible = "ti,ucd90120";
|
||||
reg = <0x65>;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
&sdhci0 {
|
||||
status = "okay";
|
||||
};
|
||||
|
@ -797,10 +797,8 @@ static int __init bL_switcher_init(void)
|
||||
{
|
||||
int ret;
|
||||
|
||||
if (MAX_NR_CLUSTERS != 2) {
|
||||
pr_err("%s: only dual cluster systems are supported\n", __func__);
|
||||
return -EINVAL;
|
||||
}
|
||||
if (!mcpm_is_available())
|
||||
return -ENODEV;
|
||||
|
||||
cpu_notifier(bL_switcher_hotplug_callback, 0);
|
||||
|
||||
|
@ -48,6 +48,11 @@ int __init mcpm_platform_register(const struct mcpm_platform_ops *ops)
|
||||
return 0;
|
||||
}
|
||||
|
||||
bool mcpm_is_available(void)
|
||||
{
|
||||
return (platform_ops) ? true : false;
|
||||
}
|
||||
|
||||
int mcpm_cpu_power_up(unsigned int cpu, unsigned int cluster)
|
||||
{
|
||||
if (!platform_ops)
|
||||
|
@ -226,7 +226,7 @@ CONFIG_USB_DWC3=m
|
||||
CONFIG_USB_TEST=y
|
||||
CONFIG_NOP_USB_XCEIV=y
|
||||
CONFIG_OMAP_USB2=y
|
||||
CONFIG_OMAP_USB3=y
|
||||
CONFIG_TI_PIPE3=y
|
||||
CONFIG_AM335X_PHY_USB=y
|
||||
CONFIG_USB_GADGET=y
|
||||
CONFIG_USB_GADGET_DEBUG=y
|
||||
|
@ -11,6 +11,7 @@ CONFIG_MODULES=y
|
||||
CONFIG_MODULE_UNLOAD=y
|
||||
# CONFIG_LBDAF is not set
|
||||
# CONFIG_BLK_DEV_BSG is not set
|
||||
CONFIG_PARTITION_ADVANCED=y
|
||||
# CONFIG_IOSCHED_CFQ is not set
|
||||
# CONFIG_ARCH_MULTI_V7 is not set
|
||||
CONFIG_ARCH_U300=y
|
||||
@ -21,7 +22,6 @@ CONFIG_ZBOOT_ROM_TEXT=0x0
|
||||
CONFIG_ZBOOT_ROM_BSS=0x0
|
||||
CONFIG_CMDLINE="root=/dev/ram0 rw rootfstype=rootfs console=ttyAMA0,115200n8 lpj=515072"
|
||||
CONFIG_CPU_IDLE=y
|
||||
CONFIG_FPE_NWFPE=y
|
||||
# CONFIG_SUSPEND is not set
|
||||
CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
|
||||
# CONFIG_PREVENT_FIRMWARE_BUILD is not set
|
||||
@ -64,8 +64,8 @@ CONFIG_TMPFS=y
|
||||
CONFIG_NLS_CODEPAGE_437=y
|
||||
CONFIG_NLS_ISO8859_1=y
|
||||
CONFIG_PRINTK_TIME=y
|
||||
CONFIG_DEBUG_INFO=y
|
||||
CONFIG_DEBUG_FS=y
|
||||
# CONFIG_SCHED_DEBUG is not set
|
||||
CONFIG_TIMER_STATS=y
|
||||
# CONFIG_DEBUG_PREEMPT is not set
|
||||
CONFIG_DEBUG_INFO=y
|
||||
|
@ -1,16 +1,16 @@
|
||||
# CONFIG_SWAP is not set
|
||||
CONFIG_SYSVIPC=y
|
||||
CONFIG_NO_HZ=y
|
||||
CONFIG_NO_HZ_IDLE=y
|
||||
CONFIG_HIGH_RES_TIMERS=y
|
||||
CONFIG_BLK_DEV_INITRD=y
|
||||
CONFIG_KALLSYMS_ALL=y
|
||||
CONFIG_MODULES=y
|
||||
CONFIG_MODULE_UNLOAD=y
|
||||
# CONFIG_BLK_DEV_BSG is not set
|
||||
CONFIG_PARTITION_ADVANCED=y
|
||||
CONFIG_ARCH_U8500=y
|
||||
CONFIG_MACH_HREFV60=y
|
||||
CONFIG_MACH_SNOWBALL=y
|
||||
CONFIG_MACH_UX500_DT=y
|
||||
CONFIG_SMP=y
|
||||
CONFIG_NR_CPUS=2
|
||||
CONFIG_PREEMPT=y
|
||||
@ -34,16 +34,22 @@ CONFIG_IP_PNP=y
|
||||
CONFIG_IP_PNP_DHCP=y
|
||||
CONFIG_NETFILTER=y
|
||||
CONFIG_PHONET=y
|
||||
# CONFIG_WIRELESS is not set
|
||||
CONFIG_CFG80211=y
|
||||
CONFIG_CFG80211_DEBUGFS=y
|
||||
CONFIG_MAC80211=y
|
||||
CONFIG_MAC80211_LEDS=y
|
||||
CONFIG_CAIF=y
|
||||
CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
|
||||
CONFIG_DEVTMPFS=y
|
||||
CONFIG_DEVTMPFS_MOUNT=y
|
||||
CONFIG_BLK_DEV_RAM=y
|
||||
CONFIG_BLK_DEV_RAM_SIZE=65536
|
||||
CONFIG_SENSORS_BH1780=y
|
||||
CONFIG_NETDEVICES=y
|
||||
CONFIG_SMSC911X=y
|
||||
CONFIG_SMSC_PHY=y
|
||||
# CONFIG_WLAN is not set
|
||||
CONFIG_CW1200=y
|
||||
CONFIG_CW1200_WLAN_SDIO=y
|
||||
# CONFIG_INPUT_MOUSEDEV_PSAUX is not set
|
||||
CONFIG_INPUT_EVDEV=y
|
||||
# CONFIG_KEYBOARD_ATKBD is not set
|
||||
@ -85,15 +91,12 @@ CONFIG_AB8500_USB=y
|
||||
CONFIG_USB_GADGET=y
|
||||
CONFIG_USB_ETH=m
|
||||
CONFIG_MMC=y
|
||||
CONFIG_MMC_UNSAFE_RESUME=y
|
||||
# CONFIG_MMC_BLOCK_BOUNCE is not set
|
||||
CONFIG_MMC_ARMMMCI=y
|
||||
CONFIG_NEW_LEDS=y
|
||||
CONFIG_LEDS_CLASS=y
|
||||
CONFIG_LEDS_LM3530=y
|
||||
CONFIG_LEDS_GPIO=y
|
||||
CONFIG_LEDS_LP5521=y
|
||||
CONFIG_LEDS_TRIGGERS=y
|
||||
CONFIG_LEDS_TRIGGER_HEARTBEAT=y
|
||||
CONFIG_RTC_CLASS=y
|
||||
CONFIG_RTC_DRV_AB8500=y
|
||||
@ -103,6 +106,11 @@ CONFIG_STE_DMA40=y
|
||||
CONFIG_STAGING=y
|
||||
CONFIG_TOUCHSCREEN_SYNAPTICS_I2C_RMI4=y
|
||||
CONFIG_HSEM_U8500=y
|
||||
CONFIG_IIO=y
|
||||
CONFIG_IIO_ST_ACCEL_3AXIS=y
|
||||
CONFIG_IIO_ST_GYRO_3AXIS=y
|
||||
CONFIG_IIO_ST_MAGN_3AXIS=y
|
||||
CONFIG_IIO_ST_PRESS=y
|
||||
CONFIG_EXT2_FS=y
|
||||
CONFIG_EXT2_FS_XATTR=y
|
||||
CONFIG_EXT2_FS_POSIX_ACL=y
|
||||
@ -110,8 +118,6 @@ CONFIG_EXT2_FS_SECURITY=y
|
||||
CONFIG_EXT3_FS=y
|
||||
CONFIG_EXT4_FS=y
|
||||
CONFIG_VFAT_FS=y
|
||||
CONFIG_DEVTMPFS=y
|
||||
CONFIG_DEVTMPFS_MOUNT=y
|
||||
CONFIG_TMPFS=y
|
||||
CONFIG_TMPFS_POSIX_ACL=y
|
||||
# CONFIG_MISC_FILESYSTEMS is not set
|
||||
|
@ -222,22 +222,22 @@ static inline int cpu_is_xsc3(void)
|
||||
#endif
|
||||
|
||||
/*
|
||||
* Marvell's PJ4 core is based on V7 version. It has some modification
|
||||
* for coprocessor setting. For this reason, we need a way to distinguish
|
||||
* it.
|
||||
* Marvell's PJ4 and PJ4B cores are based on V7 version,
|
||||
* but require a specical sequence for enabling coprocessors.
|
||||
* For this reason, we need a way to distinguish them.
|
||||
*/
|
||||
#ifndef CONFIG_CPU_PJ4
|
||||
#define cpu_is_pj4() 0
|
||||
#else
|
||||
#if defined(CONFIG_CPU_PJ4) || defined(CONFIG_CPU_PJ4B)
|
||||
static inline int cpu_is_pj4(void)
|
||||
{
|
||||
unsigned int id;
|
||||
|
||||
id = read_cpuid_id();
|
||||
if ((id & 0xfffffff0) == 0x562f5840)
|
||||
if ((id & 0xff0fff00) == 0x560f5800)
|
||||
return 1;
|
||||
|
||||
return 0;
|
||||
}
|
||||
#else
|
||||
#define cpu_is_pj4() 0
|
||||
#endif
|
||||
#endif
|
||||
|
@ -156,7 +156,7 @@
|
||||
/* Select the best insn combination to perform the */ \
|
||||
/* actual __m * __n / (__p << 64) operation. */ \
|
||||
if (!__c) { \
|
||||
asm ( "umull %Q0, %R0, %1, %Q2\n\t" \
|
||||
asm ( "umull %Q0, %R0, %Q1, %Q2\n\t" \
|
||||
"mov %Q0, #0" \
|
||||
: "=&r" (__res) \
|
||||
: "r" (__m), "r" (__n) \
|
||||
|
@ -53,6 +53,13 @@ void mcpm_set_early_poke(unsigned cpu, unsigned cluster,
|
||||
* CPU/cluster power operations API for higher subsystems to use.
|
||||
*/
|
||||
|
||||
/**
|
||||
* mcpm_is_available - returns whether MCPM is initialized and available
|
||||
*
|
||||
* This returns true or false accordingly.
|
||||
*/
|
||||
bool mcpm_is_available(void);
|
||||
|
||||
/**
|
||||
* mcpm_cpu_power_up - make given CPU in given cluster runable
|
||||
*
|
||||
|
@ -98,15 +98,25 @@ static inline void __tlb_alloc_page(struct mmu_gather *tlb)
|
||||
}
|
||||
}
|
||||
|
||||
static inline void tlb_flush_mmu(struct mmu_gather *tlb)
|
||||
static inline void tlb_flush_mmu_tlbonly(struct mmu_gather *tlb)
|
||||
{
|
||||
tlb_flush(tlb);
|
||||
}
|
||||
|
||||
static inline void tlb_flush_mmu_free(struct mmu_gather *tlb)
|
||||
{
|
||||
free_pages_and_swap_cache(tlb->pages, tlb->nr);
|
||||
tlb->nr = 0;
|
||||
if (tlb->pages == tlb->local)
|
||||
__tlb_alloc_page(tlb);
|
||||
}
|
||||
|
||||
static inline void tlb_flush_mmu(struct mmu_gather *tlb)
|
||||
{
|
||||
tlb_flush_mmu_tlbonly(tlb);
|
||||
tlb_flush_mmu_free(tlb);
|
||||
}
|
||||
|
||||
static inline void
|
||||
tlb_gather_mmu(struct mmu_gather *tlb, struct mm_struct *mm, unsigned long start, unsigned long end)
|
||||
{
|
||||
|
@ -408,6 +408,7 @@
|
||||
#define __NR_finit_module (__NR_SYSCALL_BASE+379)
|
||||
#define __NR_sched_setattr (__NR_SYSCALL_BASE+380)
|
||||
#define __NR_sched_getattr (__NR_SYSCALL_BASE+381)
|
||||
#define __NR_renameat2 (__NR_SYSCALL_BASE+382)
|
||||
|
||||
/*
|
||||
* This may need to be greater than __NR_last_syscall+1 in order to
|
||||
|
@ -79,6 +79,7 @@ obj-$(CONFIG_CPU_XSCALE) += xscale-cp0.o
|
||||
obj-$(CONFIG_CPU_XSC3) += xscale-cp0.o
|
||||
obj-$(CONFIG_CPU_MOHAWK) += xscale-cp0.o
|
||||
obj-$(CONFIG_CPU_PJ4) += pj4-cp0.o
|
||||
obj-$(CONFIG_CPU_PJ4B) += pj4-cp0.o
|
||||
obj-$(CONFIG_IWMMXT) += iwmmxt.o
|
||||
obj-$(CONFIG_PERF_EVENTS) += perf_regs.o
|
||||
obj-$(CONFIG_HW_PERF_EVENTS) += perf_event.o perf_event_cpu.o
|
||||
|
@ -391,6 +391,7 @@
|
||||
CALL(sys_finit_module)
|
||||
/* 380 */ CALL(sys_sched_setattr)
|
||||
CALL(sys_sched_getattr)
|
||||
CALL(sys_renameat2)
|
||||
#ifndef syscalls_counted
|
||||
.equ syscalls_padding, ((NR_syscalls + 3) & ~3) - NR_syscalls
|
||||
#define syscalls_counted
|
||||
|
@ -587,7 +587,7 @@ __fixup_pv_table:
|
||||
add r6, r6, r3 @ adjust __pv_phys_pfn_offset address
|
||||
add r7, r7, r3 @ adjust __pv_offset address
|
||||
mov r0, r8, lsr #12 @ convert to PFN
|
||||
str r0, [r6, #LOW_OFFSET] @ save computed PHYS_OFFSET to __pv_phys_pfn_offset
|
||||
str r0, [r6] @ save computed PHYS_OFFSET to __pv_phys_pfn_offset
|
||||
strcc ip, [r7, #HIGH_OFFSET] @ save to __pv_offset high bits
|
||||
mov r6, r3, lsr #24 @ constant for add/sub instructions
|
||||
teq r3, r6, lsl #24 @ must be 16MiB aligned
|
||||
|
@ -19,12 +19,16 @@
|
||||
#include <asm/thread_info.h>
|
||||
#include <asm/asm-offsets.h>
|
||||
|
||||
#if defined(CONFIG_CPU_PJ4)
|
||||
#if defined(CONFIG_CPU_PJ4) || defined(CONFIG_CPU_PJ4B)
|
||||
#define PJ4(code...) code
|
||||
#define XSC(code...)
|
||||
#else
|
||||
#elif defined(CONFIG_CPU_MOHAWK) || \
|
||||
defined(CONFIG_CPU_XSC3) || \
|
||||
defined(CONFIG_CPU_XSCALE)
|
||||
#define PJ4(code...)
|
||||
#define XSC(code...) code
|
||||
#else
|
||||
#error "Unsupported iWMMXt architecture"
|
||||
#endif
|
||||
|
||||
#define MMX_WR0 (0x00)
|
||||
|
@ -184,3 +184,10 @@ void machine_kexec(struct kimage *image)
|
||||
|
||||
soft_restart(reboot_entry_phys);
|
||||
}
|
||||
|
||||
void arch_crash_save_vmcoreinfo(void)
|
||||
{
|
||||
#ifdef CONFIG_ARM_LPAE
|
||||
VMCOREINFO_CONFIG(ARM_LPAE);
|
||||
#endif
|
||||
}
|
||||
|
@ -45,7 +45,7 @@ static int iwmmxt_do(struct notifier_block *self, unsigned long cmd, void *t)
|
||||
return NOTIFY_DONE;
|
||||
}
|
||||
|
||||
static struct notifier_block iwmmxt_notifier_block = {
|
||||
static struct notifier_block __maybe_unused iwmmxt_notifier_block = {
|
||||
.notifier_call = iwmmxt_do,
|
||||
};
|
||||
|
||||
@ -72,6 +72,33 @@ static void __init pj4_cp_access_write(u32 value)
|
||||
: "=r" (temp) : "r" (value));
|
||||
}
|
||||
|
||||
static int __init pj4_get_iwmmxt_version(void)
|
||||
{
|
||||
u32 cp_access, wcid;
|
||||
|
||||
cp_access = pj4_cp_access_read();
|
||||
pj4_cp_access_write(cp_access | 0xf);
|
||||
|
||||
/* check if coprocessor 0 and 1 are available */
|
||||
if ((pj4_cp_access_read() & 0xf) != 0xf) {
|
||||
pj4_cp_access_write(cp_access);
|
||||
return -ENODEV;
|
||||
}
|
||||
|
||||
/* read iWMMXt coprocessor id register p1, c0 */
|
||||
__asm__ __volatile__ ("mrc p1, 0, %0, c0, c0, 0\n" : "=r" (wcid));
|
||||
|
||||
pj4_cp_access_write(cp_access);
|
||||
|
||||
/* iWMMXt v1 */
|
||||
if ((wcid & 0xffffff00) == 0x56051000)
|
||||
return 1;
|
||||
/* iWMMXt v2 */
|
||||
if ((wcid & 0xffffff00) == 0x56052000)
|
||||
return 2;
|
||||
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
/*
|
||||
* Disable CP0/CP1 on boot, and let call_fpe() and the iWMMXt lazy
|
||||
@ -79,17 +106,26 @@ static void __init pj4_cp_access_write(u32 value)
|
||||
*/
|
||||
static int __init pj4_cp0_init(void)
|
||||
{
|
||||
u32 cp_access;
|
||||
u32 __maybe_unused cp_access;
|
||||
int vers;
|
||||
|
||||
if (!cpu_is_pj4())
|
||||
return 0;
|
||||
|
||||
vers = pj4_get_iwmmxt_version();
|
||||
if (vers < 0)
|
||||
return 0;
|
||||
|
||||
#ifndef CONFIG_IWMMXT
|
||||
pr_info("PJ4 iWMMXt coprocessor detected, but kernel support is missing.\n");
|
||||
#else
|
||||
cp_access = pj4_cp_access_read() & ~0xf;
|
||||
pj4_cp_access_write(cp_access);
|
||||
|
||||
printk(KERN_INFO "PJ4 iWMMXt coprocessor enabled.\n");
|
||||
pr_info("PJ4 iWMMXt v%d coprocessor enabled.\n", vers);
|
||||
elf_hwcap |= HWCAP_IWMMXT;
|
||||
thread_register_notifier(&iwmmxt_notifier_block);
|
||||
#endif
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
@ -203,9 +203,9 @@ asmlinkage long sys_oabi_fcntl64(unsigned int fd, unsigned int cmd,
|
||||
int ret;
|
||||
|
||||
switch (cmd) {
|
||||
case F_GETLKP:
|
||||
case F_SETLKP:
|
||||
case F_SETLKPW:
|
||||
case F_OFD_GETLK:
|
||||
case F_OFD_SETLK:
|
||||
case F_OFD_SETLKW:
|
||||
case F_GETLK64:
|
||||
case F_SETLK64:
|
||||
case F_SETLKW64:
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user