android_kernel_oneplus_msm8998/arch/arm
Mugunthan V N 958df498a6 ARM: dts: dra7: do not gate cpsw clock due to errata i877
commit 0f514e690740e54815441a87708c3326f8aa8709 upstream.

Errata id: i877

Description:
------------
The RGMII 1000 Mbps Transmit timing is based on the output clock
(rgmiin_txc) being driven relative to the rising edge of an internal
clock and the output control/data (rgmiin_txctl/txd) being driven relative
to the falling edge of an internal clock source. If the internal clock
source is allowed to be static low (i.e., disabled) for an extended period
of time then when the clock is actually enabled the timing delta between
the rising edge and falling edge can change over the lifetime of the
device. This can result in the device switching characteristics degrading
over time, and eventually failing to meet the Data Manual Delay Time/Skew
specs.
To maintain RGMII 1000 Mbps IO Timings, SW should minimize the
duration that the Ethernet internal clock source is disabled. Note that
the device reset state for the Ethernet clock is "disabled".
Other RGMII modes (10 Mbps, 100Mbps) are not affected

Workaround:
-----------
If the SoC Ethernet interface(s) are used in RGMII mode at 1000 Mbps,
SW should minimize the time the Ethernet internal clock source is disabled
to a maximum of 200 hours in a device life cycle. This is done by enabling
the clock as early as possible in IPL (QNX) or SPL/u-boot (Linux/Android)
by setting the register CM_GMAC_CLKSTCTRL[1:0]CLKTRCTRL = 0x2:SW_WKUP.

So, do not allow to gate the cpsw clocks using ti,no-idle property in
cpsw node assuming 1000 Mbps is being used all the time. If someone does
not need 1000 Mbps and wants to gate clocks to cpsw, this property needs
to be deleted in their respective board files.

