diff options
| author | David S. Miller <davem@davemloft.net> | 2016-01-15 14:40:04 -0500 | 
|---|---|---|
| committer | David S. Miller <davem@davemloft.net> | 2016-01-15 14:40:04 -0500 | 
| commit | 628a96e7d3b684baf5584462de32345e997d7dbe (patch) | |
| tree | 90d57803a4e5bbb6968fb42f4192530f827439d8 | |
| parent | 9207f9d45b0ad071baa128e846d7e7ed85016df3 (diff) | |
| parent | 28052e75834a84b006893735debedb8ee6b6cbc0 (diff) | |
Merge branch 'hisi-fixes'
Kejian Yan says:
====================
dts: hisi: fixes no syscon fault when init mdio
This patchset fixes the bug that eth can't initial successful on hip05-D02
because the dts files doesn't match the source code.
====================
Signed-off-by: David S. Miller <davem@davemloft.net>
| -rw-r--r-- | Documentation/devicetree/bindings/arm/hisilicon/hisilicon.txt | 16 | ||||
| -rw-r--r-- | arch/arm64/boot/dts/hisilicon/hip05.dtsi | 5 | ||||
| -rw-r--r-- | arch/arm64/boot/dts/hisilicon/hip05_hns.dtsi | 4 | ||||
| -rw-r--r-- | drivers/net/ethernet/hisilicon/hns_mdio.c | 2 | 
4 files changed, 24 insertions, 3 deletions
| diff --git a/Documentation/devicetree/bindings/arm/hisilicon/hisilicon.txt b/Documentation/devicetree/bindings/arm/hisilicon/hisilicon.txt index 6ac7c000af22..e3ccab114006 100644 --- a/Documentation/devicetree/bindings/arm/hisilicon/hisilicon.txt +++ b/Documentation/devicetree/bindings/arm/hisilicon/hisilicon.txt @@ -187,6 +187,22 @@ Example:  		reg = <0xb0000000 0x10000>;  	}; +Hisilicon HiP05 PERISUB system controller + +Required properties: +- compatible : "hisilicon,hip05-perisubc", "syscon"; +- reg : Register address and size + +The HiP05 PERISUB system controller is shared by peripheral controllers in +HiP05 Soc to implement some basic configurations. The peripheral +controllers include mdio, ddr, iic, uart, timer and so on. + +Example: +	/* for HiP05 perisub-ctrl-c system */ +	peri_c_subctrl: syscon@80000000 { +		compatible = "hisilicon,hip05-perisubc", "syscon"; +		reg = <0x0 0x80000000 0x0 0x10000>; +	};  -----------------------------------------------------------------------  Hisilicon CPU controller diff --git a/arch/arm64/boot/dts/hisilicon/hip05.dtsi b/arch/arm64/boot/dts/hisilicon/hip05.dtsi index 4ff16d016e34..c1ea999c7be1 100644 --- a/arch/arm64/boot/dts/hisilicon/hip05.dtsi +++ b/arch/arm64/boot/dts/hisilicon/hip05.dtsi @@ -246,6 +246,11 @@  			clock-frequency = <200000000>;  		}; +		peri_c_subctrl: syscon@80000000 { +			compatible = "hisilicon,hip05-perisubc", "syscon"; +			reg = < 0x0 0x80000000 0x0 0x10000>; +		}; +  		uart0: uart@80300000 {  			compatible = "snps,dw-apb-uart";  			reg = <0x0 0x80300000 0x0 0x10000>; diff --git a/arch/arm64/boot/dts/hisilicon/hip05_hns.dtsi b/arch/arm64/boot/dts/hisilicon/hip05_hns.dtsi index 606dd5a05c2d..da7b6e613257 100644 --- a/arch/arm64/boot/dts/hisilicon/hip05_hns.dtsi +++ b/arch/arm64/boot/dts/hisilicon/hip05_hns.dtsi @@ -10,8 +10,8 @@ soc0: soc@000000000 {  		#address-cells = <1>;  		#size-cells = <0>;  		compatible = "hisilicon,hns-mdio"; -		reg = <0x0 0x803c0000 0x0 0x10000 -		       0x0 0x80000000 0x0 0x10000>; +		reg = <0x0 0x803c0000 0x0 0x10000>; +		subctrl-vbase = <&peri_c_subctrl>;  		soc0_phy0: ethernet-phy@0 {  			reg = <0x0>; diff --git a/drivers/net/ethernet/hisilicon/hns_mdio.c b/drivers/net/ethernet/hisilicon/hns_mdio.c index 58c96c412fe8..765ddb3dcd1a 100644 --- a/drivers/net/ethernet/hisilicon/hns_mdio.c +++ b/drivers/net/ethernet/hisilicon/hns_mdio.c @@ -458,7 +458,7 @@ static int hns_mdio_probe(struct platform_device *pdev)  	}  	mdio_dev->subctrl_vbase = -		syscon_node_to_regmap(of_parse_phandle(np, "subctrl_vbase", 0)); +		syscon_node_to_regmap(of_parse_phandle(np, "subctrl-vbase", 0));  	if (IS_ERR(mdio_dev->subctrl_vbase)) {  		dev_warn(&pdev->dev, "no syscon hisilicon,peri-c-subctrl\n");  		mdio_dev->subctrl_vbase = NULL; | 
