Linux 4.4

-----BEGIN PGP SIGNATURE-----
 Version: GnuPG v1
 
 iQEcBAABAgAGBQJWkuLiAAoJEHm+PkMAQRiG598H/1MH94FeO3jfO07jJ49myjEA
 SkxPo39a3OqBfCmy4PmAoabzpK1nH8kVzw0v/fHNizNwI/wz9Vb2ButzFouZo7y7
 6Yf9s0l3/BSeO0qFvN1UqhIZPvSWSijG7cSuavFQzVv7jN4w7tDSMPV6ftIQ12uX
 +O5omGj7KqmVkL2cS/JH8MpNAeFAljxarXJkmGz3oskMvzlBRQmkACzUF2Kvu3Nq
 WMPlamqzdeyhva7DyEP3eNeavyo1aEdqWufgfbf2jMzrNnnaH/ylsyx6/uRdecgt
 eQMFgKDBVCrC6sIqCMqAN21XoIeoBOIEp4RpbUf+VzMm2rkGl/R+Lr8XPhk2bc4=
 =2/pa
 -----END PGP SIGNATURE-----

Orangefs: merge with V4.4

Merge tag 'v4.4' of git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux into current

Linux 4.4
This commit is contained in:
Mike Marshall 2016-01-15 14:22:14 -05:00
commit 5e1f3938f9
1463 changed files with 18540 additions and 13043 deletions

View File

@ -587,7 +587,7 @@ used to control it:
modprobe ipmi_watchdog timeout=<t> pretimeout=<t> action=<action type> modprobe ipmi_watchdog timeout=<t> pretimeout=<t> action=<action type>
preaction=<preaction type> preop=<preop type> start_now=x preaction=<preaction type> preop=<preop type> start_now=x
nowayout=x ifnum_to_use=n nowayout=x ifnum_to_use=n panic_wdt_timeout=<t>
ifnum_to_use specifies which interface the watchdog timer should use. ifnum_to_use specifies which interface the watchdog timer should use.
The default is -1, which means to pick the first one registered. The default is -1, which means to pick the first one registered.
@ -597,7 +597,9 @@ is the amount of seconds before the reset that the pre-timeout panic will
occur (if pretimeout is zero, then pretimeout will not be enabled). Note occur (if pretimeout is zero, then pretimeout will not be enabled). Note
that the pretimeout is the time before the final timeout. So if the that the pretimeout is the time before the final timeout. So if the
timeout is 50 seconds and the pretimeout is 10 seconds, then the pretimeout timeout is 50 seconds and the pretimeout is 10 seconds, then the pretimeout
will occur in 40 second (10 seconds before the timeout). will occur in 40 second (10 seconds before the timeout). The panic_wdt_timeout
is the value of timeout which is set on kernel panic, in order to let actions
such as kdump to occur during panic.
The action may be "reset", "power_cycle", or "power_off", and The action may be "reset", "power_cycle", or "power_off", and
specifies what to do when the timer times out, and defaults to specifies what to do when the timer times out, and defaults to
@ -634,6 +636,7 @@ for configuring the watchdog:
ipmi_watchdog.preop=<preop type> ipmi_watchdog.preop=<preop type>
ipmi_watchdog.start_now=x ipmi_watchdog.start_now=x
ipmi_watchdog.nowayout=x ipmi_watchdog.nowayout=x
ipmi_watchdog.panic_wdt_timeout=<t>
The options are the same as the module parameter options. The options are the same as the module parameter options.

View File

@ -49,24 +49,6 @@ specified through DTS. Following are the DTS used:-
The device tree documentation for the keystone machines are located at The device tree documentation for the keystone machines are located at
Documentation/devicetree/bindings/arm/keystone/keystone.txt Documentation/devicetree/bindings/arm/keystone/keystone.txt
Known issues & workaround
-------------------------
Some of the device drivers used on keystone are re-used from that from
DaVinci and other TI SoCs. These device drivers may use clock APIs directly.
Some of the keystone specific drivers such as netcp uses run time power
management API instead to enable clock. As this API has limitations on
keystone, following workaround is needed to boot Linux.
Add 'clk_ignore_unused' to the bootargs env variable in u-boot. Otherwise
clock frameworks will try to disable clocks that are unused and disable
the hardware. This is because netcp related power domain and clock
domains are enabled in u-boot as run time power management API currently
doesn't enable clocks for netcp due to a limitation. This workaround is
expected to be removed in the future when proper API support becomes
available. Until then, this work around is needed.
Document Author Document Author
--------------- ---------------
Murali Karicheri <m-karicheri2@ti.com> Murali Karicheri <m-karicheri2@ti.com>

View File

@ -70,3 +70,6 @@ use_per_node_hctx=[0/1]: Default: 0
parameter. parameter.
1: The multi-queue block layer is instantiated with a hardware dispatch 1: The multi-queue block layer is instantiated with a hardware dispatch
queue for each CPU node in the system. queue for each CPU node in the system.
use_lightnvm=[0/1]: Default: 0
Register device with LightNVM. Requires blk-mq to be used.

View File