Signed-off-by: Mugunthan V N <mugunthanvnm@ti.com>
Signed-off-by: Grygorii Strashko <grygorii.strashko@ti.com>
Signed-off-by: Lokesh Vutla <lokeshvutla@ti.com>
Signed-off-by: Paul Walmsley <paul@pwsan.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2016-03-16 08:42:57 -07:00
..
boot ARM: dts: dra7: do not gate cpsw clock due to errata i877 2016-03-16 08:42:57 -07:00
common ARM: 8517/1: ICST: avoid arithmetic overflow in icst_hz() 2016-02-25 12:01:19 -08:00
configs ARM: Fix broken USB support in multi_v7_defconfig for sunxi devices 2016-01-07 16:02:19 +01:00
crypto
firmware
include xen/arm: correctly handle DMA mapping of compound pages 2016-03-03 15:07:30 -08:00
kernel [PATCH] arm: fix handling of F_OFD_... in oabi_fcntl64() 2015-12-29 13:04:21 -05:00
kvm arm/arm64: KVM: Fix ioctl error handling 2016-03-09 15:34:51 -08:00
lib ARM: fix uaccess_with_memcpy() with SW_DOMAIN_PAN 2015-12-15 11:51:02 +00:00
mach-alpine
mach-asm9260
mach-at91 ARM: at91: fix pinctrl driver selection 2015-12-04 18:54:53 +01:00
mach-axxia
mach-bcm ARM: SoC platform updates for v4.4 2015-11-10 14:56:23 -08:00
mach-berlin arm: berlin: add CPU hotplug support 2015-10-15 21:14:28 +02:00
mach-clps711x
mach-cns3xxx
mach-davinci ARM: SoC non-urgent fixes for v4.4 2015-11-10 14:45:05 -08:00
mach-digicolor ARM: digicolor: select pinctrl/gpio driver 2015-10-15 22:27:30 +02:00
mach-dove ARM: dove: Fix legacy get_irqnr_and_base 2015-11-25 14:59:12 +00:00
mach-ebsa110
mach-efm32
mach-ep93xx
mach-exynos ARM: EXYNOS: Fix potential NULL pointer access in exynos_sys_powerdown_conf 2015-11-17 13:32:56 +09:00
mach-footbridge
mach-gemini ARM: gemini: remove unnecessary mdio-gpio includes 2015-10-21 19:50:43 -07:00
mach-highbank
mach-hisi
mach-imx ARM: imx: add platform irq type setting in gpc 2015-11-23 13:12:07 +08:00
mach-integrator
mach-iop13xx
mach-iop32x
mach-iop33x
mach-ixp4xx ARM: ixp4xx: fix read{b,w,l} return types 2015-12-01 23:45:30 +01:00
mach-keystone
mach-ks8695
mach-lpc18xx
mach-lpc32xx
mach-mediatek ARM: SoC platform updates for v4.4 2015-11-10 14:56:23 -08:00
mach-meson
mach-mmp
mach-moxart
mach-mv78xx0
mach-mvebu ARM: SoC platform updates for v4.4 2015-11-10 14:56:23 -08:00
mach-mxs
mach-netx
mach-nomadik
mach-nspire
mach-omap1
mach-omap2 ARM: OMAP2+: Fix onenand initialization to avoid filesystem corruption 2016-03-03 15:07:29 -08:00
mach-orion5x ARM: orion5x: Fix legacy get_irqnr_and_base 2015-11-25 15:01:00 +00:00
mach-picoxcell
mach-prima2 ARM: Remove __ref on hotplug cpu die path 2015-10-22 09:55:03 -07:00
mach-pxa ARM: pxa: use PWM lookup table for all machines 2015-12-11 00:27:58 +01:00
mach-qcom ARM: Remove __ref on hotplug cpu die path 2015-10-22 09:55:03 -07:00
mach-realview ARM: Remove __ref on hotplug cpu die path 2015-10-22 09:55:03 -07:00
mach-rockchip
mach-rpc
mach-s3c24xx cpufreq: s3c24xx: Do not mark s3c2410_plls_add as __init 2015-11-27 10:10:32 +09:00
mach-s3c64xx ARM: SoC platform updates for v4.4 2015-11-10 14:56:23 -08:00
mach-s5pv210
mach-sa1100
mach-shmobile ARM: shmobile: r8a7793: proper constness with __initconst 2015-11-22 17:13:13 -08:00
mach-socfpga
mach-spear ARM: SoC cleanups for v4.4 2015-11-10 14:48:36 -08:00
mach-sti
mach-stm32
mach-sunxi ARM: SoC platform updates for v4.4 2015-11-10 14:56:23 -08:00
mach-tegra ARM: SoC platform updates for v4.4 2015-11-10 14:56:23 -08:00
mach-u300 spi: Updates for v4.4 2015-11-05 13:15:12 -08:00
mach-uniphier ARM: uniphier: rework SMP operations to use trampoline code 2015-10-27 09:20:53 +09:00
mach-ux500 ARM: SoC cleanups for v4.4 2015-11-10 14:48:36 -08:00
mach-versatile
mach-vexpress ARM: Remove __ref on hotplug cpu die path 2015-10-22 09:55:03 -07:00
mach-vt8500
mach-w90x900
mach-zx ARM: zx: only build power domain code when CONFIG_PM=y 2015-11-19 16:16:45 +01:00
mach-zynq
mm Merge branch 'libnvdimm-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/nvdimm/nvdimm 2015-12-17 11:20:13 -08:00
net ARM: net: bpf: fix zero right shift 2016-01-06 01:32:09 -05:00
nwfpe
oprofile
plat-iop
plat-omap
plat-orion
plat-pxa
plat-samsung
plat-versatile
probes
tools
vdso ARM: 8449/1: fix bug in vdsomunge swab32 macro 2015-10-29 15:20:15 +00:00
vfp
xen mm, page_alloc: distinguish between being unable to sleep, unwilling to sleep and avoiding waking kswapd 2015-11-06 17:50:42 -08:00
Kconfig ARM: 8454/1: OF implies OF_FLATTREE 2015-11-28 23:26:12 +00:00
Kconfig-nommu
Kconfig.debug ARM: debug-ll: fix BCM63xx entry for multiplatform 2016-03-03 15:07:08 -08:00
Makefile