diff options
author | Heiko Stuebner <heiko@sntech.de> | 2016-03-24 17:29:02 -0400 |
---|---|---|
committer | Kishon Vijay Abraham I <kishon@ti.com> | 2016-04-13 09:03:05 -0400 |
commit | 332184adff50de9596f03735496c545e8bccc73e (patch) | |
tree | 70dbaab2e4ef99b7f7b874ad217fa6c532fd9520 | |
parent | 0311c76e4722b8d6e5fa47eaee63c6552bcc74f5 (diff) |
phy: rockchip-emmc: should be a child device of the GRF
The emmc-phy is fully enclosed in the general register files (GRF).
Therefore as seen from the device-tree it shouldn't be a separate platform-
device but instead a sub-device of the GRF - using the simply-mfd mechanism.
The driver entered the kernel in the current merge-window, so we can still
adapt the binding without needing a fallback, as the binding hasn't been
released with a full kernel yet.
Signed-off-by: Heiko Stuebner <heiko@sntech.de>
Acked-by: Rob Herring <robh@kernel.org>
Reviewed-by: Shawn Lin <shawn.lin@rock-chips.com>
Signed-off-by: Kishon Vijay Abraham I <kishon@ti.com>
-rw-r--r-- | Documentation/devicetree/bindings/phy/rockchip-emmc-phy.txt | 18 | ||||
-rw-r--r-- | drivers/phy/phy-rockchip-emmc.c | 5 |
2 files changed, 15 insertions, 8 deletions
diff --git a/Documentation/devicetree/bindings/phy/rockchip-emmc-phy.txt b/Documentation/devicetree/bindings/phy/rockchip-emmc-phy.txt index 61916f15a949..461e9580aa45 100644 --- a/Documentation/devicetree/bindings/phy/rockchip-emmc-phy.txt +++ b/Documentation/devicetree/bindings/phy/rockchip-emmc-phy.txt | |||
@@ -3,17 +3,21 @@ Rockchip EMMC PHY | |||
3 | 3 | ||
4 | Required properties: | 4 | Required properties: |
5 | - compatible: rockchip,rk3399-emmc-phy | 5 | - compatible: rockchip,rk3399-emmc-phy |
6 | - rockchip,grf : phandle to the syscon managing the "general | ||
7 | register files" | ||
8 | - #phy-cells: must be 0 | 6 | - #phy-cells: must be 0 |
9 | - reg: PHY configure reg address offset in "general | 7 | - reg: PHY configure reg address offset in "general |
10 | register files" | 8 | register files" |
11 | 9 | ||
12 | Example: | 10 | Example: |
13 | 11 | ||
14 | emmcphy: phy { | 12 | |
15 | compatible = "rockchip,rk3399-emmc-phy"; | 13 | grf: syscon@ff770000 { |
16 | rockchip,grf = <&grf>; | 14 | compatible = "rockchip,rk3399-grf", "syscon", "simple-mfd"; |
17 | reg = <0xf780>; | 15 | |
18 | #phy-cells = <0>; | 16 | ... |
17 | |||
18 | emmcphy: phy@f780 { | ||
19 | compatible = "rockchip,rk3399-emmc-phy"; | ||
20 | reg = <0xf780>; | ||
21 | #phy-cells = <0>; | ||
22 | }; | ||
19 | }; | 23 | }; |
diff --git a/drivers/phy/phy-rockchip-emmc.c b/drivers/phy/phy-rockchip-emmc.c index 887b4c27195f..6ebcf3e41c46 100644 --- a/drivers/phy/phy-rockchip-emmc.c +++ b/drivers/phy/phy-rockchip-emmc.c | |||
@@ -176,7 +176,10 @@ static int rockchip_emmc_phy_probe(struct platform_device *pdev) | |||
176 | struct regmap *grf; | 176 | struct regmap *grf; |
177 | unsigned int reg_offset; | 177 | unsigned int reg_offset; |
178 | 178 | ||
179 | grf = syscon_regmap_lookup_by_phandle(dev->of_node, "rockchip,grf"); | 179 | if (!dev->parent || !dev->parent->of_node) |
180 | return -ENODEV; | ||
181 | |||
182 | grf = syscon_node_to_regmap(dev->parent->of_node); | ||
180 | if (IS_ERR(grf)) { | 183 | if (IS_ERR(grf)) { |
181 | dev_err(dev, "Missing rockchip,grf property\n"); | 184 | dev_err(dev, "Missing rockchip,grf property\n"); |
182 | return PTR_ERR(grf); | 185 | return PTR_ERR(grf); |