@ -22,8 +22,7 @@ Required properties:
Optional properties: Optional properties:
- ti,hwmods: Name of the hwmods associated to the eDMA CC - 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 - ti,edma-memcpy-channels: List of channels allocated to be used for memcpy, iow
these channels will be SW triggered channels. The list must these channels will be SW triggered channels. See example.
contain 16 bits numbers, see example.
- ti,edma-reserved-slot-ranges: PaRAM slot ranges which should not be used by - 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 the driver, they are allocated to be used by for example the
DSP. See example. DSP. See example.
@ -56,10 +55,9 @@ edma: edma@49000000 {
ti,tptcs = <&edma_tptc0 7>, <&edma_tptc1 7>, <&edma_tptc2 0>; ti,tptcs = <&edma_tptc0 7>, <&edma_tptc1 7>, <&edma_tptc2 0>;
/* Channel 20 and 21 is allocated for memcpy */ /* Channel 20 and 21 is allocated for memcpy */
ti,edma-memcpy-channels = /bits/ 16 <20 21>; ti,edma-memcpy-channels = <20 21>;
/* The following PaRAM slots are reserved: 35-45 and 100-110 */ /* The following PaRAM slots are reserved: 35-44 and 100-109 */
ti,edma-reserved-slot-ranges = /bits/ 16 <35 10>, ti,edma-reserved-slot-ranges = <35 10>, <100 10>;
/bits/ 16 <100 10>;
}; };
edma_tptc0: tptc@49800000 { edma_tptc0: tptc@49800000 {

View File

@ -11,6 +11,10 @@ Required properties:
0 = active high 0 = active high
1 = active low 1 = active low
Optional properties:
- little-endian : GPIO registers are used as little endian. If not
present registers are used as big endian by default.
Example: Example:
gpio0: gpio@1100 { gpio0: gpio@1100 {

View File

@ -12,7 +12,7 @@ Each key is represented as a sub-node of "allwinner,sun4i-a10-lradc-keys":
Required subnode-properties: Required subnode-properties:
- label: Descriptive name of the key. - label: Descriptive name of the key.
- linux,code: Keycode to emit. - linux,code: Keycode to emit.
- channel: Channel this key is attached to, mut be 0 or 1. - channel: Channel this key is attached to, must be 0 or 1.
- voltage: Voltage in µV at lradc input when this key is pressed. - voltage: Voltage in µV at lradc input when this key is pressed.
Example: Example:

View File

@ -6,7 +6,9 @@ used for what purposes, but which don't use an on-flash partition table such
as RedBoot. as RedBoot.
The partition table should be a subnode of the mtd node and should be named The partition table should be a subnode of the mtd node and should be named
'partitions'. Partitions are defined in subnodes of the partitions node. 'partitions'. This node should have the following property:
- compatible : (required) must be "fixed-partitions"
Partitions are then defined in subnodes of the partitions node.
For backwards compatibility partitions as direct subnodes of the mtd device are For backwards compatibility partitions as direct subnodes of the mtd device are
supported. This use is discouraged. supported. This use is discouraged.
@ -36,6 +38,7 @@ Examples:
flash@0 { flash@0 {
partitions { partitions {
compatible = "fixed-partitions";
#address-cells = <1>; #address-cells = <1>;
#size-cells = <1>; #size-cells = <1>;
@ -53,6 +56,7 @@ flash@0 {
flash@1 { flash@1 {
partitions { partitions {
compatible = "fixed-partitions";
#address-cells = <1>; #address-cells = <1>;
#size-cells = <2>; #size-cells = <2>;
@ -66,6 +70,7 @@ flash@1 {
flash@2 { flash@2 {
partitions { partitions {
compatible = "fixed-partitions";
#address-cells = <2>; #address-cells = <2>;
#size-cells = <2>; #size-cells = <2>;

View File

@ -40,18 +40,18 @@ Optional properties:
Slave Properties: Slave Properties:
Required properties: Required properties:
- phy_id : Specifies slave phy id
- phy-mode : See ethernet.txt file in the same directory - phy-mode : See ethernet.txt file in the same directory
Optional properties: Optional properties:
- dual_emac_res_vlan : Specifies VID to be used to segregate the ports - dual_emac_res_vlan : Specifies VID to be used to segregate the ports
- mac-address : See ethernet.txt file in the same directory - 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 - phy-handle : See ethernet.txt file in the same directory
Slave sub-nodes: Slave sub-nodes:
- fixed-link : See fixed-link.txt file in the same directory - fixed-link : See fixed-link.txt file in the same directory
Either the properties phy_id and phy-mode, Either the property phy_id, or the sub-node
or the sub-node fixed-link can be specified fixed-link can be specified
Note: "ti,hwmods" field is used to fetch the base address and irq Note: "ti,hwmods" field is used to fetch the base address and irq
resources from TI, omap hwmod data base during device registration. resources from TI, omap hwmod data base during device registration.

View File

@ -8,6 +8,11 @@ Required properties:
- phy-mode: See ethernet.txt file in the same directory - phy-mode: See ethernet.txt file in the same directory
- clocks: a pointer to the reference clock for this device. - clocks: a pointer to the reference clock for this device.
Optional properties:
- tx-csum-limit: maximum mtu supported by port that allow TX checksum.
Value is presented in bytes. If not used, by default 1600B is set for
"marvell,armada-370-neta" and 9800B for others.
Example: Example:
ethernet@d0070000 { ethernet@d0070000 {
@ -15,6 +20,7 @@ ethernet@d0070000 {
reg = <0xd0070000 0x2500>; reg = <0xd0070000 0x2500>;
interrupts = <8>; interrupts = <8>;
clocks = <&gate_clk 4>; clocks = <&gate_clk 4>;
tx-csum-limit = <9800>
status = "okay"; status = "okay";
phy = <&phy0>; phy = <&phy0>;
phy-mode = "rgmii-id"; phy-mode = "rgmii-id";

View File

@ -1,7 +1,9 @@
* Temperature Sensor ADC (TSADC) on rockchip SoCs * Temperature Sensor ADC (TSADC) on rockchip SoCs
Required properties: Required properties:
- compatible : "rockchip,rk3288-tsadc" - compatible : should be "rockchip,<name>-tsadc"
"rockchip,rk3288-tsadc": found on RK3288 SoCs
"rockchip,rk3368-tsadc": found on RK3368 SoCs
- reg : physical base address of the controller and length of memory mapped - reg : physical base address of the controller and length of memory mapped
region. region.
- interrupts : The interrupt number to the cpu. The interrupt specifier format - interrupts : The interrupt number to the cpu. The interrupt specifier format

View File

@ -32,6 +32,7 @@ Supported adapters:
* Intel Sunrise Point-LP (PCH) * Intel Sunrise Point-LP (PCH)
* Intel DNV (SOC) * Intel DNV (SOC)
* Intel Broxton (SOC) * Intel Broxton (SOC)
* Intel Lewisburg (PCH)
Datasheets: Publicly available at the Intel website Datasheets: Publicly available at the Intel website
On Intel Patsburg and later chipsets, both the normal host SMBus controller On Intel Patsburg and later chipsets, both the normal host SMBus controller

View File

@ -1583,9 +1583,6 @@ bytes respectively. Such letter suffixes can also be entirely omitted.
hwp_only hwp_only
Only load intel_pstate on systems which support Only load intel_pstate on systems which support
hardware P state control (HWP) if available. hardware P state control (HWP) if available.
no_acpi
Don't use ACPI processor performance control objects
_PSS and _PPC specified limits.
intremap= [X86-64, Intel-IOMMU] intremap= [X86-64, Intel-IOMMU]
on enable Interrupt Remapping (default) on enable Interrupt Remapping (default)

View File

@ -181,17 +181,3 @@ For general information, go to the Intel support website at:
If an issue is identified with the released source code on the supported 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 kernel with a supported adapter, email the specific information related to the
issue to e1000-devel@lists.sourceforge.net. 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.

View File

@ -318,7 +318,7 @@ M: Zhang Rui <rui.zhang@intel.com>
L: linux-acpi@vger.kernel.org L: linux-acpi@vger.kernel.org
W: https://01.org/linux-acpi W: https://01.org/linux-acpi
S: Supported S: Supported
F: drivers/acpi/video.c F: drivers/acpi/acpi_video.c
ACPI WMI DRIVER ACPI WMI DRIVER
L: platform-driver-x86@vger.kernel.org L: platform-driver-x86@vger.kernel.org
@ -1847,7 +1847,7 @@ S: Supported
F: drivers/net/wireless/ath/ath6kl/ F: drivers/net/wireless/ath/ath6kl/
WILOCITY WIL6210 WIRELESS DRIVER WILOCITY WIL6210 WIRELESS DRIVER
M: Vladimir Kondratiev <qca_vkondrat@qca.qualcomm.com> M: Maya Erez <qca_merez@qca.qualcomm.com>
L: linux-wireless@vger.kernel.org L: linux-wireless@vger.kernel.org
L: wil6210@qca.qualcomm.com L: wil6210@qca.qualcomm.com
S: Supported S: Supported
@ -1931,7 +1931,7 @@ S: Supported
F: drivers/i2c/busses/i2c-at91.c F: drivers/i2c/busses/i2c-at91.c
ATMEL ISI DRIVER ATMEL ISI DRIVER
M: Josh Wu <josh.wu@atmel.com> M: Ludovic Desroches <ludovic.desroches@atmel.com>
L: linux-media@vger.kernel.org L: linux-media@vger.kernel.org
S: Supported S: Supported
F: drivers/media/platform/soc_camera/atmel-isi.c F: drivers/media/platform/soc_camera/atmel-isi.c
@ -1950,7 +1950,8 @@ S: Supported
F: drivers/net/ethernet/cadence/ F: drivers/net/ethernet/cadence/
ATMEL NAND DRIVER ATMEL NAND DRIVER
M: Josh Wu <josh.wu@atmel.com> M: Wenyou Yang <wenyou.yang@atmel.com>
M: Josh Wu <rainyfeeling@outlook.com>
L: linux-mtd@lists.infradead.org L: linux-mtd@lists.infradead.org
S: Supported S: Supported
F: drivers/mtd/nand/atmel_nand* F: drivers/mtd/nand/atmel_nand*
@ -2449,7 +2450,9 @@ F: drivers/firmware/broadcom/*
BROADCOM STB NAND FLASH DRIVER BROADCOM STB NAND FLASH DRIVER
M: Brian Norris <computersforpeace@gmail.com> M: Brian Norris <computersforpeace@gmail.com>
M: Kamal Dasu <kdasu.kdev@gmail.com>
L: linux-mtd@lists.infradead.org L: linux-mtd@lists.infradead.org
L: bcm-kernel-feedback-list@broadcom.com
S: Maintained S: Maintained
F: drivers/mtd/nand/brcmnand/ F: drivers/mtd/nand/brcmnand/
@ -2546,7 +2549,7 @@ F: arch/c6x/
CACHEFILES: FS-CACHE BACKEND FOR CACHING ON MOUNTED FILESYSTEMS CACHEFILES: FS-CACHE BACKEND FOR CACHING ON MOUNTED FILESYSTEMS
M: David Howells <dhowells@redhat.com> M: David Howells <dhowells@redhat.com>
L: linux-cachefs@redhat.com L: linux-cachefs@redhat.com (moderated for non-subscribers)
S: Supported S: Supported
F: Documentation/filesystems/caching/cachefiles.txt F: Documentation/filesystems/caching/cachefiles.txt
F: fs/cachefiles/ F: fs/cachefiles/
@ -2929,10 +2932,9 @@ S: Maintained
F: drivers/platform/x86/compal-laptop.c F: drivers/platform/x86/compal-laptop.c
CONEXANT ACCESSRUNNER USB DRIVER CONEXANT ACCESSRUNNER USB DRIVER
M: Simon Arlott <cxacru@fire.lp0.eu>
L: accessrunner-general@lists.sourceforge.net L: accessrunner-general@lists.sourceforge.net
W: http://accessrunner.sourceforge.net/ W: http://accessrunner.sourceforge.net/
S: Maintained S: Orphan
F: drivers/usb/atm/cxacru.c F: drivers/usb/atm/cxacru.c
CONFIGFS CONFIGFS
@ -2973,6 +2975,7 @@ F: kernel/cpuset.c
CONTROL GROUP - MEMORY RESOURCE CONTROLLER (MEMCG) CONTROL GROUP - MEMORY RESOURCE CONTROLLER (MEMCG)
M: Johannes Weiner <hannes@cmpxchg.org> M: Johannes Weiner <hannes@cmpxchg.org>
M: Michal Hocko <mhocko@kernel.org> M: Michal Hocko <mhocko@kernel.org>
M: Vladimir Davydov <vdavydov@virtuozzo.com>
L: cgroups@vger.kernel.org L: cgroups@vger.kernel.org
L: linux-mm@kvack.org L: linux-mm@kvack.org
S: Maintained S: Maintained
@ -4409,6 +4412,7 @@ K: fmc_d.*register
FPGA MANAGER FRAMEWORK FPGA MANAGER FRAMEWORK
M: Alan Tull <atull@opensource.altera.com> M: Alan Tull <atull@opensource.altera.com>
R: Moritz Fischer <moritz.fischer@ettus.com>
S: Maintained S: Maintained
F: drivers/fpga/ F: drivers/fpga/
F: include/linux/fpga/fpga-mgr.h F: include/linux/fpga/fpga-mgr.h
@ -4559,7 +4563,7 @@ F: include/linux/frontswap.h
FS-CACHE: LOCAL CACHING FOR NETWORK FILESYSTEMS FS-CACHE: LOCAL CACHING FOR NETWORK FILESYSTEMS
M: David Howells <dhowells@redhat.com> M: David Howells <dhowells@redhat.com>
L: linux-cachefs@redhat.com L: linux-cachefs@redhat.com (moderated for non-subscribers)
S: Supported S: Supported
F: Documentation/filesystems/caching/ F: Documentation/filesystems/caching/
F: fs/fscache/ F: fs/fscache/
@ -5574,7 +5578,7 @@ R: Jesse Brandeburg <jesse.brandeburg@intel.com>
R: Shannon Nelson <shannon.nelson@intel.com> R: Shannon Nelson <shannon.nelson@intel.com>
R: Carolyn Wyborny <carolyn.wyborny@intel.com> R: Carolyn Wyborny <carolyn.wyborny@intel.com>
R: Don Skidmore <donald.c.skidmore@intel.com> R: Don Skidmore <donald.c.skidmore@intel.com>
R: Matthew Vick <matthew.vick@intel.com> R: Bruce Allan <bruce.w.allan@intel.com>
R: John Ronciak <john.ronciak@intel.com> R: John Ronciak <john.ronciak@intel.com>
R: Mitch Williams <mitch.a.williams@intel.com> R: Mitch Williams <mitch.a.williams@intel.com>
L: intel-wired-lan@lists.osuosl.org L: intel-wired-lan@lists.osuosl.org
@ -5711,13 +5715,6 @@ M: Juanjo Ciarlante <jjciarla@raiz.uncu.edu.ar>
S: Maintained S: Maintained
F: net/ipv4/netfilter/ipt_MASQUERADE.c F: net/ipv4/netfilter/ipt_MASQUERADE.c
IP1000A 10/100/1000 GIGABIT ETHERNET DRIVER
M: Francois Romieu <romieu@fr.zoreil.com>
M: Sorbica Shieh <sorbica@icplus.com.tw>
L: netdev@vger.kernel.org
S: Maintained
F: drivers/net/ethernet/icplus/ipg.*
IPATH DRIVER IPATH DRIVER
M: Mike Marciniszyn <infinipath@intel.com> M: Mike Marciniszyn <infinipath@intel.com>
L: linux-rdma@vger.kernel.org L: linux-rdma@vger.kernel.org
@ -6371,6 +6368,7 @@ F: arch/*/include/asm/pmem.h
LIGHTNVM PLATFORM SUPPORT LIGHTNVM PLATFORM SUPPORT
M: Matias Bjorling <mb@lightnvm.io> M: Matias Bjorling <mb@lightnvm.io>
W: http://github/OpenChannelSSD W: http://github/OpenChannelSSD
L: linux-block@vger.kernel.org
S: Maintained S: Maintained
F: drivers/lightnvm/ F: drivers/lightnvm/
F: include/linux/lightnvm.h F: include/linux/lightnvm.h
@ -6923,13 +6921,21 @@ F: drivers/scsi/megaraid.*
F: drivers/scsi/megaraid/ F: drivers/scsi/megaraid/
MELLANOX ETHERNET DRIVER (mlx4_en) MELLANOX ETHERNET DRIVER (mlx4_en)
M: Amir Vadai <amirv@mellanox.com> M: Eugenia Emantayev <eugenia@mellanox.com>
L: netdev@vger.kernel.org L: netdev@vger.kernel.org
S: Supported S: Supported
W: http://www.mellanox.com W: http://www.mellanox.com
Q: http://patchwork.ozlabs.org/project/netdev/list/ Q: http://patchwork.ozlabs.org/project/netdev/list/
F: drivers/net/ethernet/mellanox/mlx4/en_* F: drivers/net/ethernet/mellanox/mlx4/en_*
MELLANOX ETHERNET DRIVER (mlx5e)
M: Saeed Mahameed <saeedm@mellanox.com>
L: netdev@vger.kernel.org
S: Supported
W: http://www.mellanox.com
Q: http://patchwork.ozlabs.org/project/netdev/list/
F: drivers/net/ethernet/mellanox/mlx5/core/en_*
MELLANOX ETHERNET SWITCH DRIVERS MELLANOX ETHERNET SWITCH DRIVERS
M: Jiri Pirko <jiri@mellanox.com> M: Jiri Pirko <jiri@mellanox.com>
M: Ido Schimmel <idosch@mellanox.com> M: Ido Schimmel <idosch@mellanox.com>
@ -7901,6 +7907,18 @@ S: Maintained
F: net/openvswitch/ F: net/openvswitch/
F: include/uapi/linux/openvswitch.h F: include/uapi/linux/openvswitch.h
OPERATING PERFORMANCE POINTS (OPP)
M: Viresh Kumar <vireshk@kernel.org>
M: Nishanth Menon <nm@ti.com>
M: Stephen Boyd <sboyd@codeaurora.org>
L: linux-pm@vger.kernel.org
S: Maintained
T: git git://git.kernel.org/pub/scm/linux/kernel/git/vireshk/pm.git
F: drivers/base/power/opp/
F: include/linux/pm_opp.h
F: Documentation/power/opp.txt
F: Documentation/devicetree/bindings/opp/
OPL4 DRIVER OPL4 DRIVER
M: Clemens Ladisch <clemens@ladisch.de> M: Clemens Ladisch <clemens@ladisch.de>
L: alsa-devel@alsa-project.org (moderated for non-subscribers) L: alsa-devel@alsa-project.org (moderated for non-subscribers)
@ -8277,7 +8295,7 @@ F: include/linux/delayacct.h
F: kernel/delayacct.c F: kernel/delayacct.c
PERFORMANCE EVENTS SUBSYSTEM PERFORMANCE EVENTS SUBSYSTEM
M: Peter Zijlstra <a.p.zijlstra@chello.nl> M: Peter Zijlstra <peterz@infradead.org>
M: Ingo Molnar <mingo@redhat.com> M: Ingo Molnar <mingo@redhat.com>
M: Arnaldo Carvalho de Melo <acme@kernel.org> M: Arnaldo Carvalho de Melo <acme@kernel.org>
L: linux-kernel@vger.kernel.org L: linux-kernel@vger.kernel.org
@ -8370,6 +8388,14 @@ L: linux-samsung-soc@vger.kernel.org (moderated for non-subscribers)
S: Maintained S: Maintained
F: drivers/pinctrl/samsung/ 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 PIN CONTROLLER - ST SPEAR
M: Viresh Kumar <vireshk@kernel.org> M: Viresh Kumar <vireshk@kernel.org>
L: spear-devel@list.st.com L: spear-devel@list.st.com
@ -8936,6 +8962,13 @@ F: drivers/rpmsg/
F: Documentation/rpmsg.txt F: Documentation/rpmsg.txt
F: include/linux/rpmsg.h 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 RESET CONTROLLER FRAMEWORK
M: Philipp Zabel <p.zabel@pengutronix.de> M: Philipp Zabel <p.zabel@pengutronix.de>
S: Maintained S: Maintained
@ -9322,7 +9355,6 @@ F: drivers/i2c/busses/i2c-designware-*
F: include/linux/platform_data/i2c-designware.h F: include/linux/platform_data/i2c-designware.h
SYNOPSYS DESIGNWARE MMC/SD/SDIO DRIVER SYNOPSYS DESIGNWARE MMC/SD/SDIO DRIVER
M: Seungwon Jeon <tgih.jun@samsung.com>
M: Jaehoon Chung <jh80.chung@samsung.com> M: Jaehoon Chung <jh80.chung@samsung.com>
L: linux-mmc@vger.kernel.org L: linux-mmc@vger.kernel.org
S: Maintained S: Maintained
@ -9419,8 +9451,10 @@ F: include/scsi/sg.h
SCSI SUBSYSTEM SCSI SUBSYSTEM
M: "James E.J. Bottomley" <JBottomley@odin.com> M: "James E.J. Bottomley" <JBottomley@odin.com>
L: linux-scsi@vger.kernel.org
T: git git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi.git T: git git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi.git
M: "Martin K. Petersen" <martin.petersen@oracle.com>
T: git git://git.kernel.org/pub/scm/linux/kernel/git/mkp/scsi.git
L: linux-scsi@vger.kernel.org
S: Maintained S: Maintained
F: drivers/scsi/ F: drivers/scsi/
F: include/scsi/ F: include/scsi/
@ -10895,9 +10929,9 @@ S: Maintained
F: drivers/media/tuners/tua9001* F: drivers/media/tuners/tua9001*
TULIP NETWORK DRIVERS TULIP NETWORK DRIVERS
M: Grant Grundler <grundler@parisc-linux.org>
L: netdev@vger.kernel.org L: netdev@vger.kernel.org
S: Maintained L: linux-parisc@vger.kernel.org
S: Orphan
F: drivers/net/ethernet/dec/tulip/ F: drivers/net/ethernet/dec/tulip/
TUN/TAP driver TUN/TAP driver

View File

@ -1,7 +1,7 @@
VERSION = 4 VERSION = 4
PATCHLEVEL = 4 PATCHLEVEL = 4
SUBLEVEL = 0 SUBLEVEL = 0
EXTRAVERSION = -rc1 EXTRAVERSION =
NAME = Blurry Fish Butt NAME = Blurry Fish Butt
# *DOCUMENTATION* # *DOCUMENTATION*

View File

@ -445,6 +445,7 @@ config LINUX_LINK_BASE
However some customers have peripherals mapped at this addr, so However some customers have peripherals mapped at this addr, so
Linux needs to be scooted a bit. Linux needs to be scooted a bit.
If you don't know what the above means, leave this setting alone. 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 config HIGHMEM
bool "High Memory Support" bool "High Memory Support"

View File

@ -81,7 +81,7 @@ endif
LIBGCC := $(shell $(CC) $(cflags-y) --print-libgcc-file-name) LIBGCC := $(shell $(CC) $(cflags-y) --print-libgcc-file-name)
# Modules with short calls might break for calls into builtin-kernel # Modules with short calls might break for calls into builtin-kernel
KBUILD_CFLAGS_MODULE += -mlong-calls KBUILD_CFLAGS_MODULE += -mlong-calls -mno-millicode
# Finally dump eveything into kernel build system # Finally dump eveything into kernel build system
KBUILD_CFLAGS += $(cflags-y) KBUILD_CFLAGS += $(cflags-y)

View File

@ -46,6 +46,7 @@ ethernet@0x18000 {
snps,pbl = < 32 >; snps,pbl = < 32 >;
clocks = <&apbclk>; clocks = <&apbclk>;
clock-names = "stmmaceth"; clock-names = "stmmaceth";
max-speed = <100>;
}; };
ehci@0x40000 { ehci@0x40000 {

View File

@ -17,7 +17,8 @@ / {
memory { memory {
device_type = "memory"; device_type = "memory";
reg = <0x0 0x80000000 0x0 0x40000000 /* 1 GB low mem */ /* CONFIG_LINUX_LINK_BASE needs to match low mem start */
reg = <0x0 0x80000000 0x0 0x20000000 /* 512 MB low mem */
0x1 0x00000000 0x0 0x40000000>; /* 1 GB highmem */ 0x1 0x00000000 0x0 0x40000000>; /* 1 GB highmem */
}; };

View File

@ -1,4 +1,4 @@
CONFIG_CROSS_COMPILE="arc-linux-uclibc-" CONFIG_CROSS_COMPILE="arc-linux-"
CONFIG_DEFAULT_HOSTNAME="ARCLinux" CONFIG_DEFAULT_HOSTNAME="ARCLinux"
# CONFIG_SWAP is not set # CONFIG_SWAP is not set
CONFIG_SYSVIPC=y CONFIG_SYSVIPC=y

View File

@ -1,4 +1,4 @@
CONFIG_CROSS_COMPILE="arc-linux-uclibc-" CONFIG_CROSS_COMPILE="arc-linux-"
CONFIG_DEFAULT_HOSTNAME="ARCLinux" CONFIG_DEFAULT_HOSTNAME="ARCLinux"
# CONFIG_SWAP is not set # CONFIG_SWAP is not set
CONFIG_SYSVIPC=y CONFIG_SYSVIPC=y

View File

@ -1,4 +1,4 @@
CONFIG_CROSS_COMPILE="arc-linux-uclibc-" CONFIG_CROSS_COMPILE="arc-linux-"
CONFIG_DEFAULT_HOSTNAME="ARCLinux" CONFIG_DEFAULT_HOSTNAME="ARCLinux"
# CONFIG_SWAP is not set # CONFIG_SWAP is not set
CONFIG_SYSVIPC=y CONFIG_SYSVIPC=y

View File

@ -1,4 +1,4 @@
CONFIG_CROSS_COMPILE="arc-linux-uclibc-" CONFIG_CROSS_COMPILE="arc-linux-"
# CONFIG_LOCALVERSION_AUTO is not set # CONFIG_LOCALVERSION_AUTO is not set
CONFIG_DEFAULT_HOSTNAME="ARCLinux" CONFIG_DEFAULT_HOSTNAME="ARCLinux"
# CONFIG_SWAP is not set # CONFIG_SWAP is not set

View File

@ -1,4 +1,4 @@
CONFIG_CROSS_COMPILE="arc-linux-uclibc-" CONFIG_CROSS_COMPILE="arc-linux-"
# CONFIG_LOCALVERSION_AUTO is not set # CONFIG_LOCALVERSION_AUTO is not set
CONFIG_DEFAULT_HOSTNAME="ARCLinux" CONFIG_DEFAULT_HOSTNAME="ARCLinux"
# CONFIG_SWAP is not set # CONFIG_SWAP is not set

View File

@ -1,4 +1,4 @@
CONFIG_CROSS_COMPILE="arc-linux-uclibc-" CONFIG_CROSS_COMPILE="arc-linux-"
# CONFIG_LOCALVERSION_AUTO is not set # CONFIG_LOCALVERSION_AUTO is not set
CONFIG_DEFAULT_HOSTNAME="ARCLinux" CONFIG_DEFAULT_HOSTNAME="ARCLinux"
# CONFIG_SWAP is not set # CONFIG_SWAP is not set

View File

@ -1,4 +1,4 @@
CONFIG_CROSS_COMPILE="arc-linux-uclibc-" CONFIG_CROSS_COMPILE="arc-linux-"
CONFIG_DEFAULT_HOSTNAME="ARCLinux" CONFIG_DEFAULT_HOSTNAME="ARCLinux"
# CONFIG_SWAP is not set # CONFIG_SWAP is not set
CONFIG_SYSVIPC=y CONFIG_SYSVIPC=y

View File

@ -1,4 +1,4 @@
CONFIG_CROSS_COMPILE="arc-linux-uclibc-" CONFIG_CROSS_COMPILE="arc-linux-"
# CONFIG_LOCALVERSION_AUTO is not set # CONFIG_LOCALVERSION_AUTO is not set
CONFIG_DEFAULT_HOSTNAME="ARCLinux" CONFIG_DEFAULT_HOSTNAME="ARCLinux"
# CONFIG_CROSS_MEMORY_ATTACH is not set # CONFIG_CROSS_MEMORY_ATTACH is not set

View File

@ -1,4 +1,4 @@
CONFIG_CROSS_COMPILE="arc-linux-uclibc-" CONFIG_CROSS_COMPILE="arc-linux-"
# CONFIG_LOCALVERSION_AUTO is not set # CONFIG_LOCALVERSION_AUTO is not set
CONFIG_DEFAULT_HOSTNAME="ARCLinux" CONFIG_DEFAULT_HOSTNAME="ARCLinux"
# CONFIG_CROSS_MEMORY_ATTACH is not set # CONFIG_CROSS_MEMORY_ATTACH is not set

View File

@ -62,9 +62,7 @@ extern int ioc_exists;
#define ARC_REG_IC_IVIC 0x10 #define ARC_REG_IC_IVIC 0x10
#define ARC_REG_IC_CTRL 0x11 #define ARC_REG_IC_CTRL 0x11
#define ARC_REG_IC_IVIL 0x19 #define ARC_REG_IC_IVIL 0x19
#if defined(CONFIG_ARC_MMU_V3) || defined(CONFIG_ARC_MMU_V4)
#define ARC_REG_IC_PTAG 0x1E #define ARC_REG_IC_PTAG 0x1E
#endif
#define ARC_REG_IC_PTAG_HI 0x1F #define ARC_REG_IC_PTAG_HI 0x1F
/* Bit val in IC_CTRL */ /* Bit val in IC_CTRL */

View File

@ -37,6 +37,9 @@
#define ISA_INIT_STATUS_BITS (STATUS_IE_MASK | STATUS_AD_MASK | \ #define ISA_INIT_STATUS_BITS (STATUS_IE_MASK | STATUS_AD_MASK | \
(ARCV2_IRQ_DEF_PRIO << 1)) (ARCV2_IRQ_DEF_PRIO << 1))
/* SLEEP needs default irq priority (<=) which can interrupt the doze */
#define ISA_SLEEP_ARG (0x10 | ARCV2_IRQ_DEF_PRIO)
#ifndef __ASSEMBLY__ #ifndef __ASSEMBLY__
/* /*

View File

@ -43,6 +43,8 @@
#define ISA_INIT_STATUS_BITS STATUS_IE_MASK #define ISA_INIT_STATUS_BITS STATUS_IE_MASK
#define ISA_SLEEP_ARG 0x3
#ifndef __ASSEMBLY__ #ifndef __ASSEMBLY__
/****************************************************************** /******************************************************************

View File

@ -23,7 +23,7 @@
* @dt_compat: Array of device tree 'compatible' strings * @dt_compat: Array of device tree 'compatible' strings
* (XXX: although only 1st entry is looked at) * (XXX: although only 1st entry is looked at)
* @init_early: Very early callback [called from setup_arch()] * @init_early: Very early callback [called from setup_arch()]
* @init_cpu_smp: for each CPU as it is coming up (SMP as well as UP) * @init_per_cpu: for each CPU as it is coming up (SMP as well as UP)
* [(M):init_IRQ(), (o):start_kernel_secondary()] * [(M):init_IRQ(), (o):start_kernel_secondary()]
* @init_machine: arch initcall level callback (e.g. populate static * @init_machine: arch initcall level callback (e.g. populate static
* platform devices or parse Devicetree) * platform devices or parse Devicetree)
@ -35,7 +35,7 @@ struct machine_desc {
const char **dt_compat; const char **dt_compat;
void (*init_early)(void); void (*init_early)(void);
#ifdef CONFIG_SMP #ifdef CONFIG_SMP
void (*init_cpu_smp)(unsigned int); void (*init_per_cpu)(unsigned int);
#endif #endif
void (*init_machine)(void); void (*init_machine)(void);
void (*init_late)(void); void (*init_late)(void);

View File

@ -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 * @init_early_smp: A SMP specific h/w block can init itself
* Could be common across platforms so not covered by * Could be common across platforms so not covered by
* mach_desc->init_early() * mach_desc->init_early()
* @init_irq_cpu: Called for each core so SMP h/w block driver can do * @init_per_cpu: Called for each core so SMP h/w block driver can do
* any needed setup per cpu (e.g. IPI request) * any needed setup per cpu (e.g. IPI request)
* @cpu_kick: For Master to kickstart a cpu (optionally at a PC) * @cpu_kick: For Master to kickstart a cpu (optionally at a PC)
* @ipi_send: To send IPI to a @cpu * @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 { struct plat_smp_ops {
const char *info; const char *info;
void (*init_early_smp)(void); void (*init_early_smp)(void);
void (*init_irq_cpu)(int cpu); void (*init_per_cpu)(int cpu);
void (*cpu_kick)(int cpu, unsigned long pc); void (*cpu_kick)(int cpu, unsigned long pc);
void (*ipi_send)(int cpu); void (*ipi_send)(int cpu);
void (*ipi_clear)(int irq); void (*ipi_clear)(int irq);

View File

@ -112,7 +112,6 @@ struct unwind_frame_info {
extern int arc_unwind(struct unwind_frame_info *frame); extern int arc_unwind(struct unwind_frame_info *frame);
extern void arc_unwind_init(void); extern void arc_unwind_init(void);
extern void arc_unwind_setup(void);
extern void *unwind_add_table(struct module *module, const void *table_start, extern void *unwind_add_table(struct module *module, const void *table_start,
unsigned long table_size); unsigned long table_size);
extern void unwind_remove_table(void *handle, int init_only); extern void unwind_remove_table(void *handle, int init_only);
@ -152,9 +151,6 @@ static inline void arc_unwind_init(void)
{ {
} }
static inline void arc_unwind_setup(void)
{
}
#define unwind_add_table(a, b, c) #define unwind_add_table(a, b, c)
#define unwind_remove_table(a, b) #define unwind_remove_table(a, b)

View File

@ -58,8 +58,6 @@ __switch_to(struct task_struct *prev_task, struct task_struct *next_task)
"st sp, [r24] \n\t" "st sp, [r24] \n\t"
#endif #endif
"sync \n\t"
/* /*
* setup _current_task with incoming tsk. * setup _current_task with incoming tsk.
* optionally, set r25 to that as well * optionally, set r25 to that as well

View File

@ -44,9 +44,6 @@ __switch_to:
* don't need to do anything special to return it * don't need to do anything special to return it
*/ */
/* hardware memory barrier */
sync
/* /*
* switch to new task, contained in r1 * switch to new task, contained in r1
* Temp reg r3 is required to get the ptr to store val * Temp reg r3 is required to get the ptr to store val

View File

@ -106,10 +106,21 @@ static struct irq_chip arcv2_irq_chip = {
static int arcv2_irq_map(struct irq_domain *d, unsigned int irq, static int arcv2_irq_map(struct irq_domain *d, unsigned int irq,
irq_hw_number_t hw) irq_hw_number_t hw)
{ {
if (irq == TIMER0_IRQ || irq == IPI_IRQ) /*
* 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);
irq_set_chip_and_handler(irq, &arcv2_irq_chip, handle_percpu_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); irq_set_chip_and_handler(irq, &arcv2_irq_chip, handle_level_irq);
}
return 0; return 0;
} }

View File

@ -29,11 +29,11 @@ void __init init_IRQ(void)
#ifdef CONFIG_SMP #ifdef CONFIG_SMP
/* a SMP H/w block could do IPI IRQ request here */ /* a SMP H/w block could do IPI IRQ request here */
if (plat_smp_ops.init_irq_cpu) if (plat_smp_ops.init_per_cpu)
plat_smp_ops.init_irq_cpu(smp_processor_id()); plat_smp_ops.init_per_cpu(smp_processor_id());
if (machine_desc->init_cpu_smp) if (machine_desc->init_per_cpu)
machine_desc->init_cpu_smp(smp_processor_id()); machine_desc->init_per_cpu(smp_processor_id());
#endif #endif
} }
@ -51,6 +51,18 @@ void arch_do_IRQ(unsigned int irq, struct pt_regs *regs)
set_irq_regs(old_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, void arc_request_percpu_irq(int irq, int cpu,
irqreturn_t (*isr)(int irq, void *dev), irqreturn_t (*isr)(int irq, void *dev),
const char *irq_nm, const char *irq_nm,
@ -60,14 +72,17 @@ void arc_request_percpu_irq(int irq, int cpu,
if (!cpu) { if (!cpu) {
int rc; int rc;
#ifdef CONFIG_ISA_ARCOMPACT
/* /*
* These 2 calls are essential to making percpu IRQ APIs work * A subsequent request_percpu_irq() fails if percpu_devid is
* Ideally these details could be hidden in irq chip map function * not set. That in turns sets NOAUTOEN, meaning each core needs
* but the issue is IPIs IRQs being static (non-DT) and platform * to call enable_percpu_irq()
* specific, so we can't identify them there. *
* For ARCv2, this is done in irq map function since we know
* which irqs are strictly per cpu
*/ */
irq_set_percpu_devid(irq); irq_set_percpu_devid(irq);
irq_modify_status(irq, IRQ_NOAUTOEN, 0); /* @irq, @clr, @set */ #endif
rc = request_percpu_irq(irq, isr, irq_nm, percpu_dev); rc = request_percpu_irq(irq, isr, irq_nm, percpu_dev);
if (rc) if (rc)

View File

@ -132,7 +132,7 @@ static void mcip_probe_n_setup(void)
struct plat_smp_ops plat_smp_ops = { struct plat_smp_ops plat_smp_ops = {
.info = smp_cpuinfo_buf, .info = smp_cpuinfo_buf,
.init_early_smp = mcip_probe_n_setup, .init_early_smp = mcip_probe_n_setup,
.init_irq_cpu = mcip_setup_per_cpu, .init_per_cpu = mcip_setup_per_cpu,
.ipi_send = mcip_ipi_send, .ipi_send = mcip_ipi_send,
.ipi_clear = mcip_ipi_clear, .ipi_clear = mcip_ipi_clear,
}; };

View File

@ -428,12 +428,11 @@ static irqreturn_t arc_pmu_intr(int irq, void *dev)
#endif /* CONFIG_ISA_ARCV2 */ #endif /* CONFIG_ISA_ARCV2 */
void arc_cpu_pmu_irq_init(void) static void arc_cpu_pmu_irq_init(void *data)
{ {
struct arc_pmu_cpu *pmu_cpu = this_cpu_ptr(&arc_pmu_cpu); int irq = *(int *)data;
arc_request_percpu_irq(arc_pmu->irq, smp_processor_id(), arc_pmu_intr, enable_percpu_irq(irq, IRQ_TYPE_NONE);
"ARC perf counters", pmu_cpu);
/* Clear all pending interrupt flags */ /* Clear all pending interrupt flags */
write_aux_reg(ARC_REG_PCT_INT_ACT, 0xffffffff); write_aux_reg(ARC_REG_PCT_INT_ACT, 0xffffffff);
@ -515,7 +514,6 @@ static int arc_pmu_device_probe(struct platform_device *pdev)
if (has_interrupts) { if (has_interrupts) {
int irq = platform_get_irq(pdev, 0); int irq = platform_get_irq(pdev, 0);
unsigned long flags;
if (irq < 0) { if (irq < 0) {
pr_err("Cannot get IRQ number for the platform\n"); pr_err("Cannot get IRQ number for the platform\n");
@ -524,24 +522,12 @@ static int arc_pmu_device_probe(struct platform_device *pdev)
arc_pmu->irq = irq; arc_pmu->irq = irq;
/* /* intc map function ensures irq_set_percpu_devid() called */
* arc_cpu_pmu_irq_init() needs to be called on all cores for request_percpu_irq(irq, arc_pmu_intr, "ARC perf counters",
* their respective local PMU. this_cpu_ptr(&arc_pmu_cpu));
* However we use opencoded on_each_cpu() to ensure it is called
* on core0 first, so that arc_request_percpu_irq() sets up on_each_cpu(arc_cpu_pmu_irq_init, &irq, 1);
* 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 } else
arc_pmu->pmu.capabilities |= PERF_PMU_CAP_NO_INTERRUPT; arc_pmu->pmu.capabilities |= PERF_PMU_CAP_NO_INTERRUPT;

View File

@ -44,11 +44,10 @@ SYSCALL_DEFINE0(arc_gettls)
void arch_cpu_idle(void) void arch_cpu_idle(void)
{ {
/* sleep, but enable all interrupts before committing */ /* sleep, but enable all interrupts before committing */
if (is_isa_arcompact()) { __asm__ __volatile__(
__asm__("sleep 0x3"); "sleep %0 \n"
} else { :
__asm__("sleep 0x10"); :"I"(ISA_SLEEP_ARG)); /* can't be "r" has to be embedded const */
}
} }
asmlinkage void ret_from_fork(void); asmlinkage void ret_from_fork(void);

View File

@ -429,7 +429,6 @@ void __init setup_arch(char **cmdline_p)
#endif #endif
arc_unwind_init(); arc_unwind_init();
arc_unwind_setup();
} }
static int __init customize_machine(void) static int __init customize_machine(void)

View File

@ -132,11 +132,11 @@ void start_kernel_secondary(void)
pr_info("## CPU%u LIVE ##: Executing Code...\n", cpu); pr_info("## CPU%u LIVE ##: Executing Code...\n", cpu);
/* Some SMP H/w setup - for each cpu */ /* Some SMP H/w setup - for each cpu */
if (plat_smp_ops.init_irq_cpu) if (plat_smp_ops.init_per_cpu)
plat_smp_ops.init_irq_cpu(cpu); plat_smp_ops.init_per_cpu(cpu);
if (machine_desc->init_cpu_smp) if (machine_desc->init_per_cpu)
machine_desc->init_cpu_smp(cpu); machine_desc->init_per_cpu(cpu);
arc_local_timer_setup(); arc_local_timer_setup();

View File

@ -170,6 +170,23 @@ static struct unwind_table *find_table(unsigned long pc)
static unsigned long read_pointer(const u8 **pLoc, static unsigned long read_pointer(const u8 **pLoc,
const void *end, signed ptrType); 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, static void init_unwind_table(struct unwind_table *table, const char *name,
const void *core_start, unsigned long core_size, const void *core_start, unsigned long core_size,
@ -209,6 +226,8 @@ void __init arc_unwind_init(void)
__start_unwind, __end_unwind - __start_unwind, __start_unwind, __end_unwind - __start_unwind,
NULL, 0); NULL, 0);
/*__start_unwind_hdr, __end_unwind_hdr - __start_unwind_hdr);*/ /*__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; static const u32 bad_cie, not_fde;
@ -241,8 +260,8 @@ static void swap_eh_frame_hdr_table_entries(void *p1, void *p2, int size)
e2->fde = v; e2->fde = v;
} }
static void __init setup_unwind_table(struct unwind_table *table, static void init_unwind_hdr(struct unwind_table *table,
void *(*alloc) (unsigned long)) void *(*alloc) (unsigned long))
{ {
const u8 *ptr; const u8 *ptr;
unsigned long tableSize = table->size, hdrSize; unsigned long tableSize = table->size, hdrSize;
@ -277,10 +296,10 @@ static void __init setup_unwind_table(struct unwind_table *table,
if (cie == &not_fde) if (cie == &not_fde)
continue; continue;
if (cie == NULL || cie == &bad_cie) if (cie == NULL || cie == &bad_cie)
return; goto ret_err;
ptrType = fde_pointer_type(cie); ptrType = fde_pointer_type(cie);
if (ptrType < 0) if (ptrType < 0)
return; goto ret_err;
ptr = (const u8 *)(fde + 2); ptr = (const u8 *)(fde + 2);
if (!read_pointer(&ptr, (const u8 *)(fde + 1) + *fde, if (!read_pointer(&ptr, (const u8 *)(fde + 1) + *fde,
@ -296,13 +315,15 @@ static void __init setup_unwind_table(struct unwind_table *table,
} }
if (tableSize || !n) if (tableSize || !n)
return; goto ret_err;
hdrSize = 4 + sizeof(unsigned long) + sizeof(unsigned int) hdrSize = 4 + sizeof(unsigned long) + sizeof(unsigned int)
+ 2 * n * sizeof(unsigned long); + 2 * n * sizeof(unsigned long);
header = alloc(hdrSize); header = alloc(hdrSize);
if (!header) if (!header)
return; goto ret_err;
header->version = 1; header->version = 1;
header->eh_frame_ptr_enc = DW_EH_PE_abs | DW_EH_PE_native; 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; header->fde_count_enc = DW_EH_PE_abs | DW_EH_PE_data4;
@ -340,18 +361,10 @@ static void __init setup_unwind_table(struct unwind_table *table,
table->hdrsz = hdrSize; table->hdrsz = hdrSize;
smp_wmb(); smp_wmb();
table->header = (const void *)header; table->header = (const void *)header;
} return;
static void *__init balloc(unsigned long sz) ret_err:
{ panic("Attention !!! Dwarf FDE parsing errors\n");;
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 #ifdef CONFIG_MODULES
@ -377,6 +390,8 @@ void *unwind_add_table(struct module *module, const void *table_start,
table_start, table_size, table_start, table_size,
NULL, 0); NULL, 0);
init_unwind_hdr(table, unw_hdr_alloc);
#ifdef UNWIND_DEBUG #ifdef UNWIND_DEBUG
unw_debug("Table added for [%s] %lx %lx\n", unw_debug("Table added for [%s] %lx %lx\n",
module->name, table->core.pc, table->core.range); module->name, table->core.pc, table->core.range);
@ -439,6 +454,7 @@ void unwind_remove_table(void *handle, int init_only)
info.init_only = init_only; info.init_only = init_only;
unlink_table(&info); /* XXX: SMP */ unlink_table(&info); /* XXX: SMP */
kfree(table->header);
kfree(table); kfree(table);
} }
@ -588,9 +604,6 @@ static signed fde_pointer_type(const u32 *cie)
const u8 *ptr = (const u8 *)(cie + 2); const u8 *ptr = (const u8 *)(cie + 2);
unsigned version = *ptr; unsigned version = *ptr;
if (version != 1)
return -1; /* unsupported */
if (*++ptr) { if (*++ptr) {
const char *aug; const char *aug;
const u8 *end = (const u8 *)(cie + 1) + *cie; const u8 *end = (const u8 *)(cie + 1) + *cie;
@ -986,42 +999,13 @@ int arc_unwind(struct unwind_frame_info *frame)
(const u8 *)(fde + (const u8 *)(fde +
1) + 1) +
*fde, ptrType); *fde, ptrType);
if (pc >= endLoc) if (pc >= endLoc) {
fde = NULL; fde = NULL;
} else
fde = NULL;
}
if (fde == NULL) {
for (fde = table->address, tableSize = table->size;
cie = NULL, tableSize > sizeof(*fde)
&& tableSize - sizeof(*fde) >= *fde;
tableSize -= sizeof(*fde) + *fde,
fde += 1 + *fde / sizeof(*fde)) {
cie = cie_for_fde(fde, table);
if (cie == &bad_cie) {
cie = NULL; cie = NULL;
break;
} }
if (cie == NULL } else {
|| cie == &not_fde fde = NULL;
|| (ptrType = fde_pointer_type(cie)) < 0) cie = NULL;
continue;
ptr = (const u8 *)(fde + 2);
startLoc = read_pointer(&ptr,
(const u8 *)(fde + 1) +
*fde, ptrType);
if (!startLoc)
continue;
if (!(ptrType & DW_EH_PE_indirect))
ptrType &=
DW_EH_PE_FORM | DW_EH_PE_signed;
endLoc =
startLoc + read_pointer(&ptr,
(const u8 *)(fde +
1) +
*fde, ptrType);
if (pc >= startLoc && pc < endLoc)
break;
} }
} }
} }
@ -1031,9 +1015,7 @@ int arc_unwind(struct unwind_frame_info *frame)
ptr = (const u8 *)(cie + 2); ptr = (const u8 *)(cie + 2);
end = (const u8 *)(cie + 1) + *cie; end = (const u8 *)(cie + 1) + *cie;
frame->call_frame = 1; frame->call_frame = 1;
if ((state.version = *ptr) != 1) if (*++ptr) {
cie = NULL; /* unsupported version */
else if (*++ptr) {
/* check if augmentation size is first (thus present) */ /* check if augmentation size is first (thus present) */
if (*ptr == 'z') { if (*ptr == 'z') {
while (++ptr < end && *ptr) { while (++ptr < end && *ptr) {

View File

@ -111,7 +111,7 @@ void __kunmap_atomic(void *kv)
} }
EXPORT_SYMBOL(__kunmap_atomic); EXPORT_SYMBOL(__kunmap_atomic);
noinline pte_t *alloc_kmap_pgtable(unsigned long kvaddr) static noinline pte_t * __init alloc_kmap_pgtable(unsigned long kvaddr)
{ {
pgd_t *pgd_k; pgd_t *pgd_k;
pud_t *pud_k; pud_t *pud_k;
@ -127,7 +127,7 @@ noinline pte_t *alloc_kmap_pgtable(unsigned long kvaddr)
return pte_k; return pte_k;
} }
void kmap_init(void) void __init kmap_init(void)
{ {
/* Due to recursive include hell, we can't do this in processor.h */ /* Due to recursive include hell, we can't do this in processor.h */
BUILD_BUG_ON(PAGE_OFFSET < (VMALLOC_END + FIXMAP_SIZE + PKMAP_SIZE)); BUILD_BUG_ON(PAGE_OFFSET < (VMALLOC_END + FIXMAP_SIZE + PKMAP_SIZE));

View File

@ -51,7 +51,9 @@ void __init early_init_dt_add_memory_arch(u64 base, u64 size)
int in_use = 0; int in_use = 0;
if (!low_mem_sz) { if (!low_mem_sz) {
BUG_ON(base != low_mem_start); if (base != low_mem_start)
panic("CONFIG_LINUX_LINK_BASE != DT memory { }");
low_mem_sz = size; low_mem_sz = size;
in_use = 1; in_use = 1;
} else { } else {

View File

@ -619,10 +619,10 @@ void update_mmu_cache(struct vm_area_struct *vma, unsigned long vaddr_unaligned,
int dirty = !test_and_set_bit(PG_dc_clean, &page->flags); int dirty = !test_and_set_bit(PG_dc_clean, &page->flags);
if (dirty) { if (dirty) {
/* wback + inv dcache lines */ /* wback + inv dcache lines (K-mapping) */
__flush_dcache_page(paddr, paddr); __flush_dcache_page(paddr, paddr);
/* invalidate any existing icache lines */ /* invalidate any existing icache lines (U-mapping) */
if (vma->vm_flags & VM_EXEC) if (vma->vm_flags & VM_EXEC)
__inv_icache_page(paddr, vaddr); __inv_icache_page(paddr, vaddr);
} }

View File

@ -76,6 +76,8 @@ config ARM
select IRQ_FORCED_THREADING select IRQ_FORCED_THREADING
select MODULES_USE_ELF_REL select MODULES_USE_ELF_REL
select NO_BOOTMEM select NO_BOOTMEM
select OF_EARLY_FLATTREE if OF
select OF_RESERVED_MEM if OF
select OLD_SIGACTION select OLD_SIGACTION
select OLD_SIGSUSPEND3 select OLD_SIGSUSPEND3
select PERF_USE_VMALLOC select PERF_USE_VMALLOC
@ -1822,8 +1824,6 @@ config USE_OF
bool "Flattened Device Tree support" bool "Flattened Device Tree support"
select IRQ_DOMAIN select IRQ_DOMAIN
select OF select OF
select OF_EARLY_FLATTREE
select OF_RESERVED_MEM
help help
Include support for flattened device tree machine descriptions. Include support for flattened device tree machine descriptions.

View File

@ -74,7 +74,7 @@ global_timer: timer@48240200 {
reg = <0x48240200 0x100>; reg = <0x48240200 0x100>;
interrupts = <GIC_PPI 11 IRQ_TYPE_LEVEL_HIGH>; interrupts = <GIC_PPI 11 IRQ_TYPE_LEVEL_HIGH>;
interrupt-parent = <&gic>; interrupt-parent = <&gic>;
clocks = <&dpll_mpu_m2_ck>; clocks = <&mpu_periphclk>;
}; };
local_timer: timer@48240600 { local_timer: timer@48240600 {
@ -82,7 +82,7 @@ local_timer: timer@48240600 {
reg = <0x48240600 0x100>; reg = <0x48240600 0x100>;
interrupts = <GIC_PPI 13 IRQ_TYPE_LEVEL_HIGH>; interrupts = <GIC_PPI 13 IRQ_TYPE_LEVEL_HIGH>;
interrupt-parent = <&gic>; interrupt-parent = <&gic>;
clocks = <&dpll_mpu_m2_ck>; clocks = <&mpu_periphclk>;
}; };
l2-cache-controller@48242000 { l2-cache-controller@48242000 {

View File

@ -259,6 +259,14 @@ dpll_mpu_m2_ck: dpll_mpu_m2_ck {
ti,invert-autoidle-bit; ti,invert-autoidle-bit;
}; };
mpu_periphclk: mpu_periphclk {
#clock-cells = <0>;
compatible = "fixed-factor-clock";
clocks = <&dpll_mpu_m2_ck>;
clock-mult = <1>;
clock-div = <2>;
};
dpll_ddr_ck: dpll_ddr_ck { dpll_ddr_ck: dpll_ddr_ck {
#clock-cells = <0>; #clock-cells = <0>;
compatible = "ti,am3-dpll-clock"; compatible = "ti,am3-dpll-clock";

View File

@ -604,6 +604,7 @@ mcp_rtc: rtc@6f {
reg = <0x6f>; reg = <0x6f>;
interrupts-extended = <&crossbar_mpu GIC_SPI 2 IRQ_TYPE_EDGE_RISING>, interrupts-extended = <&crossbar_mpu GIC_SPI 2 IRQ_TYPE_EDGE_RISING>,
<&dra7_pmx_core 0x424>; <&dra7_pmx_core 0x424>;
interrupt-names = "irq", "wakeup";
pinctrl-names = "default"; pinctrl-names = "default";
pinctrl-0 = <&mcp79410_pins_default>; pinctrl-0 = <&mcp79410_pins_default>;

View File

@ -155,21 +155,21 @@ keyswitch_in {
label = "keyswitch_in"; label = "keyswitch_in";
gpios = <&pioB 1 GPIO_ACTIVE_HIGH>; gpios = <&pioB 1 GPIO_ACTIVE_HIGH>;
linux,code = <28>; linux,code = <28>;
gpio-key,wakeup; wakeup-source;
}; };
error_in { error_in {
label = "error_in"; label = "error_in";
gpios = <&pioB 2 GPIO_ACTIVE_HIGH>; gpios = <&pioB 2 GPIO_ACTIVE_HIGH>;
linux,code = <29>; linux,code = <29>;
gpio-key,wakeup; wakeup-source;
}; };
btn { btn {
label = "btn"; label = "btn";
gpios = <&pioC 23 GPIO_ACTIVE_HIGH>; gpios = <&pioC 23 GPIO_ACTIVE_HIGH>;
linux,code = <31>; linux,code = <31>;
gpio-key,wakeup; wakeup-source;
}; };
}; };
}; };

View File

@ -498,6 +498,7 @@ eth0: ethernet@70000 {
reg = <0x70000 0x4000>; reg = <0x70000 0x4000>;
interrupts-extended = <&mpic 8>; interrupts-extended = <&mpic 8>;
clocks = <&gateclk 4>; clocks = <&gateclk 4>;
tx-csum-limit = <9800>;
status = "disabled"; status = "disabled";
}; };

View File

@ -159,7 +159,7 @@ btn {
label = "Button"; label = "Button";
gpios = <&pioC 4 GPIO_ACTIVE_LOW>; gpios = <&pioC 4 GPIO_ACTIVE_LOW>;
linux,code = <0x103>; linux,code = <0x103>;
gpio-key,wakeup; wakeup-source;
}; };
}; };
}; };

View File

@ -24,15 +24,6 @@ memory {
}; };
clocks { clocks {
#address-cells = <1>;
#size-cells = <1>;
ranges;
main_clock: clock@0 {
compatible = "atmel,osc", "fixed-clock";
clock-frequency = <18432000>;
};
main_xtal { main_xtal {
clock-frequency = <18432000>; clock-frequency = <18432000>;
}; };
@ -94,14 +85,14 @@ reset {
label = "PB_RST"; label = "PB_RST";
gpios = <&pioB 30 GPIO_ACTIVE_HIGH>; gpios = <&pioB 30 GPIO_ACTIVE_HIGH>;
linux,code = <0x100>; linux,code = <0x100>;
gpio-key,wakeup; wakeup-source;
}; };
user { user {
label = "PB_USER"; label = "PB_USER";
gpios = <&pioB 31 GPIO_ACTIVE_HIGH>; gpios = <&pioB 31 GPIO_ACTIVE_HIGH>;
linux,code = <0x101>; linux,code = <0x101>;
gpio-key,wakeup; wakeup-source;
}; };
}; };

View File

@ -171,21 +171,21 @@ prog {
label = "PB_PROG"; label = "PB_PROG";
gpios = <&pioE 27 GPIO_ACTIVE_LOW>; gpios = <&pioE 27 GPIO_ACTIVE_LOW>;
linux,code = <0x102>; linux,code = <0x102>;
gpio-key,wakeup; wakeup-source;
}; };
reset { reset {
label = "PB_RST"; label = "PB_RST";
gpios = <&pioE 29 GPIO_ACTIVE_LOW>; gpios = <&pioE 29 GPIO_ACTIVE_LOW>;
linux,code = <0x100>; linux,code = <0x100>;
gpio-key,wakeup; wakeup-source;
}; };
user { user {
label = "PB_USER"; label = "PB_USER";
gpios = <&pioE 31 GPIO_ACTIVE_HIGH>; gpios = <&pioE 31 GPIO_ACTIVE_HIGH>;
linux,code = <0x101>; linux,code = <0x101>;
gpio-key,wakeup; wakeup-source;
}; };
}; };

View File

@ -98,14 +98,14 @@ prog {
label = "PB_PROG"; label = "PB_PROG";
gpios = <&pioC 17 GPIO_ACTIVE_LOW>; gpios = <&pioC 17 GPIO_ACTIVE_LOW>;
linux,code = <0x102>; linux,code = <0x102>;
gpio-key,wakeup; wakeup-source;
}; };
reset { reset {
label = "PB_RST"; label = "PB_RST";
gpios = <&pioC 16 GPIO_ACTIVE_LOW>; gpios = <&pioC 16 GPIO_ACTIVE_LOW>;
linux,code = <0x100>; linux,code = <0x100>;
gpio-key,wakeup; wakeup-source;
}; };
}; };

View File

@ -183,7 +183,7 @@ user_pb {
label = "user_pb"; label = "user_pb";
gpios = <&pioB 10 GPIO_ACTIVE_LOW>; gpios = <&pioB 10 GPIO_ACTIVE_LOW>;
linux,code = <28>; linux,code = <28>;
gpio-key,wakeup; wakeup-source;
}; };
}; };

View File

@ -45,6 +45,7 @@
/dts-v1/; /dts-v1/;
#include "sama5d2.dtsi" #include "sama5d2.dtsi"
#include "sama5d2-pinfunc.h" #include "sama5d2-pinfunc.h"
#include <dt-bindings/mfd/atmel-flexcom.h>
/ { / {
model = "Atmel SAMA5D2 Xplained"; model = "Atmel SAMA5D2 Xplained";
@ -59,15 +60,6 @@ memory {
}; };
clocks { clocks {
#address-cells = <1>;
#size-cells = <1>;
ranges;
main_clock: clock@0 {
compatible = "atmel,osc", "fixed-clock";
clock-frequency = <12000000>;
};
slow_xtal { slow_xtal {
clock-frequency = <32768>; clock-frequency = <32768>;
}; };
@ -91,6 +83,22 @@ usb2: ehci@00500000 {
status = "okay"; status = "okay";
}; };
sdmmc0: sdio-host@a0000000 {
bus-width = <8>;
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_sdmmc0_default>;
non-removable;
mmc-ddr-1_8v;
status = "okay";
};
sdmmc1: sdio-host@b0000000 {
bus-width = <4>;
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_sdmmc1_default>;
status = "okay"; /* conflict with qspi0 */
};
apb { apb {
spi0: spi@f8000000 { spi0: spi@f8000000 {
pinctrl-names = "default"; pinctrl-names = "default";
@ -176,17 +184,55 @@ vdd_sdhc_1v8_reg: LDO_REG4 {
regulator-name = "VDD_SDHC_1V8"; regulator-name = "VDD_SDHC_1V8";
regulator-min-microvolt = <1800000>; regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <1800000>; regulator-max-microvolt = <1800000>;
regulator-always-on;
}; };
}; };
}; };
}; };
flx0: flexcom@f8034000 {
atmel,flexcom-mode = <ATMEL_FLEXCOM_MODE_USART>;
status = "disabled"; /* conflict with ISC_D2 & ISC_D3 data pins */
uart5: serial@200 {
compatible = "atmel,at91sam9260-usart";
reg = <0x200 0x200>;
interrupts = <19 IRQ_TYPE_LEVEL_HIGH 7>;
clocks = <&flx0_clk>;
clock-names = "usart";
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_flx0_default>;
atmel,fifo-size = <32>;
status = "okay";
};
};
uart3: serial@fc008000 { uart3: serial@fc008000 {
pinctrl-names = "default"; pinctrl-names = "default";
pinctrl-0 = <&pinctrl_uart3_default>; pinctrl-0 = <&pinctrl_uart3_default>;
status = "okay"; status = "okay";
}; };
flx4: flexcom@fc018000 {
atmel,flexcom-mode = <ATMEL_FLEXCOM_MODE_TWI>;
status = "okay";
i2c2: i2c@600 {
compatible = "atmel,sama5d2-i2c";
reg = <0x600 0x200>;
interrupts = <23 IRQ_TYPE_LEVEL_HIGH 7>;
dmas = <0>, <0>;
dma-names = "tx", "rx";
#address-cells = <1>;
#size-cells = <0>;
clocks = <&flx4_clk>;
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_flx4_default>;
atmel,fifo-size = <16>;
status = "okay";
};
};
i2c1: i2c@fc028000 { i2c1: i2c@fc028000 {
dmas = <0>, <0>; dmas = <0>, <0>;
pinctrl-names = "default"; pinctrl-names = "default";
@ -201,6 +247,18 @@ at24@54 {
}; };
pinctrl@fc038000 { pinctrl@fc038000 {
pinctrl_flx0_default: flx0_default {
pinmux = <PIN_PB28__FLEXCOM0_IO0>,
<PIN_PB29__FLEXCOM0_IO1>;
bias-disable;
};
pinctrl_flx4_default: flx4_default {
pinmux = <PIN_PD12__FLEXCOM4_IO0>,
<PIN_PD13__FLEXCOM4_IO1>;
bias-disable;
};
pinctrl_i2c0_default: i2c0_default { pinctrl_i2c0_default: i2c0_default {
pinmux = <PIN_PD21__TWD0>, pinmux = <PIN_PD21__TWD0>,
<PIN_PD22__TWCK0>; <PIN_PD22__TWCK0>;
@ -227,6 +285,46 @@ pinctrl_macb0_default: macb0_default {
bias-disable; bias-disable;
}; };
pinctrl_sdmmc0_default: sdmmc0_default {
cmd_data {
pinmux = <PIN_PA1__SDMMC0_CMD>,
<PIN_PA2__SDMMC0_DAT0>,
<PIN_PA3__SDMMC0_DAT1>,
<PIN_PA4__SDMMC0_DAT2>,
<PIN_PA5__SDMMC0_DAT3>,
<PIN_PA6__SDMMC0_DAT4>,
<PIN_PA7__SDMMC0_DAT5>,
<PIN_PA8__SDMMC0_DAT6>,
<PIN_PA9__SDMMC0_DAT7>;
bias-pull-up;
};
ck_cd_rstn_vddsel {
pinmux = <PIN_PA0__SDMMC0_CK>,
<PIN_PA10__SDMMC0_RSTN>,
<PIN_PA11__SDMMC0_VDDSEL>,
<PIN_PA13__SDMMC0_CD>;
bias-disable;
};
};
pinctrl_sdmmc1_default: sdmmc1_default {
cmd_data {
pinmux = <PIN_PA28__SDMMC1_CMD>,
<PIN_PA18__SDMMC1_DAT0>,
<PIN_PA19__SDMMC1_DAT1>,
<PIN_PA20__SDMMC1_DAT2>,
<PIN_PA21__SDMMC1_DAT3>;
bias-pull-up;
};
conf-ck_cd {
pinmux = <PIN_PA22__SDMMC1_CK>,
<PIN_PA30__SDMMC1_CD>;
bias-disable;
};
};
pinctrl_spi0_default: spi0_default { pinctrl_spi0_default: spi0_default {
pinmux = <PIN_PA14__SPI0_SPCK>, pinmux = <PIN_PA14__SPI0_SPCK>,
<PIN_PA15__SPI0_MOSI>, <PIN_PA15__SPI0_MOSI>,

View File

@ -315,7 +315,7 @@ bp3 {
label = "PB_USER"; label = "PB_USER";
gpios = <&pioE 29 GPIO_ACTIVE_LOW>; gpios = <&pioE 29 GPIO_ACTIVE_LOW>;
linux,code = <0x104>; linux,code = <0x104>;
gpio-key,wakeup; wakeup-source;
}; };
}; };

View File

@ -50,7 +50,6 @@ / {
compatible = "atmel,sama5d4-xplained", "atmel,sama5d4", "atmel,sama5"; compatible = "atmel,sama5d4-xplained", "atmel,sama5d4", "atmel,sama5";
chosen { chosen {
bootargs = "ignore_loglevel earlyprintk";
stdout-path = "serial0:115200n8"; stdout-path = "serial0:115200n8";
}; };
@ -59,15 +58,6 @@ memory {
}; };
clocks { clocks {
#address-cells = <1>;
#size-cells = <1>;
ranges;
main_clock: clock@0 {
compatible = "atmel,osc", "fixed-clock";
clock-frequency = <12000000>;
};
slow_xtal { slow_xtal {
clock-frequency = <32768>; clock-frequency = <32768>;
}; };
@ -235,7 +225,7 @@ pb_user1 {
label = "pb_user1"; label = "pb_user1";
gpios = <&pioE 8 GPIO_ACTIVE_HIGH>; gpios = <&pioE 8 GPIO_ACTIVE_HIGH>;
linux,code = <0x100>; linux,code = <0x100>;
gpio-key,wakeup; wakeup-source;
}; };
}; };

View File

@ -50,7 +50,6 @@ / {
compatible = "atmel,sama5d4ek", "atmel,sama5d4", "atmel,sama5"; compatible = "atmel,sama5d4ek", "atmel,sama5d4", "atmel,sama5";
chosen { chosen {
bootargs = "ignore_loglevel earlyprintk";
stdout-path = "serial0:115200n8"; stdout-path = "serial0:115200n8";
}; };
@ -59,15 +58,6 @@ memory {
}; };
clocks { clocks {
#address-cells = <1>;
#size-cells = <1>;
ranges;
main_clock: clock@0 {
compatible = "atmel,osc", "fixed-clock";
clock-frequency = <12000000>;
};
slow_xtal { slow_xtal {
clock-frequency = <32768>; clock-frequency = <32768>;
}; };
@ -304,7 +294,7 @@ pb_user1 {
label = "pb_user1"; label = "pb_user1";
gpios = <&pioE 13 GPIO_ACTIVE_HIGH>; gpios = <&pioE 13 GPIO_ACTIVE_HIGH>;
linux,code = <0x100>; linux,code = <0x100>;
gpio-key,wakeup; wakeup-source;
}; };
}; };

View File

@ -21,15 +21,6 @@ memory {
}; };
clocks { clocks {
#address-cells = <1>;
#size-cells = <1>;
ranges;
main_clock: clock@0 {
compatible = "atmel,osc", "fixed-clock";
clock-frequency = <18432000>;
};
slow_xtal { slow_xtal {
clock-frequency = <32768>; clock-frequency = <32768>;
}; };

View File

@ -22,15 +22,6 @@ memory {
}; };
clocks { clocks {
#address-cells = <1>;
#size-cells = <1>;
ranges;
main_clock: clock@0 {
compatible = "atmel,osc", "fixed-clock";
clock-frequency = <18432000>;
};
slow_xtal { slow_xtal {
clock-frequency = <32768>; clock-frequency = <32768>;
}; };
@ -149,7 +140,7 @@ tsc2046@0 {
ti,debounce-tol = /bits/ 16 <65535>; ti,debounce-tol = /bits/ 16 <65535>;
ti,debounce-max = /bits/ 16 <1>; ti,debounce-max = /bits/ 16 <1>;
linux,wakeup; wakeup-source;
}; };
}; };
@ -193,28 +184,28 @@ button_0 {
label = "button_0"; label = "button_0";
gpios = <&pioA 27 GPIO_ACTIVE_LOW>; gpios = <&pioA 27 GPIO_ACTIVE_LOW>;
linux,code = <256>; linux,code = <256>;
gpio-key,wakeup; wakeup-source;
}; };
button_1 { button_1 {
label = "button_1"; label = "button_1";
gpios = <&pioA 26 GPIO_ACTIVE_LOW>; gpios = <&pioA 26 GPIO_ACTIVE_LOW>;
linux,code = <257>; linux,code = <257>;
gpio-key,wakeup; wakeup-source;
}; };
button_2 { button_2 {
label = "button_2"; label = "button_2";
gpios = <&pioA 25 GPIO_ACTIVE_LOW>; gpios = <&pioA 25 GPIO_ACTIVE_LOW>;
linux,code = <258>; linux,code = <258>;
gpio-key,wakeup; wakeup-source;
}; };
button_3 { button_3 {
label = "button_3"; label = "button_3";
gpios = <&pioA 24 GPIO_ACTIVE_LOW>; gpios = <&pioA 24 GPIO_ACTIVE_LOW>;
linux,code = <259>; linux,code = <259>;
gpio-key,wakeup; wakeup-source;
}; };
}; };
}; };

View File

@ -22,15 +22,6 @@ memory {
}; };
clocks { clocks {
#address-cells = <1>;
#size-cells = <1>;
ranges;
main_clock: clock@0 {
compatible = "atmel,osc", "fixed-clock";
clock-frequency = <16367660>;
};
slow_xtal { slow_xtal {
clock-frequency = <32768>; clock-frequency = <32768>;
}; };
@ -213,14 +204,14 @@ left_click {
label = "left_click"; label = "left_click";
gpios = <&pioC 5 GPIO_ACTIVE_LOW>; gpios = <&pioC 5 GPIO_ACTIVE_LOW>;
linux,code = <272>; linux,code = <272>;
gpio-key,wakeup; wakeup-source;
}; };
right_click { right_click {
label = "right_click"; label = "right_click";
gpios = <&pioC 4 GPIO_ACTIVE_LOW>; gpios = <&pioC 4 GPIO_ACTIVE_LOW>;
linux,code = <273>; linux,code = <273>;
gpio-key,wakeup; wakeup-source;
}; };
}; };

View File

@ -19,15 +19,6 @@ memory {
}; };
clocks { clocks {
#address-cells = <1>;
#size-cells = <1>;
ranges;
main_clock: clock@0 {
compatible = "atmel,osc", "fixed-clock";
clock-frequency = <18432000>;
};
slow_xtal { slow_xtal {
clock-frequency = <32768>; clock-frequency = <32768>;
}; };
@ -206,14 +197,14 @@ btn3 {
label = "Button 3"; label = "Button 3";
gpios = <&pioA 30 GPIO_ACTIVE_LOW>; gpios = <&pioA 30 GPIO_ACTIVE_LOW>;
linux,code = <0x103>; linux,code = <0x103>;
gpio-key,wakeup; wakeup-source;
}; };
btn4 { btn4 {
label = "Button 4"; label = "Button 4";
gpios = <&pioA 31 GPIO_ACTIVE_LOW>; gpios = <&pioA 31 GPIO_ACTIVE_LOW>;
linux,code = <0x104>; linux,code = <0x104>;
gpio-key,wakeup; wakeup-source;
}; };
}; };

