ARM: dts: Fold exynos5250-cros-common into exynos5250-snow

exynos5250-cros-common.dtsi was meant for sharing common pieces across
ChromeOS devices. This turned out premature, as several devices ended up
in the common file that are not common after all. Since the remaining
common ChromeOS pieces are fairly minor,  exynos5250-cros-common.dtsi
was requested to be merged into the Snow device tree, sharing only the
keyboard controller for now. This may be re-evaluated as both mature.

Suggested-by: Doug Anderson <dianders@chromium.org>
Reviewed-by: Tomasz Figa <t.figa@samsung.com>
Signed-off-by: Andreas Faerber <afaerber@suse.de>
Reviewed-by: Doug Anderson <dianders@chromium.org>
Signed-off-by: Kukjin Kim <kgene.kim@samsung.com>
ARM: dts: unuse the slot-node and deprecate the supports-highspeed for dw-mmc in exynos

dw-mmc controller can support multiple slots.
But, there are no use-cases anywhere. So we don't need to support the
slot-node for dw-mmc controller.
And "supports-highspeed" property in dw-mmc is deprecated.
"supports-highspeed" property can be replaced with "cap-sd/mmc-highspeed".

Signed-off-by: Jaehoon Chung <jh80.chung@samsung.com>
Reviewed-by: Tushar Behera <trblinux@gmail.com>
Reviewed-by: Ulf Hansson <ulf.hansson@linaro.org>
Tested-by: Sachin Kamat <sachin.kamat@samsung.com>
[kgene.kim@samsung.com: rebased exynos5250-snow changes]
Signed-off-by: Kukjin Kim <kgene.kim@samsung.com>
ARM: dts: Improve Peach Pit and Pi power scheme

The DeviceTree files for the Peach Pit and Pi machines have
a simplistic model of the connections between the different
regulators since not all the tps65090 regulators get their
input supply voltage from the VDC. DCDC1-3, LD0-1 and fet7
parent supply is indded VDC but the fet1-6 get their input
supply from the DCDC1 and DCDC2 output voltage rails.

Update the DeviceTree to better reflect the real connections
between tps65090 regulators. Having this information in the
DTS is useful since FETs are switches that don't provide an
output voltage so the regulator core needs to fetch the FET
parent output voltage if the child voltage is queried.

Signed-off-by: Javier Martinez Canillas <javier.martinez@collabora.co.uk>
Acked-by: Mark Brown <broonie@linaro.org>
Acked-by: Doug Anderson <dianders@chromium.org>
Signed-off-by: Kukjin Kim <kgene.kim@samsung.com>
Merge branch 'v3.18-next/dt-samsung' into for-next
ARM: dts: Prepare node labels for exynos5250

Allows them to be extended by reference.

Reviewed-by: Doug Anderson <dianders@chromium.org>
[AF: Dropped uart* labels]
Signed-off-by: Andreas Färber <afaerber@suse.de>
ARM: dts: Clean up exynos5250-snow

Use the new style of referencing inherited nodes and use symbolic names.
Reorder one pinctrl node in GPIO order.

Goal is the alignment of all exynos5250 based device trees for comparison.

Suggested-by: Doug Anderson <dianders@chromium.org>
Reviewed-by: Doug Anderson <dianders@chromium.org>
Reviewed-by: Tomasz Figa <t.figa@samsung.com>
[AF: Rebased onto v3.17-rc1: MMC slot node dropped, SPI cs-gpio moved]
Signed-off-by: Andreas Färber <afaerber@suse.de>
ARM: dts: Fill in bootargs for exynos5250-snow

exynos5250-cros-common.dtsi had an empty /chosen node.
Fill in exemplary boot arguments.

Reviewed-by: Tomasz Figa <t.figa@samsung.com>
Signed-off-by: Andreas Färber <afaerber@suse.de>
ARM: dts: Clean up exynos5250-smdk5250

Use the new style for referencing inherited nodes and use symbolic names.

Goal is the alignment of all exynos5250 based device trees for comparison.

Reviewed-by: Tomasz Figa <t.figa@samsung.com>
[AF: Rebased onto v3.17-rc1: MMC slot node dropped]
Signed-off-by: Andreas Färber <afaerber@suse.de>
ARM: dts: Clean up exynos5250-arndale

