phy: exynos-video-mipi: Fix regression by adding support for PMU regmap
authorSylwester Nawrocki <s.nawrocki@samsung.com>
Fri, 16 Jan 2015 17:30:37 +0000 (18:30 +0100)
committerKishon Vijay Abraham I <kishon@ti.com>
Fri, 30 Jan 2015 10:36:48 +0000 (16:06 +0530)
commite4b3d38088df6f3acd40259c8ec32c9bd3bfe3da
treeb95d215c79ce0d6d620155ca3f38f729c6a5cbfd
parent64d11406de2eac7330d8905ac064d62befe5a0b0
phy: exynos-video-mipi: Fix regression by adding support for PMU regmap

After the Exynos Power Management Unit (PMU) driver was converted
to the platform device driver in commit 14fc8b93d47323561edf5d482
("ARM: EXYNOS: Add platform driver support for Exynos PMU") and
then PMU device nodes added to Exynos4 DTs in commit
7b9613aca42a5522d269 ("ARM: dts: add PMU syscon node for exynos4")
the mipi video phy driver started failing probing, due to overlapping
memory mapped register region resources.

Now all the Exynos peripheral devices which have registers in the PMU
region are supposed to use the regmap provided by the syscon driver.
So support for regmap is added in this patch, this unfortunately
creates yet another indirection into that supposedly trivial driver.

The additional mutex is required because single register is used by
PHY pairs (they share bit in a register). An improvement here could
be to allow a PHY instance be created with a driver custom mutex,
which would then be common for each PHY pair. This would eliminate
one of 3 mutexes which need to be taken in the phy_power_on/
phy_power_off code path. However, I tried to keep this bug fix patch
possibly simple.

This change is needed to make MIPI DSI displays and MIPI CSI-2
camera sensors working again on Exynos4 boards.

Cc: Pankaj Dubey <pankaj.dubey@samsung.com>
Cc: Kukjin Kim <kgene.kim@samsung.com>
Signed-off-by: Sylwester Nawrocki <s.nawrocki@samsung.com>
Signed-off-by: Kishon Vijay Abraham I <kishon@ti.com>
Documentation/devicetree/bindings/phy/samsung-phy.txt
drivers/phy/phy-exynos-mipi-video.c
include/linux/mfd/syscon/exynos4-pmu.h [new file with mode: 0644]