View File

@ -24,15 +24,6 @@ memory {
}; };
clocks { clocks {
#address-cells = <1>;
#size-cells = <1>;
ranges;
main_clock: clock@0 {
compatible = "atmel,osc", "fixed-clock";
clock-frequency = <12000000>;
};
slow_xtal { slow_xtal {
clock-frequency = <32768>; clock-frequency = <32768>;
}; };
@ -323,14 +314,14 @@ left_click {
label = "left_click"; label = "left_click";
gpios = <&pioB 6 GPIO_ACTIVE_LOW>; gpios = <&pioB 6 GPIO_ACTIVE_LOW>;
linux,code = <272>; linux,code = <272>;
gpio-key,wakeup; wakeup-source;
}; };
right_click { right_click {
label = "right_click"; label = "right_click";
gpios = <&pioB 7 GPIO_ACTIVE_LOW>; gpios = <&pioB 7 GPIO_ACTIVE_LOW>;
linux,code = <273>; linux,code = <273>;
gpio-key,wakeup; wakeup-source;
}; };
left { left {

View File

@ -23,15 +23,6 @@ memory {
}; };
clocks { clocks {
#address-cells = <1>;
#size-cells = <1>;
ranges;
main_clock: clock@0 {
compatible = "atmel,osc", "fixed-clock";
clock-frequency = <16000000>;
};
slow_xtal { slow_xtal {
clock-frequency = <32768>; clock-frequency = <32768>;
}; };
@ -219,7 +210,7 @@ enter {
label = "Enter"; label = "Enter";
gpios = <&pioB 3 GPIO_ACTIVE_LOW>; gpios = <&pioB 3 GPIO_ACTIVE_LOW>;
linux,code = <28>; linux,code = <28>;
gpio-key,wakeup; wakeup-source;
}; };
}; };

View File

@ -22,15 +22,6 @@ memory {
}; };
clocks { clocks {
#address-cells = <1>;
#size-cells = <1>;
ranges;
main_clock: clock {
compatible = "atmel,osc", "fixed-clock";
clock-frequency = <12000000>;
};
slow_xtal { slow_xtal {
clock-frequency = <32768>; clock-frequency = <32768>;
}; };
@ -225,14 +216,14 @@ right_click {
label = "right_click"; label = "right_click";
gpios = <&pioB 0 GPIO_ACTIVE_LOW>; gpios = <&pioB 0 GPIO_ACTIVE_LOW>;
linux,code = <273>; linux,code = <273>;
gpio-key,wakeup; wakeup-source;
}; };
left_click { left_click {
label = "left_click"; label = "left_click";
gpios = <&pioB 1 GPIO_ACTIVE_LOW>; gpios = <&pioB 1 GPIO_ACTIVE_LOW>;
linux,code = <272>; linux,code = <272>;
gpio-key,wakeup; wakeup-source;
}; };
}; };

