From: Rajan Vaja Date: Fri, 23 Feb 2018 13:31:13 +0000 (-0800) Subject: drivers: pinctrl: Update ZynqMP pin control driver X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=9c019df7be911d2d6cd82c42ff783f46f679368f;p=thirdparty%2Fu-boot.git drivers: pinctrl: Update ZynqMP pin control driver Replace existng pin control driver with a new version of ZyqnMP pin control driver. This driver queries pin information from firmware and registers pin control accordingly instead of using hard coded pin info. New pin control driver creates group name from function name by adding postfix so some group names are different than existing group names. Deprecate old pin control driver and its DT bindings and use new pin control DT binding in device tree. Signed-off-by: Rajan Vaja Signed-off-by: Michal Simek --- diff --git a/arch/arm/dts/zynqmp-zc1751-xm015-dc1.dts b/arch/arm/dts/zynqmp-zc1751-xm015-dc1.dts index 8601b3b156d..142c0a4692a 100644 --- a/arch/arm/dts/zynqmp-zc1751-xm015-dc1.dts +++ b/arch/arm/dts/zynqmp-zc1751-xm015-dc1.dts @@ -241,12 +241,12 @@ }; mux-cd { - groups = "sdio0_0_cd_grp"; + groups = "sdio0_cd_0_grp"; function = "sdio0_cd"; }; conf-cd { - groups = "sdio0_0_cd_grp"; + groups = "sdio0_cd_0_grp"; bias-high-impedance; bias-pull-up; slew-rate = ; @@ -254,12 +254,12 @@ }; mux-wp { - groups = "sdio0_0_wp_grp"; + groups = "sdio0_wp_0_grp"; function = "sdio0_wp"; }; conf-wp { - groups = "sdio0_0_wp_grp"; + groups = "sdio0_wp_0_grp"; bias-high-impedance; bias-pull-up; slew-rate = ; @@ -281,12 +281,12 @@ }; mux-cd { - groups = "sdio1_0_cd_grp"; + groups = "sdio1_cd_0_grp"; function = "sdio1_cd"; }; conf-cd { - groups = "sdio1_0_cd_grp"; + groups = "sdio1_cd_0_grp"; bias-high-impedance; bias-pull-up; slew-rate = ; @@ -294,12 +294,12 @@ }; mux-wp { - groups = "sdio1_0_wp_grp"; + groups = "sdio1_wp_0_grp"; function = "sdio1_wp"; }; conf-wp { - groups = "sdio1_0_wp_grp"; + groups = "sdio1_wp_0_grp"; bias-high-impedance; bias-pull-up; slew-rate = ; diff --git a/arch/arm/dts/zynqmp-zc1751-xm016-dc2.dts b/arch/arm/dts/zynqmp-zc1751-xm016-dc2.dts index 5b9903b4e4d..79535c3d806 100644 --- a/arch/arm/dts/zynqmp-zc1751-xm016-dc2.dts +++ b/arch/arm/dts/zynqmp-zc1751-xm016-dc2.dts @@ -395,32 +395,32 @@ }; mux-ce { - groups = "nand0_0_ce_grp"; + groups = "nand0_ce_0_grp"; function = "nand0_ce"; }; conf-ce { - groups = "nand0_0_ce_grp"; + groups = "nand0_ce_0_grp"; bias-pull-up; }; mux-rb { - groups = "nand0_0_rb_grp"; + groups = "nand0_rb_0_grp"; function = "nand0_rb"; }; conf-rb { - groups = "nand0_0_rb_grp"; + groups = "nand0_rb_0_grp"; bias-pull-up; }; mux-dqs { - groups = "nand0_0_dqs_grp"; + groups = "nand0_dqs_0_grp"; function = "nand0_dqs"; }; conf-dqs { - groups = "nand0_0_dqs_grp"; + groups = "nand0_dqs_0_grp"; bias-pull-up; }; }; @@ -439,14 +439,14 @@ }; mux-cs { - groups = "spi0_0_ss0_grp", "spi0_0_ss1_grp", - "spi0_0_ss2_grp"; + groups = "spi0_ss_0_grp", "spi0_ss_1_grp", + "spi0_ss_2_grp"; function = "spi0_ss"; }; conf-cs { - groups = "spi0_0_ss0_grp", "spi0_0_ss1_grp", - "spi0_0_ss2_grp"; + groups = "spi0_ss_0_grp", "spi0_ss_1_grp", + "spi0_ss_2_grp"; bias-disable; }; }; @@ -465,14 +465,14 @@ }; mux-cs { - groups = "spi1_3_ss0_grp", "spi1_3_ss1_grp", - "spi1_3_ss2_grp"; + groups = "spi1_ss_9_grp", "spi1_ss_10_grp", + "spi1_ss_11_grp"; function = "spi1_ss"; }; conf-cs { - groups = "spi1_3_ss0_grp", "spi1_3_ss1_grp", - "spi1_3_ss2_grp"; + groups = "spi1_ss_9_grp", "spi1_ss_10_grp", + "spi1_ss_11_grp"; bias-disable; }; }; diff --git a/arch/arm/dts/zynqmp-zc1751-xm019-dc5.dts b/arch/arm/dts/zynqmp-zc1751-xm019-dc5.dts index c33cb981b02..7d9d1af57b6 100644 --- a/arch/arm/dts/zynqmp-zc1751-xm019-dc5.dts +++ b/arch/arm/dts/zynqmp-zc1751-xm019-dc5.dts @@ -265,12 +265,12 @@ }; mux-cd { - groups = "sdio0_0_cd_grp"; + groups = "sdio0_cd_0_grp"; function = "sdio0_cd"; }; conf-cd { - groups = "sdio0_0_cd_grp"; + groups = "sdio0_cd_0_grp"; bias-high-impedance; bias-pull-up; slew-rate = ; @@ -278,12 +278,12 @@ }; mux-wp { - groups = "sdio0_0_wp_grp"; + groups = "sdio0_wp_0_grp"; function = "sdio0_wp"; }; conf-wp { - groups = "sdio0_0_wp_grp"; + groups = "sdio0_wp_0_grp"; bias-high-impedance; bias-pull-up; slew-rate = ; @@ -293,22 +293,22 @@ pinctrl_watchdog0_default: watchdog0-default { mux-clk { - groups = "swdt0_1_clk_grp"; + groups = "swdt0_clk_1_grp"; function = "swdt0_clk"; }; conf-clk { - groups = "swdt0_1_clk_grp"; + groups = "swdt0_clk_1_grp"; bias-pull-up; }; mux-rst { - groups = "swdt0_1_rst_grp"; + groups = "swdt0_rst_1_grp"; function = "swdt0_rst"; }; conf-rst { - groups = "swdt0_1_rst_grp"; + groups = "swdt0_rst_1_grp"; bias-disable; slew-rate = ; }; @@ -316,22 +316,22 @@ pinctrl_ttc0_default: ttc0-default { mux-clk { - groups = "ttc0_0_clk_grp"; + groups = "ttc0_clk_0_grp"; function = "ttc0_clk"; }; conf-clk { - groups = "ttc0_0_clk_grp"; + groups = "ttc0_clk_0_grp"; bias-pull-up; }; mux-wav { - groups = "ttc0_0_wav_grp"; + groups = "ttc0_wav_0_grp"; function = "ttc0_wav"; }; conf-wav { - groups = "ttc0_0_wav_grp"; + groups = "ttc0_wav_0_grp"; bias-disable; slew-rate = ; }; @@ -339,22 +339,22 @@ pinctrl_ttc1_default: ttc1-default { mux-clk { - groups = "ttc1_0_clk_grp"; + groups = "ttc1_clk_0_grp"; function = "ttc1_clk"; }; conf-clk { - groups = "ttc1_0_clk_grp"; + groups = "ttc1_clk_0_grp"; bias-pull-up; }; mux-wav { - groups = "ttc1_0_wav_grp"; + groups = "ttc1_wav_0_grp"; function = "ttc1_wav"; }; conf-wav { - groups = "ttc1_0_wav_grp"; + groups = "ttc1_wav_0_grp"; bias-disable; slew-rate = ; }; @@ -362,22 +362,22 @@ pinctrl_ttc2_default: ttc2-default { mux-clk { - groups = "ttc2_0_clk_grp"; + groups = "ttc2_clk_0_grp"; function = "ttc2_clk"; }; conf-clk { - groups = "ttc2_0_clk_grp"; + groups = "ttc2_clk_0_grp"; bias-pull-up; }; mux-wav { - groups = "ttc2_0_wav_grp"; + groups = "ttc2_wav_0_grp"; function = "ttc2_wav"; }; conf-wav { - groups = "ttc2_0_wav_grp"; + groups = "ttc2_wav_0_grp"; bias-disable; slew-rate = ; }; @@ -385,22 +385,22 @@ pinctrl_ttc3_default: ttc3-default { mux-clk { - groups = "ttc3_0_clk_grp"; + groups = "ttc3_clk_0_grp"; function = "ttc3_clk"; }; conf-clk { - groups = "ttc3_0_clk_grp"; + groups = "ttc3_clk_0_grp"; bias-pull-up; }; mux-wav { - groups = "ttc3_0_wav_grp"; + groups = "ttc3_wav_0_grp"; function = "ttc3_wav"; }; conf-wav { - groups = "ttc3_0_wav_grp"; + groups = "ttc3_wav_0_grp"; bias-disable; slew-rate = ; }; diff --git a/arch/arm/dts/zynqmp-zcu100-revC.dts b/arch/arm/dts/zynqmp-zcu100-revC.dts index 5c146699aa2..6d69fb5d7c8 100644 --- a/arch/arm/dts/zynqmp-zcu100-revC.dts +++ b/arch/arm/dts/zynqmp-zcu100-revC.dts @@ -412,24 +412,24 @@ pinctrl_sdhci0_default: sdhci0-default { mux { - groups = "sdio0_4bit_0_0_grp"; + groups = "sdio0_3_grp"; function = "sdio0"; }; conf { - groups = "sdio0_4bit_0_0_grp"; + groups = "sdio0_3_grp"; slew-rate = ; io-standard = ; bias-disable; }; mux-cd { - groups = "sdio0_0_cd_grp"; + groups = "sdio0_cd_0_grp"; function = "sdio0_cd"; }; conf-cd { - groups = "sdio0_0_cd_grp"; + groups = "sdio0_cd_0_grp"; bias-high-impedance; bias-pull-up; slew-rate = ; @@ -439,12 +439,12 @@ pinctrl_sdhci1_default: sdhci1-default { mux { - groups = "sdio1_4bit_0_1_grp"; + groups = "sdio1_2_grp"; function = "sdio1"; }; conf { - groups = "sdio1_4bit_0_1_grp"; + groups = "sdio1_2_grp"; slew-rate = ; io-standard = ; bias-disable; @@ -465,12 +465,12 @@ }; mux-cs { - groups = "spi0_3_ss0_grp"; + groups = "spi0_ss_9_grp"; function = "spi0_ss"; }; conf-cs { - groups = "spi0_3_ss0_grp"; + groups = "spi0_ss_9_grp"; bias-disable; }; @@ -490,12 +490,12 @@ }; mux-cs { - groups = "spi1_0_ss0_grp"; + groups = "spi1_ss_0_grp"; function = "spi1_ss"; }; conf-cs { - groups = "spi1_0_ss0_grp"; + groups = "spi1_ss_0_grp"; bias-disable; }; diff --git a/arch/arm/dts/zynqmp-zcu102-revA.dts b/arch/arm/dts/zynqmp-zcu102-revA.dts index 5cbff57f65e..259ab949d9f 100644 --- a/arch/arm/dts/zynqmp-zcu102-revA.dts +++ b/arch/arm/dts/zynqmp-zcu102-revA.dts @@ -767,12 +767,12 @@ drivers/hwmon/pmbus/Makefile:11:obj-$(CONFIG_SENSORS_MAX20751) += max20751.o }; mux-cd { - groups = "sdio1_0_cd_grp"; + groups = "sdio1_cd_0_grp"; function = "sdio1_cd"; }; conf-cd { - groups = "sdio1_0_cd_grp"; + groups = "sdio1_cd_0_grp"; bias-high-impedance; bias-pull-up; slew-rate = ; @@ -780,12 +780,12 @@ drivers/hwmon/pmbus/Makefile:11:obj-$(CONFIG_SENSORS_MAX20751) += max20751.o }; mux-wp { - groups = "sdio1_0_wp_grp"; + groups = "sdio1_wp_0_grp"; function = "sdio1_wp"; }; conf-wp { - groups = "sdio1_0_wp_grp"; + groups = "sdio1_wp_0_grp"; bias-high-impedance; bias-pull-up; slew-rate = ; diff --git a/arch/arm/dts/zynqmp-zcu104-revA.dts b/arch/arm/dts/zynqmp-zcu104-revA.dts index 1924983a0f7..8932d424753 100644 --- a/arch/arm/dts/zynqmp-zcu104-revA.dts +++ b/arch/arm/dts/zynqmp-zcu104-revA.dts @@ -290,12 +290,12 @@ }; mux-cd { - groups = "sdio1_0_cd_grp"; + groups = "sdio1_cd_0_grp"; function = "sdio1_cd"; }; conf-cd { - groups = "sdio1_0_cd_grp"; + groups = "sdio1_cd_0_grp"; bias-high-impedance; bias-pull-up; slew-rate = ; diff --git a/arch/arm/dts/zynqmp-zcu104-revC.dts b/arch/arm/dts/zynqmp-zcu104-revC.dts index 3f98c37b9eb..d43770c835b 100644 --- a/arch/arm/dts/zynqmp-zcu104-revC.dts +++ b/arch/arm/dts/zynqmp-zcu104-revC.dts @@ -290,12 +290,12 @@ }; mux-cd { - groups = "sdio1_0_cd_grp"; + groups = "sdio1_cd_0_grp"; function = "sdio1_cd"; }; conf-cd { - groups = "sdio1_0_cd_grp"; + groups = "sdio1_cd_0_grp"; bias-high-impedance; bias-pull-up; slew-rate = ; diff --git a/arch/arm/dts/zynqmp-zcu106-revA.dts b/arch/arm/dts/zynqmp-zcu106-revA.dts index e524fd5acd7..eb51e0b5937 100644 --- a/arch/arm/dts/zynqmp-zcu106-revA.dts +++ b/arch/arm/dts/zynqmp-zcu106-revA.dts @@ -741,12 +741,12 @@ }; mux-cd { - groups = "sdio1_0_cd_grp"; + groups = "sdio1_cd_0_grp"; function = "sdio1_cd"; }; conf-cd { - groups = "sdio1_0_cd_grp"; + groups = "sdio1_cd_0_grp"; bias-high-impedance; bias-pull-up; slew-rate = ; @@ -754,12 +754,12 @@ }; mux-wp { - groups = "sdio1_0_wp_grp"; + groups = "sdio1_wp_0_grp"; function = "sdio1_wp"; }; conf-wp { - groups = "sdio1_0_wp_grp"; + groups = "sdio1_wp_0_grp"; bias-high-impedance; bias-pull-up; slew-rate = ; diff --git a/arch/arm/dts/zynqmp-zcu111-revA.dts b/arch/arm/dts/zynqmp-zcu111-revA.dts index f5c74e3f68e..293bcacdafa 100644 --- a/arch/arm/dts/zynqmp-zcu111-revA.dts +++ b/arch/arm/dts/zynqmp-zcu111-revA.dts @@ -620,12 +620,12 @@ }; mux-cd { - groups = "sdio1_0_cd_grp"; + groups = "sdio1_cd_0_grp"; function = "sdio1_cd"; }; conf-cd { - groups = "sdio1_0_cd_grp"; + groups = "sdio1_cd_0_grp"; bias-high-impedance; bias-pull-up; slew-rate = ; @@ -633,12 +633,12 @@ }; mux-wp { - groups = "sdio1_0_wp_grp"; + groups = "sdio1_wp_0_grp"; function = "sdio1_wp"; }; conf-wp { - groups = "sdio1_0_wp_grp"; + groups = "sdio1_wp_0_grp"; bias-high-impedance; bias-pull-up; slew-rate = ; diff --git a/arch/arm/dts/zynqmp.dtsi b/arch/arm/dts/zynqmp.dtsi index a82e2bccc14..973295d5a68 100644 --- a/arch/arm/dts/zynqmp.dtsi +++ b/arch/arm/dts/zynqmp.dtsi @@ -98,6 +98,11 @@ u-boot,dm-pre-reloc; }; + pinctrl0: pinctrl { + compatible = "xlnx,zynqmp-pinctrl"; + status = "disabled"; + }; + power-domains { compatible = "xlnx,zynqmp-genpd"; @@ -944,12 +949,6 @@ nvmem-cell-names = "soc_revision"; }; - pinctrl0: pinctrl@ff180000 { - compatible = "xlnx,pinctrl-zynqmp"; - status = "disabled"; - reg = <0x0 0xff180000 0x0 0x1000>; - }; - smmu: smmu@fd800000 { compatible = "arm,mmu-500"; reg = <0x0 0xfd800000 0x0 0x20000>;