Use the new style of referencing inherited nodes, use symbolic names,
tidy indentation and reorder includes.

Goal is the alignment of all exynos5250 based device trees for comparison.

Reviewed-by: Tomasz Figa <t.figa@samsung.com>
[AF: Rebased onto v3.17-rc1: MMC slot node dropped]
Signed-off-by: Andreas Färber <afaerber@suse.de>
ARM: dts: Fix apparent GPIO typo in exynos5250-arndale

The GPIO flag 2 has no constant assigned, so this was probably active-low.

Reviewed-by: Tomasz Figa <t.figa@samsung.com>
Signed-off-by: Andreas Färber <afaerber@suse.de>
ARM: dts: Simplify USB3503 on exynos5250-arndale

There's no need for a simple-bus, place the smsc,usb3503a directly into
the root node. That's what we're going to do on exynos5250-spring.

Reported-by: Tomasz Figa <t.figa@samsung.com>
Reviewed-by: Tomasz Figa <t.figa@samsung.com>
Signed-off-by: Andreas Färber <afaerber@suse.de>
ARM: dts: Add exynos5250-spring device tree

Adds initial support for the HP Chromebook 11.

Cc: Vincent Palatin <vpalatin@chromium.org>
Cc: Stephan van Schaik <stephan@synkhronix.com>
Reviewed-by: Tomasz Figa <t.figa@samsung.com>
Reviewed-by: Doug Anderson <dianders@chromium.org>
[AF: Rebased onto v3.17-rc1: MMC slot node dropped]
Signed-off-by: Andreas Färber <afaerber@suse.de>
TEST_ONLY: Disable dp-controller node

Allows to use simplefb rather than exynos drm.

Signed-off-by: Andreas Färber <afaerber@suse.de>
mmc: dw_mmc: Make sure we don't get stuck when we get an error

If we happened to get a data error at just the wrong time the dw_mmc
driver could get into a state where it would never complete its
request.  That would leave the caller just hanging there.

We fix this two ways and both of the two fixes on their own appear to
fix the problems we've seen:

1. Fix a race in the tasklet where the interrupt setting the data
   error happens _just after_ we check for it, then we get a
   EVENT_XFER_COMPLETE.  We fix this by repeating a bit of code.
2. Fix it so that if we detect that we've got an error in the "data
   busy" state and we're not going to do anything else we end the
   request and unblock anyone waiting.

Signed-off-by: Doug Anderson <dianders@chromium.org>
Signed-off-by: Yuvaraj Kumar C D <yuvaraj.cd@gmail.com>
Acked-by: Seungwon Jeon <tgih.jun@samsung.com>
Input: cros_ec_keyb: Optimize ghosting algorithm.

Previous algorithm was a bit conservative and complicating with
respect to identifying key ghosting.  This CL uses the bitops hamming
weight function (hweight8) to count the number of matching rows for
colM & colN.  If that number is > 1 ghosting is present.

Additionally it removes NULL keys and our one virtual keypress
KEY_BATTERY from consideration as these inputs are never physical
keypresses.

Signed-off-by: Todd Broch <tbroch@chromium.org>
Reviewed-by: Vincent Palatin <vpalatin@chromium.org>
Reviewed-by: Luigi Semenzato <semenzato@chromium.org>
Signed-off-by: Andreas Färber <afaerber@suse.de>
ARM: dts: Add DT changes for display on snow

Add DT nodes for ptn3460 bridge chip and panel-simple panel.
Add backlight enable pin and backlight power supply for pwm-backlight.
Also add bridge phandle needed by dp to enable display on snow.

Signed-off-by: Ajay Kumar <ajaykumar.rs@samsung.com>
[AF: Rebased onto Snow cleanup, use symbolic names]
Signed-off-by: Andreas Färber <afaerber@suse.de>
Revert "Disable dp-controller node"
ARM: dts: exynos5250: Add eDP/LVDS bridge to Spring

Signed-off-by: Ajay Kumar <ajaykumar.rs@samsung.com>
[AF: Redone for v6]
Signed-off-by: Andreas Färber <afaerber@suse.de>
TEST_ONLY: Disable dp-controller, lvds-bridge, panel

Signed-off-by: Andreas Färber <afaerber@suse.de>
ARM: dts: exynos5250: Add trackpad to Spring

Signed-off-by: Andreas Färber <andreas.faerber@web.de>