View File

@ -12,17 +12,6 @@ memory {
reg = <0x20000000 0x8000000>; reg = <0x20000000 0x8000000>;
}; };
clocks {
#address-cells = <1>;
#size-cells = <1>;
ranges;
main_clock: clock@0 {
compatible = "atmel,osc", "fixed-clock";
clock-frequency = <12000000>;
};
};
clocks { clocks {
slow_xtal { slow_xtal {
clock-frequency = <32768>; clock-frequency = <32768>;

View File

@ -118,7 +118,8 @@ pmu {
sdhci0: sdhci@ab0000 { sdhci0: sdhci@ab0000 {
compatible = "mrvl,pxav3-mmc"; compatible = "mrvl,pxav3-mmc";
reg = <0xab0000 0x200>; reg = <0xab0000 0x200>;
clocks = <&chip_clk CLKID_SDIO1XIN>; clocks = <&chip_clk CLKID_SDIO1XIN>, <&chip_clk CLKID_SDIO>;
clock-names = "io", "core";
interrupts = <GIC_SPI 17 IRQ_TYPE_LEVEL_HIGH>; interrupts = <GIC_SPI 17 IRQ_TYPE_LEVEL_HIGH>;
status = "disabled"; status = "disabled";
}; };
@ -126,7 +127,8 @@ sdhci0: sdhci@ab0000 {
sdhci1: sdhci@ab0800 { sdhci1: sdhci@ab0800 {
compatible = "mrvl,pxav3-mmc"; compatible = "mrvl,pxav3-mmc";
reg = <0xab0800 0x200>; reg = <0xab0800 0x200>;
clocks = <&chip_clk CLKID_SDIO1XIN>; clocks = <&chip_clk CLKID_SDIO1XIN>, <&chip_clk CLKID_SDIO>;
clock-names = "io", "core";
interrupts = <GIC_SPI 20 IRQ_TYPE_LEVEL_HIGH>; interrupts = <GIC_SPI 20 IRQ_TYPE_LEVEL_HIGH>;
status = "disabled"; status = "disabled";
}; };
@ -135,7 +137,7 @@ sdhci2: sdhci@ab1000 {
compatible = "mrvl,pxav3-mmc"; compatible = "mrvl,pxav3-mmc";
reg = <0xab1000 0x200>; reg = <0xab1000 0x200>;
interrupts = <GIC_SPI 28 IRQ_TYPE_LEVEL_HIGH>; interrupts = <GIC_SPI 28 IRQ_TYPE_LEVEL_HIGH>;
clocks = <&chip_clk CLKID_NFC_ECC>, <&chip_clk CLKID_NFC>; clocks = <&chip_clk CLKID_NFC_ECC>, <&chip_clk CLKID_SDIO>;
clock-names = "io", "core"; clock-names = "io", "core";
status = "disabled"; status = "disabled";
}; };

View File

@ -218,6 +218,7 @@ mailbox: mailbox@480c8000 {
reg = <0x480c8000 0x2000>; reg = <0x480c8000 0x2000>;
interrupts = <77>; interrupts = <77>;
ti,hwmods = "mailbox"; ti,hwmods = "mailbox";
#mbox-cells = <1>;
ti,mbox-num-users = <4>; ti,mbox-num-users = <4>;
ti,mbox-num-fifos = <12>; ti,mbox-num-fifos = <12>;
mbox_dsp: mbox_dsp { mbox_dsp: mbox_dsp {
@ -279,8 +280,11 @@ mcspi1: spi@48030000 {
ti,spi-num-cs = <4>; ti,spi-num-cs = <4>;
ti,hwmods = "mcspi1"; ti,hwmods = "mcspi1";
dmas = <&edma 16 &edma 17 dmas = <&edma 16 &edma 17
&edma 18 &edma 19>; &edma 18 &edma 19
dma-names = "tx0", "rx0", "tx1", "rx1"; &edma 20 &edma 21
&edma 22 &edma 23>;
dma-names = "tx0", "rx0", "tx1", "rx1",
"tx2", "rx2", "tx3", "rx3";
}; };
mmc1: mmc@48060000 { mmc1: mmc@48060000 {

View File

@ -1459,8 +1459,8 @@ mcasp3: mcasp@48468000 {
interrupt-names = "tx", "rx"; interrupt-names = "tx", "rx";
dmas = <&sdma_xbar 133>, <&sdma_xbar 132>; dmas = <&sdma_xbar 133>, <&sdma_xbar 132>;
dma-names = "tx", "rx"; dma-names = "tx", "rx";
clocks = <&mcasp3_ahclkx_mux>; clocks = <&mcasp3_aux_gfclk_mux>, <&mcasp3_ahclkx_mux>;
clock-names = "fck"; clock-names = "fck", "ahclkx";
status = "disabled"; status = "disabled";
}; };

View File

@ -486,7 +486,10 @@ usbotg: usb@10024000 {
compatible = "fsl,imx27-usb"; compatible = "fsl,imx27-usb";
reg = <0x10024000 0x200>; reg = <0x10024000 0x200>;
interrupts = <56>; interrupts = <56>;
clocks = <&clks IMX27_CLK_USB_IPG_GATE>; clocks = <&clks IMX27_CLK_USB_IPG_GATE>,
<&clks IMX27_CLK_USB_AHB_GATE>,
<&clks IMX27_CLK_USB_DIV>;
clock-names = "ipg", "ahb", "per";
fsl,usbmisc = <&usbmisc 0>; fsl,usbmisc = <&usbmisc 0>;
status = "disabled"; status = "disabled";
}; };
@ -495,7 +498,10 @@ usbh1: usb@10024200 {
compatible = "fsl,imx27-usb"; compatible = "fsl,imx27-usb";
reg = <0x10024200 0x200>; reg = <0x10024200 0x200>;
interrupts = <54>; interrupts = <54>;
clocks = <&clks IMX27_CLK_USB_IPG_GATE>; clocks = <&clks IMX27_CLK_USB_IPG_GATE>,
<&clks IMX27_CLK_USB_AHB_GATE>,
<&clks IMX27_CLK_USB_DIV>;
clock-names = "ipg", "ahb", "per";
fsl,usbmisc = <&usbmisc 1>; fsl,usbmisc = <&usbmisc 1>;
dr_mode = "host"; dr_mode = "host";
status = "disabled"; status = "disabled";
@ -505,7 +511,10 @@ usbh2: usb@10024400 {
compatible = "fsl,imx27-usb"; compatible = "fsl,imx27-usb";
reg = <0x10024400 0x200>; reg = <0x10024400 0x200>;
interrupts = <55>; interrupts = <55>;
clocks = <&clks IMX27_CLK_USB_IPG_GATE>; clocks = <&clks IMX27_CLK_USB_IPG_GATE>,
<&clks IMX27_CLK_USB_AHB_GATE>,
<&clks IMX27_CLK_USB_DIV>;
clock-names = "ipg", "ahb", "per";
fsl,usbmisc = <&usbmisc 2>; fsl,usbmisc = <&usbmisc 2>;
dr_mode = "host"; dr_mode = "host";
status = "disabled"; status = "disabled";
@ -515,7 +524,6 @@ usbmisc: usbmisc@10024600 {
#index-cells = <1>; #index-cells = <1>;
compatible = "fsl,imx27-usbmisc"; compatible = "fsl,imx27-usbmisc";
reg = <0x10024600 0x200>; reg = <0x10024600 0x200>;
clocks = <&clks IMX27_CLK_USB_AHB_GATE>;
}; };
sahara2: sahara@10025000 { sahara2: sahara@10025000 {

View File

@ -154,7 +154,7 @@ flash: m25p80@0 {
&fec { &fec {
pinctrl-names = "default"; pinctrl-names = "default";
pinctrl-0 = <&pinctrl_enet>; pinctrl-0 = <&pinctrl_enet>;
phy-mode = "rgmii"; phy-mode = "rgmii-id";
phy-reset-gpios = <&gpio1 30 GPIO_ACTIVE_HIGH>; phy-reset-gpios = <&gpio1 30 GPIO_ACTIVE_HIGH>;
status = "okay"; status = "okay";
}; };

View File

@ -94,7 +94,7 @@ reg_usb_otg_vbus: regulator@2 {
&fec { &fec {
pinctrl-names = "default"; pinctrl-names = "default";
pinctrl-0 = <&pinctrl_enet>; pinctrl-0 = <&pinctrl_enet>;
phy-mode = "rgmii"; phy-mode = "rgmii-id";
phy-reset-gpios = <&gpio1 30 GPIO_ACTIVE_LOW>; phy-reset-gpios = <&gpio1 30 GPIO_ACTIVE_LOW>;
status = "okay"; status = "okay";
}; };

View File

@ -154,7 +154,7 @@ &can1 {
&fec { &fec {
pinctrl-names = "default"; pinctrl-names = "default";
pinctrl-0 = <&pinctrl_enet>; pinctrl-0 = <&pinctrl_enet>;
phy-mode = "rgmii"; phy-mode = "rgmii-id";
phy-reset-gpios = <&gpio1 30 GPIO_ACTIVE_LOW>; phy-reset-gpios = <&gpio1 30 GPIO_ACTIVE_LOW>;
status = "okay"; status = "okay";
}; };

View File

@ -155,7 +155,7 @@ &can1 {
&fec { &fec {
pinctrl-names = "default"; pinctrl-names = "default";
pinctrl-0 = <&pinctrl_enet>; pinctrl-0 = <&pinctrl_enet>;
phy-mode = "rgmii"; phy-mode = "rgmii-id";
phy-reset-gpios = <&gpio1 30 GPIO_ACTIVE_LOW>; phy-reset-gpios = <&gpio1 30 GPIO_ACTIVE_LOW>;
status = "okay"; status = "okay";
}; };

View File

@ -145,7 +145,7 @@ &can1 {
&fec { &fec {
pinctrl-names = "default"; pinctrl-names = "default";
pinctrl-0 = <&pinctrl_enet>; pinctrl-0 = <&pinctrl_enet>;
phy-mode = "rgmii"; phy-mode = "rgmii-id";
phy-reset-gpios = <&gpio1 30 GPIO_ACTIVE_LOW>; phy-reset-gpios = <&gpio1 30 GPIO_ACTIVE_LOW>;
status = "okay"; status = "okay";
}; };

View File

@ -113,14 +113,14 @@ backlight {
&clks { &clks {
assigned-clocks = <&clks IMX6QDL_PLL4_BYPASS_SRC>, assigned-clocks = <&clks IMX6QDL_PLL4_BYPASS_SRC>,
<&clks IMX6QDL_PLL4_BYPASS>, <&clks IMX6QDL_PLL4_BYPASS>,
<&clks IMX6QDL_CLK_PLL4_POST_DIV>,
<&clks IMX6QDL_CLK_LDB_DI0_SEL>, <&clks IMX6QDL_CLK_LDB_DI0_SEL>,
<&clks IMX6QDL_CLK_LDB_DI1_SEL>; <&clks IMX6QDL_CLK_LDB_DI1_SEL>,
<&clks IMX6QDL_CLK_PLL4_POST_DIV>;
assigned-clock-parents = <&clks IMX6QDL_CLK_LVDS2_IN>, assigned-clock-parents = <&clks IMX6QDL_CLK_LVDS2_IN>,
<&clks IMX6QDL_PLL4_BYPASS_SRC>, <&clks IMX6QDL_PLL4_BYPASS_SRC>,
<&clks IMX6QDL_CLK_PLL3_USB_OTG>, <&clks IMX6QDL_CLK_PLL3_USB_OTG>,
<&clks IMX6QDL_CLK_PLL3_USB_OTG>; <&clks IMX6QDL_CLK_PLL3_USB_OTG>;
assigned-clock-rates = <0>, <0>, <24576000>; assigned-clock-rates = <0>, <0>, <0>, <0>, <24576000>;
}; };
&ecspi1 { &ecspi1 {

View File

@ -137,7 +137,7 @@ netcp: netcp@26000000 {
/* NetCP address range */ /* NetCP address range */
ranges = <0 0x26000000 0x1000000>; ranges = <0 0x26000000 0x1000000>;
clocks = <&papllclk>, <&clkcpgmac>, <&chipclk12>; clocks = <&clkosr>, <&papllclk>, <&clkcpgmac>, <&chipclk12>;
dma-coherent; dma-coherent;
ti,navigator-dmas = <&dma_gbe 0>, ti,navigator-dmas = <&dma_gbe 0>,

View File

@ -40,7 +40,7 @@ serial@12100 {
}; };
poweroff@12100 { poweroff@12100 {
compatible = "qnap,power-off"; compatible = "qnap,power-off";
reg = <0x12000 0x100>; reg = <0x12100 0x100>;
clocks = <&gate_clk 7>; clocks = <&gate_clk 7>;
}; };
spi@10600 { spi@10600 {

View File

@ -189,3 +189,7 @@ hdmi_out: endpoint {
}; };
}; };
&uart3 {
interrupts-extended = <&wakeupgen GIC_SPI 74 IRQ_TYPE_LEVEL_HIGH
&omap4_pmx_core OMAP4_UART3_RX>;
};

View File

@ -86,6 +86,10 @@ vcc18_lcd: vcc18-lcd {
}; };
}; };
&emmc {
/delete-property/mmc-hs200-1_8v;
};
&gpio_keys { &gpio_keys {
pinctrl-0 = <&pwr_key_l &ap_lid_int_l &volum_down_l &volum_up_l>; pinctrl-0 = <&pwr_key_l &ap_lid_int_l &volum_down_l &volum_up_l>;

View File

@ -452,8 +452,10 @@ tsadc: tsadc@ff280000 {
clock-names = "tsadc", "apb_pclk"; clock-names = "tsadc", "apb_pclk";
resets = <&cru SRST_TSADC>; resets = <&cru SRST_TSADC>;
reset-names = "tsadc-apb"; reset-names = "tsadc-apb";
pinctrl-names = "default"; pinctrl-names = "init", "default", "sleep";
pinctrl-0 = <&otp_out>; pinctrl-0 = <&otp_gpio>;
pinctrl-1 = <&otp_out>;
pinctrl-2 = <&otp_gpio>;
#thermal-sensor-cells = <1>; #thermal-sensor-cells = <1>;
rockchip,hw-tshut-temp = <95000>; rockchip,hw-tshut-temp = <95000>;
status = "disabled"; status = "disabled";
@ -1395,6 +1397,10 @@ uart4_rts: uart4-rts {
}; };
tsadc { tsadc {
otp_gpio: otp-gpio {
rockchip,pins = <0 10 RK_FUNC_GPIO &pcfg_pull_none>;
};
otp_out: otp-out { otp_out: otp-out {
rockchip,pins = <0 10 RK_FUNC_1 &pcfg_pull_none>; rockchip,pins = <0 10 RK_FUNC_1 &pcfg_pull_none>;
}; };

View File

@ -49,7 +49,7 @@ pb_user1 {
label = "pb_user1"; label = "pb_user1";
gpios = <&pioE 27 GPIO_ACTIVE_HIGH>; gpios = <&pioE 27 GPIO_ACTIVE_HIGH>;
linux,code = <0x100>; linux,code = <0x100>;
gpio-key,wakeup; wakeup-source;
}; };
}; };
}; };

View File

@ -1300,7 +1300,7 @@ pit: timer@fc068630 {
}; };
watchdog@fc068640 { watchdog@fc068640 {
compatible = "atmel,at91sam9260-wdt"; compatible = "atmel,sama5d4-wdt";
reg = <0xfc068640 0x10>; reg = <0xfc068640 0x10>;
clocks = <&clk32k>; clocks = <&clk32k>;
status = "disabled"; status = "disabled";

View File

@ -25,9 +25,9 @@ L2: l2-cache {
cache-sets = <512>; cache-sets = <512>;
cache-line-size = <32>; cache-line-size = <32>;
/* At full speed latency must be >=2 */ /* At full speed latency must be >=2 */
arm,tag-latency = <2>; arm,tag-latency = <8>;
arm,data-latency = <2 2>; arm,data-latency = <8 8>;
arm,dirty-latency = <2>; arm,dirty-latency = <8>;
}; };
mtu0: mtu@101e2000 { mtu0: mtu@101e2000 {

View File

@ -83,6 +83,7 @@ ctp@5d {
reg = <0x5d>; reg = <0x5d>;
interrupt-parent = <&pio>; interrupt-parent = <&pio>;
interrupts = <0 3 IRQ_TYPE_LEVEL_HIGH>; /* PA3 */ interrupts = <0 3 IRQ_TYPE_LEVEL_HIGH>; /* PA3 */
touchscreen-swapped-x-y;
}; };
}; };

View File

@ -399,7 +399,7 @@ sdhci@0,700b0600 { /* eMMC on this bus */
/* CPU DFLL clock */ /* CPU DFLL clock */
clock@0,70110000 { clock@0,70110000 {
status = "okay"; status = "disabled";
vdd-cpu-supply = <&vdd_cpu>; vdd-cpu-supply = <&vdd_cpu>;
nvidia,i2c-fs-rate = <400000>; nvidia,i2c-fs-rate = <400000>;
}; };

View File

@ -115,7 +115,7 @@ user_pb {
label = "user_pb"; label = "user_pb";
gpios = <&pioB 10 GPIO_ACTIVE_LOW>; gpios = <&pioB 10 GPIO_ACTIVE_LOW>;
linux,code = <28>; linux,code = <28>;
gpio-key,wakeup; wakeup-source;
}; };
}; };

View File

@ -143,7 +143,7 @@ user_pb {
label = "user_pb"; label = "user_pb";
gpios = <&pioB 10 GPIO_ACTIVE_LOW>; gpios = <&pioB 10 GPIO_ACTIVE_LOW>;
linux,code = <28>; linux,code = <28>;
gpio-key,wakeup; wakeup-source;
}; };
}; };

View File

@ -110,7 +110,11 @@ sic: intc@10003000 {
interrupt-parent = <&vic>; interrupt-parent = <&vic>;
interrupts = <31>; /* Cascaded to vic */ interrupts = <31>; /* Cascaded to vic */
clear-mask = <0xffffffff>; clear-mask = <0xffffffff>;
valid-mask = <0xffc203f8>; /*
* Valid interrupt lines mask according to
* table 4-36 page 4-50 of ARM DUI 0225D
*/
valid-mask = <0x0760031b>;
}; };
dma@10130000 { dma@10130000 {
@ -266,8 +270,8 @@ aaci@4000 {
}; };
mmc@5000 { mmc@5000 {
compatible = "arm,pl180", "arm,primecell"; compatible = "arm,pl180", "arm,primecell";
reg = < 0x5000 0x1000>; reg = <0x5000 0x1000>;
interrupts-extended = <&vic 22 &sic 2>; interrupts-extended = <&vic 22 &sic 1>;
clocks = <&xtal24mhz>, <&pclk>; clocks = <&xtal24mhz>, <&pclk>;
clock-names = "mclk", "apb_pclk"; clock-names = "mclk", "apb_pclk";
}; };

View File

@ -5,6 +5,16 @@ / {
compatible = "arm,versatile-pb"; compatible = "arm,versatile-pb";
amba { amba {
/* The Versatile PB is using more SIC IRQ lines than the AB */
sic: intc@10003000 {
clear-mask = <0xffffffff>;
/*
* Valid interrupt lines mask according to
* figure 3-30 page 3-74 of ARM DUI 0224B
*/
valid-mask = <0x7fe003ff>;
};
gpio2: gpio@101e6000 { gpio2: gpio@101e6000 {
compatible = "arm,pl061", "arm,primecell"; compatible = "arm,pl061", "arm,primecell";
reg = <0x101e6000 0x1000>; reg = <0x101e6000 0x1000>;
@ -67,6 +77,13 @@ pci-controller@10001000 {
}; };
fpga { fpga {
mmc@5000 {
/*
* Overrides the interrupt assignment from
* the Versatile AB board file.
*/
interrupts-extended = <&sic 22 &sic 23>;
};
uart@9000 { uart@9000 {
compatible = "arm,pl011", "arm,primecell"; compatible = "arm,pl011", "arm,primecell";
reg = <0x9000 0x1000>; reg = <0x9000 0x1000>;
@ -86,7 +103,8 @@ sci@a000 {
mmc@b000 { mmc@b000 {
compatible = "arm,pl180", "arm,primecell"; compatible = "arm,pl180", "arm,primecell";
reg = <0xb000 0x1000>; reg = <0xb000 0x1000>;
interrupts-extended = <&vic 23 &sic 2>; interrupt-parent = <&sic>;
interrupts = <1>, <2>;
clocks = <&xtal24mhz>, <&pclk>; clocks = <&xtal24mhz>, <&pclk>;
clock-names = "mclk", "apb_pclk"; clock-names = "mclk", "apb_pclk";
}; };

View File

@ -18,8 +18,3 @@ memory {
reg = <0x80000000 0x10000000>; reg = <0x80000000 0x10000000>;
}; };
}; };
&L2 {
arm,data-latency = <2 1 2>;
arm,tag-latency = <3 2 3>;
};

View File

@ -19,7 +19,7 @@ L2: l2-cache@40006000 {
reg = <0x40006000 0x1000>; reg = <0x40006000 0x1000>;
cache-unified; cache-unified;
cache-level = <2>; cache-level = <2>;
arm,data-latency = <1 1 1>; arm,data-latency = <3 3 3>;
arm,tag-latency = <2 2 2>; arm,tag-latency = <2 2 2>;
}; };
}; };

View File

@ -158,7 +158,7 @@ dspi0: dspi0@4002c000 {
interrupts = <67 IRQ_TYPE_LEVEL_HIGH>; interrupts = <67 IRQ_TYPE_LEVEL_HIGH>;
clocks = <&clks VF610_CLK_DSPI0>; clocks = <&clks VF610_CLK_DSPI0>;
clock-names = "dspi"; clock-names = "dspi";
spi-num-chipselects = <5>; spi-num-chipselects = <6>;
status = "disabled"; status = "disabled";
}; };
@ -170,7 +170,7 @@ dspi1: dspi1@4002d000 {
interrupts = <68 IRQ_TYPE_LEVEL_HIGH>; interrupts = <68 IRQ_TYPE_LEVEL_HIGH>;
clocks = <&clks VF610_CLK_DSPI1>; clocks = <&clks VF610_CLK_DSPI1>;
clock-names = "dspi"; clock-names = "dspi";
spi-num-chipselects = <5>; spi-num-chipselects = <4>;
status = "disabled"; status = "disabled";
}; };
@ -178,8 +178,10 @@ sai2: sai@40031000 {
compatible = "fsl,vf610-sai"; compatible = "fsl,vf610-sai";
reg = <0x40031000 0x1000>; reg = <0x40031000 0x1000>;
interrupts = <86 IRQ_TYPE_LEVEL_HIGH>; interrupts = <86 IRQ_TYPE_LEVEL_HIGH>;
clocks = <&clks VF610_CLK_SAI2>; clocks = <&clks VF610_CLK_SAI2>,
clock-names = "sai"; <&clks VF610_CLK_SAI2_DIV>,
<&clks 0>, <&clks 0>;
clock-names = "bus", "mclk1", "mclk2", "mclk3";
dma-names = "tx", "rx"; dma-names = "tx", "rx";
dmas = <&edma0 0 21>, dmas = <&edma0 0 21>,
<&edma0 0 20>; <&edma0 0 20>;
@ -461,6 +463,8 @@ adc1: adc@400bb000 {
clock-names = "adc"; clock-names = "adc";
#io-channel-cells = <1>; #io-channel-cells = <1>;
status = "disabled"; status = "disabled";
fsl,adck-max-frequency = <30000000>, <40000000>,
<20000000>;
}; };
esdhc0: esdhc@400b1000 { esdhc0: esdhc@400b1000 {
@ -472,8 +476,6 @@ esdhc0: esdhc@400b1000 {
<&clks VF610_CLK_ESDHC0>; <&clks VF610_CLK_ESDHC0>;
clock-names = "ipg", "ahb", "per"; clock-names = "ipg", "ahb", "per";
status = "disabled"; status = "disabled";
fsl,adck-max-frequency = <30000000>, <40000000>,
<20000000>;
}; };
esdhc1: esdhc@400b2000 { esdhc1: esdhc@400b2000 {

View File

@ -187,6 +187,15 @@ uhci@d8007b00 {
interrupts = <43>; interrupts = <43>;
}; };
sdhc@d800a000 {
compatible = "wm,wm8505-sdhc";
reg = <0xd800a000 0x400>;
interrupts = <20>, <21>;
clocks = <&clksdhc>;
bus-width = <4>;
sdon-inverted;
};
fb: fb@d8050800 { fb: fb@d8050800 {
compatible = "wm,wm8505-fb"; compatible = "wm,wm8505-fb";
reg = <0xd8050800 0x200>; reg = <0xd8050800 0x200>;

View File

@ -125,7 +125,6 @@ CONFIG_POWER_RESET=y
# CONFIG_HWMON is not set # CONFIG_HWMON is not set
CONFIG_WATCHDOG=y CONFIG_WATCHDOG=y
CONFIG_AT91SAM9X_WATCHDOG=y CONFIG_AT91SAM9X_WATCHDOG=y
CONFIG_SSB=m
CONFIG_MFD_ATMEL_HLCDC=y CONFIG_MFD_ATMEL_HLCDC=y
CONFIG_REGULATOR=y CONFIG_REGULATOR=y
CONFIG_REGULATOR_FIXED_VOLTAGE=y CONFIG_REGULATOR_FIXED_VOLTAGE=y

View File

@ -366,6 +366,7 @@ CONFIG_BATTERY_MAX17042=m
CONFIG_CHARGER_MAX14577=m CONFIG_CHARGER_MAX14577=m
CONFIG_CHARGER_MAX77693=m CONFIG_CHARGER_MAX77693=m
CONFIG_CHARGER_TPS65090=y CONFIG_CHARGER_TPS65090=y
CONFIG_AXP20X_POWER=m
CONFIG_POWER_RESET_AS3722=y CONFIG_POWER_RESET_AS3722=y
CONFIG_POWER_RESET_GPIO=y CONFIG_POWER_RESET_GPIO=y
CONFIG_POWER_RESET_GPIO_RESTART=y CONFIG_POWER_RESET_GPIO_RESTART=y

Some files were not shown because too many files have changed in this diff Show More