kernel: refresh patches for kernel 4.4
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de> SVN-Revision: 48222
This commit is contained in:
		@@ -59,7 +59,7 @@ Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
 | 
				
			|||||||
 
 | 
					 
 | 
				
			||||||
 static const char *const bcm5301x_dt_compat[] __initconst = {
 | 
					 static const char *const bcm5301x_dt_compat[] __initconst = {
 | 
				
			||||||
 	"brcm,bcm4708",
 | 
					 	"brcm,bcm4708",
 | 
				
			||||||
@@ -52,6 +18,5 @@ static const char *const bcm5301x_dt_compat[] __initconst = {
 | 
					@@ -52,6 +18,5 @@ static const char *const bcm5301x_dt_com
 | 
				
			||||||
 DT_MACHINE_START(BCM5301X, "BCM5301X")
 | 
					 DT_MACHINE_START(BCM5301X, "BCM5301X")
 | 
				
			||||||
 	.l2c_aux_val	= 0,
 | 
					 	.l2c_aux_val	= 0,
 | 
				
			||||||
 	.l2c_aux_mask	= ~0,
 | 
					 	.l2c_aux_mask	= ~0,
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -217,7 +217,7 @@ Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
 | 
				
			|||||||
 {
 | 
					 {
 | 
				
			||||||
 	void __iomem *boot_reg;
 | 
					 	void __iomem *boot_reg;
 | 
				
			||||||
 	phys_addr_t boot_func;
 | 
					 	phys_addr_t boot_func;
 | 
				
			||||||
@@ -154,15 +179,16 @@ static int bcm_boot_secondary(unsigned int cpu, struct task_struct *idle)
 | 
					@@ -154,15 +179,16 @@ static int bcm_boot_secondary(unsigned i
 | 
				
			||||||
 		return -EINVAL;
 | 
					 		return -EINVAL;
 | 
				
			||||||
 	}
 | 
					 	}
 | 
				
			||||||
 
 | 
					 
 | 
				
			||||||
@@ -237,7 +237,7 @@ Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
 | 
				
			|||||||
 	}
 | 
					 	}
 | 
				
			||||||
 
 | 
					 
 | 
				
			||||||
 	/*
 | 
					 	/*
 | 
				
			||||||
@@ -191,12 +217,12 @@ static int bcm_boot_secondary(unsigned int cpu, struct task_struct *idle)
 | 
					@@ -191,12 +217,12 @@ static int bcm_boot_secondary(unsigned i
 | 
				
			||||||
 
 | 
					 
 | 
				
			||||||
 	pr_err("timeout waiting for cpu %u to start\n", cpu_id);
 | 
					 	pr_err("timeout waiting for cpu %u to start\n", cpu_id);
 | 
				
			||||||
 
 | 
					 
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -50,7 +50,7 @@ Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
 | 
				
			|||||||
 
 | 
					 
 | 
				
			||||||
 # BCM281XX
 | 
					 # BCM281XX
 | 
				
			||||||
 obj-$(CONFIG_ARCH_BCM_281XX)	+= board_bcm281xx.o
 | 
					 obj-$(CONFIG_ARCH_BCM_281XX)	+= board_bcm281xx.o
 | 
				
			||||||
@@ -23,7 +27,7 @@ obj-$(CONFIG_ARCH_BCM_281XX)	+= board_bcm281xx.o
 | 
					@@ -23,7 +27,7 @@ obj-$(CONFIG_ARCH_BCM_281XX)	+= board_bc
 | 
				
			||||||
 obj-$(CONFIG_ARCH_BCM_21664)	+= board_bcm21664.o
 | 
					 obj-$(CONFIG_ARCH_BCM_21664)	+= board_bcm21664.o
 | 
				
			||||||
 
 | 
					 
 | 
				
			||||||
 # BCM281XX and BCM21664 SMP support
 | 
					 # BCM281XX and BCM21664 SMP support
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -46,7 +46,7 @@ Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
 | 
				
			|||||||
 	  Support for Broadcom BCM470X and BCM5301X SoCs with ARM CPU cores.
 | 
					 	  Support for Broadcom BCM470X and BCM5301X SoCs with ARM CPU cores.
 | 
				
			||||||
--- a/arch/arm/mach-bcm/Makefile
 | 
					--- a/arch/arm/mach-bcm/Makefile
 | 
				
			||||||
+++ b/arch/arm/mach-bcm/Makefile
 | 
					+++ b/arch/arm/mach-bcm/Makefile
 | 
				
			||||||
@@ -43,6 +43,9 @@ obj-$(CONFIG_ARCH_BCM2835)	+= board_bcm2835.o
 | 
					@@ -43,6 +43,9 @@ obj-$(CONFIG_ARCH_BCM2835)	+= board_bcm2
 | 
				
			||||||
 
 | 
					 
 | 
				
			||||||
 # BCM5301X
 | 
					 # BCM5301X
 | 
				
			||||||
 obj-$(CONFIG_ARCH_BCM_5301X)	+= bcm_5301x.o
 | 
					 obj-$(CONFIG_ARCH_BCM_5301X)	+= bcm_5301x.o
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -121,7 +121,8 @@ Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
 | 
				
			|||||||
+		};
 | 
					+		};
 | 
				
			||||||
+
 | 
					+
 | 
				
			||||||
+		iprocmed: iprocmed {
 | 
					+		iprocmed: iprocmed {
 | 
				
			||||||
+			#clock-cells = <0>;
 | 
					 			#clock-cells = <0>;
 | 
				
			||||||
 | 
					-			clock-frequency = <400000000>;
 | 
				
			||||||
+			compatible = "fixed-factor-clock";
 | 
					+			compatible = "fixed-factor-clock";
 | 
				
			||||||
+			clocks = <&genpll BCM_NSP_GENPLL_IPROCFAST_CLK>;
 | 
					+			clocks = <&genpll BCM_NSP_GENPLL_IPROCFAST_CLK>;
 | 
				
			||||||
+			clock-div = <2>;
 | 
					+			clock-div = <2>;
 | 
				
			||||||
@@ -137,8 +138,7 @@ Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
 | 
				
			|||||||
+		};
 | 
					+		};
 | 
				
			||||||
+
 | 
					+
 | 
				
			||||||
+		periph_clk: periph_clk {
 | 
					+		periph_clk: periph_clk {
 | 
				
			||||||
 			#clock-cells = <0>;
 | 
					+			#clock-cells = <0>;
 | 
				
			||||||
-			clock-frequency = <400000000>;
 | 
					 | 
				
			||||||
+			compatible = "fixed-factor-clock";
 | 
					+			compatible = "fixed-factor-clock";
 | 
				
			||||||
+			clocks = <&a9pll>;
 | 
					+			clocks = <&a9pll>;
 | 
				
			||||||
+			clock-div = <2>;
 | 
					+			clock-div = <2>;
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -60,7 +60,7 @@ Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
 | 
				
			|||||||
+	};
 | 
					+	};
 | 
				
			||||||
--- a/Documentation/devicetree/bindings/arm/cpus.txt
 | 
					--- a/Documentation/devicetree/bindings/arm/cpus.txt
 | 
				
			||||||
+++ b/Documentation/devicetree/bindings/arm/cpus.txt
 | 
					+++ b/Documentation/devicetree/bindings/arm/cpus.txt
 | 
				
			||||||
@@ -190,6 +190,7 @@ nodes to be present and contain the properties described below.
 | 
					@@ -190,6 +190,7 @@ nodes to be present and contain the prop
 | 
				
			||||||
 			    "allwinner,sun6i-a31"
 | 
					 			    "allwinner,sun6i-a31"
 | 
				
			||||||
 			    "allwinner,sun8i-a23"
 | 
					 			    "allwinner,sun8i-a23"
 | 
				
			||||||
 			    "arm,psci"
 | 
					 			    "arm,psci"
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -37,7 +37,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
 | 
				
			|||||||
 };
 | 
					 };
 | 
				
			||||||
 
 | 
					 
 | 
				
			||||||
 /* Wait for bitmask in a register to get set or cleared.
 | 
					 /* Wait for bitmask in a register to get set or cleared.
 | 
				
			||||||
@@ -228,19 +230,12 @@ static void bcma_hcd_init_chip_arm(struct bcma_device *dev)
 | 
					@@ -228,19 +230,12 @@ static void bcma_hcd_init_chip_arm(struc
 | 
				
			||||||
 
 | 
					 
 | 
				
			||||||
 static void bcma_hci_platform_power_gpio(struct bcma_device *dev, bool val)
 | 
					 static void bcma_hci_platform_power_gpio(struct bcma_device *dev, bool val)
 | 
				
			||||||
 {
 | 
					 {
 | 
				
			||||||
@@ -60,7 +60,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
 | 
				
			|||||||
 }
 | 
					 }
 | 
				
			||||||
 
 | 
					 
 | 
				
			||||||
 static const struct usb_ehci_pdata ehci_pdata = {
 | 
					 static const struct usb_ehci_pdata ehci_pdata = {
 | 
				
			||||||
@@ -314,7 +309,11 @@ static int bcma_hcd_probe(struct bcma_device *dev)
 | 
					@@ -314,7 +309,11 @@ static int bcma_hcd_probe(struct bcma_de
 | 
				
			||||||
 	if (!usb_dev)
 | 
					 	if (!usb_dev)
 | 
				
			||||||
 		return -ENOMEM;
 | 
					 		return -ENOMEM;
 | 
				
			||||||
 
 | 
					 
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -52,7 +52,7 @@ Reviewed-by: Scott Branden <sbranden@broadcom.com>
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
--- a/drivers/pci/host/Kconfig
 | 
					--- a/drivers/pci/host/Kconfig
 | 
				
			||||||
+++ b/drivers/pci/host/Kconfig
 | 
					+++ b/drivers/pci/host/Kconfig
 | 
				
			||||||
@@ -126,6 +126,15 @@ config PCIE_IPROC
 | 
					@@ -127,6 +127,15 @@ config PCIE_IPROC
 | 
				
			||||||
 	  iProc family of SoCs. An appropriate bus interface driver also needs
 | 
					 	  iProc family of SoCs. An appropriate bus interface driver also needs
 | 
				
			||||||
 	  to be enabled
 | 
					 	  to be enabled
 | 
				
			||||||
 
 | 
					 
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -12,7 +12,7 @@ Signed-off-by: Rafał Miłecki <zajec5@gmail.com>
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
--- a/drivers/usb/host/bcma-hcd.c
 | 
					--- a/drivers/usb/host/bcma-hcd.c
 | 
				
			||||||
+++ b/drivers/usb/host/bcma-hcd.c
 | 
					+++ b/drivers/usb/host/bcma-hcd.c
 | 
				
			||||||
@@ -568,8 +568,7 @@ static int bcma_hcd_probe(struct bcma_device *dev)
 | 
					@@ -568,8 +568,7 @@ static int bcma_hcd_probe(struct bcma_de
 | 
				
			||||||
 	usb_dev->core = dev;
 | 
					 	usb_dev->core = dev;
 | 
				
			||||||
 
 | 
					 
 | 
				
			||||||
 	if (dev->dev.of_node)
 | 
					 	if (dev->dev.of_node)
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,6 +1,6 @@
 | 
				
			|||||||
--- a/drivers/mtd/bcm47xxpart.c
 | 
					--- a/drivers/mtd/bcm47xxpart.c
 | 
				
			||||||
+++ b/drivers/mtd/bcm47xxpart.c
 | 
					+++ b/drivers/mtd/bcm47xxpart.c
 | 
				
			||||||
@@ -100,6 +100,7 @@ static int bcm47xxpart_parse(struct mtd_
 | 
					@@ -127,6 +127,7 @@ static int bcm47xxpart_parse(struct mtd_
 | 
				
			||||||
 	int last_trx_part = -1;
 | 
					 	int last_trx_part = -1;
 | 
				
			||||||
 	int possible_nvram_sizes[] = { 0x8000, 0xF000, 0x10000, };
 | 
					 	int possible_nvram_sizes[] = { 0x8000, 0xF000, 0x10000, };
 | 
				
			||||||
 	int err;
 | 
					 	int err;
 | 
				
			||||||
@@ -8,7 +8,7 @@
 | 
				
			|||||||
 
 | 
					 
 | 
				
			||||||
 	/*
 | 
					 	/*
 | 
				
			||||||
 	 * Some really old flashes (like AT45DB*) had smaller erasesize-s, but
 | 
					 	 * Some really old flashes (like AT45DB*) had smaller erasesize-s, but
 | 
				
			||||||
@@ -306,12 +307,23 @@ static int bcm47xxpart_parse(struct mtd_
 | 
					@@ -334,12 +335,23 @@ static int bcm47xxpart_parse(struct mtd_
 | 
				
			||||||
 		if (buf[0] == NVRAM_HEADER) {
 | 
					 		if (buf[0] == NVRAM_HEADER) {
 | 
				
			||||||
 			bcm47xxpart_add_part(&parts[curr_part++], "nvram",
 | 
					 			bcm47xxpart_add_part(&parts[curr_part++], "nvram",
 | 
				
			||||||
 					     master->size - blocksize, 0);
 | 
					 					     master->size - blocksize, 0);
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -13,7 +13,7 @@ Signed-off-by: Rafał Miłecki <zajec5@gmail.com>
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
--- a/drivers/mtd/bcm47xxpart.c
 | 
					--- a/drivers/mtd/bcm47xxpart.c
 | 
				
			||||||
+++ b/drivers/mtd/bcm47xxpart.c
 | 
					+++ b/drivers/mtd/bcm47xxpart.c
 | 
				
			||||||
@@ -61,6 +61,34 @@ static void bcm47xxpart_add_part(struct mtd_partition *part, const char *name,
 | 
					@@ -61,6 +61,34 @@ static void bcm47xxpart_add_part(struct
 | 
				
			||||||
 	part->mask_flags = mask_flags;
 | 
					 	part->mask_flags = mask_flags;
 | 
				
			||||||
 }
 | 
					 }
 | 
				
			||||||
 
 | 
					 
 | 
				
			||||||
@@ -48,7 +48,7 @@ Signed-off-by: Rafał Miłecki <zajec5@gmail.com>
 | 
				
			|||||||
 static const char *bcm47xxpart_trx_data_part_name(struct mtd_info *master,
 | 
					 static const char *bcm47xxpart_trx_data_part_name(struct mtd_info *master,
 | 
				
			||||||
 						  size_t offset)
 | 
					 						  size_t offset)
 | 
				
			||||||
 {
 | 
					 {
 | 
				
			||||||
@@ -182,6 +210,8 @@ static int bcm47xxpart_parse(struct mtd_info *master,
 | 
					@@ -182,6 +210,8 @@ static int bcm47xxpart_parse(struct mtd_
 | 
				
			||||||
 
 | 
					 
 | 
				
			||||||
 		/* TRX */
 | 
					 		/* TRX */
 | 
				
			||||||
 		if (buf[0x000 / 4] == TRX_MAGIC) {
 | 
					 		if (buf[0x000 / 4] == TRX_MAGIC) {
 | 
				
			||||||
@@ -57,7 +57,7 @@ Signed-off-by: Rafał Miłecki <zajec5@gmail.com>
 | 
				
			|||||||
 			if (BCM47XXPART_MAX_PARTS - curr_part < 4) {
 | 
					 			if (BCM47XXPART_MAX_PARTS - curr_part < 4) {
 | 
				
			||||||
 				pr_warn("Not enough partitions left to register trx, scanning stopped!\n");
 | 
					 				pr_warn("Not enough partitions left to register trx, scanning stopped!\n");
 | 
				
			||||||
 				break;
 | 
					 				break;
 | 
				
			||||||
@@ -196,18 +226,18 @@ static int bcm47xxpart_parse(struct mtd_info *master,
 | 
					@@ -196,18 +226,18 @@ static int bcm47xxpart_parse(struct mtd_
 | 
				
			||||||
 			i = 0;
 | 
					 			i = 0;
 | 
				
			||||||
 			/* We have LZMA loader if offset[2] points to sth */
 | 
					 			/* We have LZMA loader if offset[2] points to sth */
 | 
				
			||||||
 			if (trx->offset[2]) {
 | 
					 			if (trx->offset[2]) {
 | 
				
			||||||
@@ -82,7 +82,7 @@ Signed-off-by: Rafał Miłecki <zajec5@gmail.com>
 | 
				
			|||||||
 				i++;
 | 
					 				i++;
 | 
				
			||||||
 			}
 | 
					 			}
 | 
				
			||||||
 
 | 
					 
 | 
				
			||||||
@@ -219,11 +249,11 @@ static int bcm47xxpart_parse(struct mtd_info *master,
 | 
					@@ -219,11 +249,11 @@ static int bcm47xxpart_parse(struct mtd_
 | 
				
			||||||
 			if (trx->offset[i]) {
 | 
					 			if (trx->offset[i]) {
 | 
				
			||||||
 				const char *name;
 | 
					 				const char *name;
 | 
				
			||||||
 
 | 
					 
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -61,7 +61,7 @@
 | 
				
			|||||||
 	.probe			= at803x_probe,
 | 
					 	.probe			= at803x_probe,
 | 
				
			||||||
 	.config_init		= at803x_config_init,
 | 
					 	.config_init		= at803x_config_init,
 | 
				
			||||||
 	.link_change_notify	= at803x_link_change_notify,
 | 
					 	.link_change_notify	= at803x_link_change_notify,
 | 
				
			||||||
@@ -413,7 +438,7 @@ static struct phy_driver at803x_driver[]
 | 
					@@ -415,7 +440,7 @@ static struct phy_driver at803x_driver[]
 | 
				
			||||||
 	/* ATHEROS 8030 */
 | 
					 	/* ATHEROS 8030 */
 | 
				
			||||||
 	.phy_id			= ATH8030_PHY_ID,
 | 
					 	.phy_id			= ATH8030_PHY_ID,
 | 
				
			||||||
 	.name			= "Atheros 8030 ethernet",
 | 
					 	.name			= "Atheros 8030 ethernet",
 | 
				
			||||||
@@ -70,7 +70,7 @@
 | 
				
			|||||||
 	.probe			= at803x_probe,
 | 
					 	.probe			= at803x_probe,
 | 
				
			||||||
 	.config_init		= at803x_config_init,
 | 
					 	.config_init		= at803x_config_init,
 | 
				
			||||||
 	.link_change_notify	= at803x_link_change_notify,
 | 
					 	.link_change_notify	= at803x_link_change_notify,
 | 
				
			||||||
@@ -431,8 +456,8 @@ static struct phy_driver at803x_driver[]
 | 
					@@ -435,8 +460,8 @@ static struct phy_driver at803x_driver[]
 | 
				
			||||||
 }, {
 | 
					 }, {
 | 
				
			||||||
 	/* ATHEROS 8031 */
 | 
					 	/* ATHEROS 8031 */
 | 
				
			||||||
 	.phy_id			= ATH8031_PHY_ID,
 | 
					 	.phy_id			= ATH8031_PHY_ID,
 | 
				
			||||||
@@ -81,7 +81,7 @@
 | 
				
			|||||||
 	.probe			= at803x_probe,
 | 
					 	.probe			= at803x_probe,
 | 
				
			||||||
 	.config_init		= at803x_config_init,
 | 
					 	.config_init		= at803x_config_init,
 | 
				
			||||||
 	.link_change_notify	= at803x_link_change_notify,
 | 
					 	.link_change_notify	= at803x_link_change_notify,
 | 
				
			||||||
@@ -454,9 +479,9 @@ static struct phy_driver at803x_driver[]
 | 
					@@ -458,9 +483,9 @@ static struct phy_driver at803x_driver[]
 | 
				
			||||||
 module_phy_driver(at803x_driver);
 | 
					 module_phy_driver(at803x_driver);
 | 
				
			||||||
 
 | 
					 
 | 
				
			||||||
 static struct mdio_device_id __maybe_unused atheros_tbl[] = {
 | 
					 static struct mdio_device_id __maybe_unused atheros_tbl[] = {
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -22,7 +22,7 @@ Signed-off-by: Imre Kaloz <kaloz@openwrt.org>
 | 
				
			|||||||
 	struct device_node *pp;
 | 
					 	struct device_node *pp;
 | 
				
			||||||
 	int nr_parts, i, ret = 0;
 | 
					 	int nr_parts, i, ret = 0;
 | 
				
			||||||
 	bool dedicated = true;
 | 
					 	bool dedicated = true;
 | 
				
			||||||
@@ -102,9 +105,15 @@ static int parse_ofpart_partitions(struc
 | 
					@@ -110,9 +113,15 @@ static int parse_ofpart_partitions(struc
 | 
				
			||||||
 		(*pparts)[i].offset = of_read_number(reg, a_cells);
 | 
					 		(*pparts)[i].offset = of_read_number(reg, a_cells);
 | 
				
			||||||
 		(*pparts)[i].size = of_read_number(reg + a_cells, s_cells);
 | 
					 		(*pparts)[i].size = of_read_number(reg + a_cells, s_cells);
 | 
				
			||||||
 
 | 
					 
 | 
				
			||||||
@@ -41,7 +41,7 @@ Signed-off-by: Imre Kaloz <kaloz@openwrt.org>
 | 
				
			|||||||
 		(*pparts)[i].name = partname;
 | 
					 		(*pparts)[i].name = partname;
 | 
				
			||||||
 
 | 
					 
 | 
				
			||||||
 		if (of_get_property(pp, "read-only", &len))
 | 
					 		if (of_get_property(pp, "read-only", &len))
 | 
				
			||||||
@@ -207,6 +216,18 @@ static int __init ofpart_parser_init(voi
 | 
					@@ -215,6 +224,18 @@ static int __init ofpart_parser_init(voi
 | 
				
			||||||
 	return 0;
 | 
					 	return 0;
 | 
				
			||||||
 }
 | 
					 }
 | 
				
			||||||
 
 | 
					 
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,6 +1,6 @@
 | 
				
			|||||||
--- a/arch/arm/mach-omap2/twl-common.c
 | 
					--- a/arch/arm/mach-omap2/twl-common.c
 | 
				
			||||||
+++ b/arch/arm/mach-omap2/twl-common.c
 | 
					+++ b/arch/arm/mach-omap2/twl-common.c
 | 
				
			||||||
@@ -280,6 +280,7 @@ static struct regulator_init_data omap4_
 | 
					@@ -368,6 +368,7 @@ static struct regulator_init_data omap4_
 | 
				
			||||||
 static struct regulator_init_data omap4_clk32kg_idata = {
 | 
					 static struct regulator_init_data omap4_clk32kg_idata = {
 | 
				
			||||||
 	.constraints = {
 | 
					 	.constraints = {
 | 
				
			||||||
 		.valid_ops_mask		= REGULATOR_CHANGE_STATUS,
 | 
					 		.valid_ops_mask		= REGULATOR_CHANGE_STATUS,
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -19,13 +19,9 @@ Signed-off-by: Maxime Ripard <maxime.ripard@free-electrons.com>
 | 
				
			|||||||
 drivers/clk/sunxi/clk-simple-gates.c              | 12 ++++++++++++
 | 
					 drivers/clk/sunxi/clk-simple-gates.c              | 12 ++++++++++++
 | 
				
			||||||
 2 files changed, 13 insertions(+)
 | 
					 2 files changed, 13 insertions(+)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
diff --git a/Documentation/devicetree/bindings/clock/sunxi.txt b/Documentation/devicetree/bindings/clock/sunxi.txt
 | 
					 | 
				
			||||||
index 153ac72..ef0b452 100644
 | 
					 | 
				
			||||||
diff --git a/drivers/clk/sunxi/clk-simple-gates.c b/drivers/clk/sunxi/clk-simple-gates.c
 | 
					 | 
				
			||||||
index c8acc06..f4da52b 100644
 | 
					 | 
				
			||||||
--- a/drivers/clk/sunxi/clk-simple-gates.c
 | 
					--- a/drivers/clk/sunxi/clk-simple-gates.c
 | 
				
			||||||
+++ b/drivers/clk/sunxi/clk-simple-gates.c
 | 
					+++ b/drivers/clk/sunxi/clk-simple-gates.c
 | 
				
			||||||
@@ -160,3 +160,15 @@ CLK_OF_DECLARE(sun5i_a13_ahb, "allwinner,sun5i-a13-ahb-gates-clk",
 | 
					@@ -158,3 +158,15 @@ CLK_OF_DECLARE(sun5i_a13_ahb, "allwinner
 | 
				
			||||||
 	       sun4i_a10_ahb_init);
 | 
					 	       sun4i_a10_ahb_init);
 | 
				
			||||||
 CLK_OF_DECLARE(sun7i_a20_ahb, "allwinner,sun7i-a20-ahb-gates-clk",
 | 
					 CLK_OF_DECLARE(sun7i_a20_ahb, "allwinner,sun7i-a20-ahb-gates-clk",
 | 
				
			||||||
 	       sun4i_a10_ahb_init);
 | 
					 	       sun4i_a10_ahb_init);
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -13,8 +13,6 @@ Signed-off-by: Maxime Ripard <maxime.ripard@free-electrons.com>
 | 
				
			|||||||
 arch/arm/boot/dts/sun4i-a10.dtsi | 36 ++++++++++++++++++++++++++++++++----
 | 
					 arch/arm/boot/dts/sun4i-a10.dtsi | 36 ++++++++++++++++++++++++++++++++----
 | 
				
			||||||
 1 file changed, 32 insertions(+), 4 deletions(-)
 | 
					 1 file changed, 32 insertions(+), 4 deletions(-)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
diff --git a/arch/arm/boot/dts/sun4i-a10.dtsi b/arch/arm/boot/dts/sun4i-a10.dtsi
 | 
					 | 
				
			||||||
index aa90f31..849d024 100644
 | 
					 | 
				
			||||||
--- a/arch/arm/boot/dts/sun4i-a10.dtsi
 | 
					--- a/arch/arm/boot/dts/sun4i-a10.dtsi
 | 
				
			||||||
+++ b/arch/arm/boot/dts/sun4i-a10.dtsi
 | 
					+++ b/arch/arm/boot/dts/sun4i-a10.dtsi
 | 
				
			||||||
@@ -66,7 +66,7 @@
 | 
					@@ -66,7 +66,7 @@
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -13,8 +13,6 @@ Signed-off-by: Maxime Ripard <maxime.ripard@free-electrons.com>
 | 
				
			|||||||
 arch/arm/boot/dts/sun7i-a20.dtsi | 32 +++++++++++++++++++++++++++++---
 | 
					 arch/arm/boot/dts/sun7i-a20.dtsi | 32 +++++++++++++++++++++++++++++---
 | 
				
			||||||
 1 file changed, 29 insertions(+), 3 deletions(-)
 | 
					 1 file changed, 29 insertions(+), 3 deletions(-)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
diff --git a/arch/arm/boot/dts/sun7i-a20.dtsi b/arch/arm/boot/dts/sun7i-a20.dtsi
 | 
					 | 
				
			||||||
index e02eb72..21169c0 100644
 | 
					 | 
				
			||||||
--- a/arch/arm/boot/dts/sun7i-a20.dtsi
 | 
					--- a/arch/arm/boot/dts/sun7i-a20.dtsi
 | 
				
			||||||
+++ b/arch/arm/boot/dts/sun7i-a20.dtsi
 | 
					+++ b/arch/arm/boot/dts/sun7i-a20.dtsi
 | 
				
			||||||
@@ -68,7 +68,7 @@
 | 
					@@ -68,7 +68,7 @@
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -24,10 +24,6 @@ Signed-off-by: Maxime Ripard <maxime.ripard@free-electrons.com>
 | 
				
			|||||||
 4 files changed, 121 insertions(+)
 | 
					 4 files changed, 121 insertions(+)
 | 
				
			||||||
 create mode 100644 drivers/clk/sunxi/clk-sun8i-bus-gates.c
 | 
					 create mode 100644 drivers/clk/sunxi/clk-sun8i-bus-gates.c
 | 
				
			||||||
 | 
					
 | 
				
			||||||
diff --git a/Documentation/devicetree/bindings/clock/sunxi.txt b/Documentation/devicetree/bindings/clock/sunxi.txt
 | 
					 | 
				
			||||||
index ef0b452..014eab8 100644
 | 
					 | 
				
			||||||
diff --git a/drivers/clk/sunxi/Makefile b/drivers/clk/sunxi/Makefile
 | 
					 | 
				
			||||||
index 103efab..abf4916 100644
 | 
					 | 
				
			||||||
--- a/drivers/clk/sunxi/Makefile
 | 
					--- a/drivers/clk/sunxi/Makefile
 | 
				
			||||||
+++ b/drivers/clk/sunxi/Makefile
 | 
					+++ b/drivers/clk/sunxi/Makefile
 | 
				
			||||||
@@ -10,6 +10,7 @@ obj-y += clk-a10-pll2.o
 | 
					@@ -10,6 +10,7 @@ obj-y += clk-a10-pll2.o
 | 
				
			||||||
@@ -38,9 +34,6 @@ index 103efab..abf4916 100644
 | 
				
			|||||||
 obj-y += clk-sun8i-mbus.o
 | 
					 obj-y += clk-sun8i-mbus.o
 | 
				
			||||||
 obj-y += clk-sun9i-core.o
 | 
					 obj-y += clk-sun9i-core.o
 | 
				
			||||||
 obj-y += clk-sun9i-mmc.o
 | 
					 obj-y += clk-sun9i-mmc.o
 | 
				
			||||||
diff --git a/drivers/clk/sunxi/clk-sun8i-bus-gates.c b/drivers/clk/sunxi/clk-sun8i-bus-gates.c
 | 
					 | 
				
			||||||
new file mode 100644
 | 
					 | 
				
			||||||
index 0000000..7ab60c5
 | 
					 | 
				
			||||||
--- /dev/null
 | 
					--- /dev/null
 | 
				
			||||||
+++ b/drivers/clk/sunxi/clk-sun8i-bus-gates.c
 | 
					+++ b/drivers/clk/sunxi/clk-sun8i-bus-gates.c
 | 
				
			||||||
@@ -0,0 +1,112 @@
 | 
					@@ -0,0 +1,112 @@
 | 
				
			||||||
@@ -156,11 +149,9 @@ index 0000000..7ab60c5
 | 
				
			|||||||
+
 | 
					+
 | 
				
			||||||
+CLK_OF_DECLARE(sun8i_h3_bus_gates, "allwinner,sun8i-h3-bus-gates-clk",
 | 
					+CLK_OF_DECLARE(sun8i_h3_bus_gates, "allwinner,sun8i-h3-bus-gates-clk",
 | 
				
			||||||
+	       sun8i_h3_bus_gates_init);
 | 
					+	       sun8i_h3_bus_gates_init);
 | 
				
			||||||
diff --git a/drivers/clk/sunxi/clk-sunxi.c b/drivers/clk/sunxi/clk-sunxi.c
 | 
					 | 
				
			||||||
index 9c79af0c..5ba2188 100644
 | 
					 | 
				
			||||||
--- a/drivers/clk/sunxi/clk-sunxi.c
 | 
					--- a/drivers/clk/sunxi/clk-sunxi.c
 | 
				
			||||||
+++ b/drivers/clk/sunxi/clk-sunxi.c
 | 
					+++ b/drivers/clk/sunxi/clk-sunxi.c
 | 
				
			||||||
@@ -778,6 +778,10 @@ static const struct mux_data sun6i_a31_ahb1_mux_data __initconst = {
 | 
					@@ -778,6 +778,10 @@ static const struct mux_data sun6i_a31_a
 | 
				
			||||||
 	.shift = 12,
 | 
					 	.shift = 12,
 | 
				
			||||||
 };
 | 
					 };
 | 
				
			||||||
 
 | 
					 
 | 
				
			||||||
@@ -171,7 +162,7 @@ index 9c79af0c..5ba2188 100644
 | 
				
			|||||||
 static void __init sunxi_mux_clk_setup(struct device_node *node,
 | 
					 static void __init sunxi_mux_clk_setup(struct device_node *node,
 | 
				
			||||||
 				       struct mux_data *data)
 | 
					 				       struct mux_data *data)
 | 
				
			||||||
 {
 | 
					 {
 | 
				
			||||||
@@ -1130,6 +1134,7 @@ static const struct of_device_id clk_divs_match[] __initconst = {
 | 
					@@ -1130,6 +1134,7 @@ static const struct of_device_id clk_div
 | 
				
			||||||
 static const struct of_device_id clk_mux_match[] __initconst = {
 | 
					 static const struct of_device_id clk_mux_match[] __initconst = {
 | 
				
			||||||
 	{.compatible = "allwinner,sun4i-a10-cpu-clk", .data = &sun4i_cpu_mux_data,},
 | 
					 	{.compatible = "allwinner,sun4i-a10-cpu-clk", .data = &sun4i_cpu_mux_data,},
 | 
				
			||||||
 	{.compatible = "allwinner,sun6i-a31-ahb1-mux-clk", .data = &sun6i_a31_ahb1_mux_data,},
 | 
					 	{.compatible = "allwinner,sun6i-a31-ahb1-mux-clk", .data = &sun6i_a31_ahb1_mux_data,},
 | 
				
			||||||
@@ -179,7 +170,7 @@ index 9c79af0c..5ba2188 100644
 | 
				
			|||||||
 	{}
 | 
					 	{}
 | 
				
			||||||
 };
 | 
					 };
 | 
				
			||||||
 
 | 
					 
 | 
				
			||||||
@@ -1212,6 +1217,7 @@ CLK_OF_DECLARE(sun6i_a31_clk_init, "allwinner,sun6i-a31", sun6i_init_clocks);
 | 
					@@ -1212,6 +1217,7 @@ CLK_OF_DECLARE(sun6i_a31_clk_init, "allw
 | 
				
			||||||
 CLK_OF_DECLARE(sun6i_a31s_clk_init, "allwinner,sun6i-a31s", sun6i_init_clocks);
 | 
					 CLK_OF_DECLARE(sun6i_a31s_clk_init, "allwinner,sun6i-a31s", sun6i_init_clocks);
 | 
				
			||||||
 CLK_OF_DECLARE(sun8i_a23_clk_init, "allwinner,sun8i-a23", sun6i_init_clocks);
 | 
					 CLK_OF_DECLARE(sun8i_a23_clk_init, "allwinner,sun8i-a23", sun6i_init_clocks);
 | 
				
			||||||
 CLK_OF_DECLARE(sun8i_a33_clk_init, "allwinner,sun8i-a33", sun6i_init_clocks);
 | 
					 CLK_OF_DECLARE(sun8i_a33_clk_init, "allwinner,sun8i-a33", sun6i_init_clocks);
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -13,9 +13,6 @@ Signed-off-by: Maxime Ripard <maxime.ripard@free-electrons.com>
 | 
				
			|||||||
 1 file changed, 497 insertions(+)
 | 
					 1 file changed, 497 insertions(+)
 | 
				
			||||||
 create mode 100644 arch/arm/boot/dts/sun8i-h3.dtsi
 | 
					 create mode 100644 arch/arm/boot/dts/sun8i-h3.dtsi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
diff --git a/arch/arm/boot/dts/sun8i-h3.dtsi b/arch/arm/boot/dts/sun8i-h3.dtsi
 | 
					 | 
				
			||||||
new file mode 100644
 | 
					 | 
				
			||||||
index 0000000..1524130e
 | 
					 | 
				
			||||||
--- /dev/null
 | 
					--- /dev/null
 | 
				
			||||||
+++ b/arch/arm/boot/dts/sun8i-h3.dtsi
 | 
					+++ b/arch/arm/boot/dts/sun8i-h3.dtsi
 | 
				
			||||||
@@ -0,0 +1,497 @@
 | 
					@@ -0,0 +1,497 @@
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -17,11 +17,9 @@ Signed-off-by: Maxime Ripard <maxime.ripard@free-electrons.com>
 | 
				
			|||||||
 2 files changed, 79 insertions(+), 1 deletion(-)
 | 
					 2 files changed, 79 insertions(+), 1 deletion(-)
 | 
				
			||||||
 create mode 100644 arch/arm/boot/dts/sun8i-h3-orangepi-plus.dts
 | 
					 create mode 100644 arch/arm/boot/dts/sun8i-h3-orangepi-plus.dts
 | 
				
			||||||
 | 
					
 | 
				
			||||||
diff --git a/arch/arm/boot/dts/Makefile b/arch/arm/boot/dts/Makefile
 | 
					 | 
				
			||||||
index e8f44c7..cc7309b 100644
 | 
					 | 
				
			||||||
--- a/arch/arm/boot/dts/Makefile
 | 
					--- a/arch/arm/boot/dts/Makefile
 | 
				
			||||||
+++ b/arch/arm/boot/dts/Makefile
 | 
					+++ b/arch/arm/boot/dts/Makefile
 | 
				
			||||||
@@ -661,7 +661,8 @@ dtb-$(CONFIG_MACH_SUN8I) += \
 | 
					@@ -660,7 +660,8 @@ dtb-$(CONFIG_MACH_SUN8I) += \
 | 
				
			||||||
 	sun8i-a33-ga10h-v1.1.dtb \
 | 
					 	sun8i-a33-ga10h-v1.1.dtb \
 | 
				
			||||||
 	sun8i-a33-ippo-q8h-v1.2.dtb \
 | 
					 	sun8i-a33-ippo-q8h-v1.2.dtb \
 | 
				
			||||||
 	sun8i-a33-q8-tablet.dtb \
 | 
					 	sun8i-a33-q8-tablet.dtb \
 | 
				
			||||||
@@ -31,9 +29,6 @@ index e8f44c7..cc7309b 100644
 | 
				
			|||||||
 dtb-$(CONFIG_MACH_SUN9I) += \
 | 
					 dtb-$(CONFIG_MACH_SUN9I) += \
 | 
				
			||||||
 	sun9i-a80-optimus.dtb \
 | 
					 	sun9i-a80-optimus.dtb \
 | 
				
			||||||
 	sun9i-a80-cubieboard4.dtb
 | 
					 	sun9i-a80-cubieboard4.dtb
 | 
				
			||||||
diff --git a/arch/arm/boot/dts/sun8i-h3-orangepi-plus.dts b/arch/arm/boot/dts/sun8i-h3-orangepi-plus.dts
 | 
					 | 
				
			||||||
new file mode 100644
 | 
					 | 
				
			||||||
index 0000000..e67df59
 | 
					 | 
				
			||||||
--- /dev/null
 | 
					--- /dev/null
 | 
				
			||||||
+++ b/arch/arm/boot/dts/sun8i-h3-orangepi-plus.dts
 | 
					+++ b/arch/arm/boot/dts/sun8i-h3-orangepi-plus.dts
 | 
				
			||||||
@@ -0,0 +1,77 @@
 | 
					@@ -0,0 +1,77 @@
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -13,8 +13,6 @@ Signed-off-by: Kishon Vijay Abraham I <kishon@ti.com>
 | 
				
			|||||||
 drivers/phy/phy-sun4i-usb.c | 121 +++++++++++++++++++++++++++++---------------
 | 
					 drivers/phy/phy-sun4i-usb.c | 121 +++++++++++++++++++++++++++++---------------
 | 
				
			||||||
 1 file changed, 79 insertions(+), 42 deletions(-)
 | 
					 1 file changed, 79 insertions(+), 42 deletions(-)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
diff --git a/drivers/phy/phy-sun4i-usb.c b/drivers/phy/phy-sun4i-usb.c
 | 
					 | 
				
			||||||
index b12964b..35b1fa3 100644
 | 
					 | 
				
			||||||
--- a/drivers/phy/phy-sun4i-usb.c
 | 
					--- a/drivers/phy/phy-sun4i-usb.c
 | 
				
			||||||
+++ b/drivers/phy/phy-sun4i-usb.c
 | 
					+++ b/drivers/phy/phy-sun4i-usb.c
 | 
				
			||||||
@@ -32,6 +32,7 @@
 | 
					@@ -32,6 +32,7 @@
 | 
				
			||||||
@@ -52,7 +50,7 @@ index b12964b..35b1fa3 100644
 | 
				
			|||||||
 	struct sun4i_usb_phy {
 | 
					 	struct sun4i_usb_phy {
 | 
				
			||||||
 		struct phy *phy;
 | 
					 		struct phy *phy;
 | 
				
			||||||
 		void __iomem *pmu;
 | 
					 		void __iomem *pmu;
 | 
				
			||||||
@@ -159,17 +171,14 @@ static void sun4i_usb_phy_write(struct sun4i_usb_phy *phy, u32 addr, u32 data,
 | 
					@@ -159,17 +171,14 @@ static void sun4i_usb_phy_write(struct s
 | 
				
			||||||
 {
 | 
					 {
 | 
				
			||||||
 	struct sun4i_usb_phy_data *phy_data = to_sun4i_usb_phy_data(phy);
 | 
					 	struct sun4i_usb_phy_data *phy_data = to_sun4i_usb_phy_data(phy);
 | 
				
			||||||
 	u32 temp, usbc_bit = BIT(phy->index * 2);
 | 
					 	u32 temp, usbc_bit = BIT(phy->index * 2);
 | 
				
			||||||
@@ -72,7 +70,7 @@ index b12964b..35b1fa3 100644
 | 
				
			|||||||
 	}
 | 
					 	}
 | 
				
			||||||
 
 | 
					 
 | 
				
			||||||
 	for (i = 0; i < len; i++) {
 | 
					 	for (i = 0; i < len; i++) {
 | 
				
			||||||
@@ -249,7 +258,8 @@ static int sun4i_usb_phy_init(struct phy *_phy)
 | 
					@@ -249,7 +258,8 @@ static int sun4i_usb_phy_init(struct phy
 | 
				
			||||||
 	sun4i_usb_phy_write(phy, PHY_TX_AMPLITUDE_TUNE, 0x14, 5);
 | 
					 	sun4i_usb_phy_write(phy, PHY_TX_AMPLITUDE_TUNE, 0x14, 5);
 | 
				
			||||||
 
 | 
					 
 | 
				
			||||||
 	/* Disconnect threshold adjustment */
 | 
					 	/* Disconnect threshold adjustment */
 | 
				
			||||||
@@ -82,7 +80,7 @@ index b12964b..35b1fa3 100644
 | 
				
			|||||||
 
 | 
					 
 | 
				
			||||||
 	sun4i_usb_phy_passby(phy, 1);
 | 
					 	sun4i_usb_phy_passby(phy, 1);
 | 
				
			||||||
 
 | 
					 
 | 
				
			||||||
@@ -476,7 +486,7 @@ static struct phy *sun4i_usb_phy_xlate(struct device *dev,
 | 
					@@ -476,7 +486,7 @@ static struct phy *sun4i_usb_phy_xlate(s
 | 
				
			||||||
 {
 | 
					 {
 | 
				
			||||||
 	struct sun4i_usb_phy_data *data = dev_get_drvdata(dev);
 | 
					 	struct sun4i_usb_phy_data *data = dev_get_drvdata(dev);
 | 
				
			||||||
 
 | 
					 
 | 
				
			||||||
@@ -91,7 +89,7 @@ index b12964b..35b1fa3 100644
 | 
				
			|||||||
 		return ERR_PTR(-ENODEV);
 | 
					 		return ERR_PTR(-ENODEV);
 | 
				
			||||||
 
 | 
					 
 | 
				
			||||||
 	return data->phys[args->args[0]].phy;
 | 
					 	return data->phys[args->args[0]].phy;
 | 
				
			||||||
@@ -511,7 +521,6 @@ static int sun4i_usb_phy_probe(struct platform_device *pdev)
 | 
					@@ -511,7 +521,6 @@ static int sun4i_usb_phy_probe(struct pl
 | 
				
			||||||
 	struct device *dev = &pdev->dev;
 | 
					 	struct device *dev = &pdev->dev;
 | 
				
			||||||
 	struct device_node *np = dev->of_node;
 | 
					 	struct device_node *np = dev->of_node;
 | 
				
			||||||
 	struct phy_provider *phy_provider;
 | 
					 	struct phy_provider *phy_provider;
 | 
				
			||||||
@@ -99,7 +97,7 @@ index b12964b..35b1fa3 100644
 | 
				
			|||||||
 	struct resource *res;
 | 
					 	struct resource *res;
 | 
				
			||||||
 	int i, ret;
 | 
					 	int i, ret;
 | 
				
			||||||
 
 | 
					 
 | 
				
			||||||
@@ -522,29 +531,9 @@ static int sun4i_usb_phy_probe(struct platform_device *pdev)
 | 
					@@ -522,29 +531,9 @@ static int sun4i_usb_phy_probe(struct pl
 | 
				
			||||||
 	mutex_init(&data->mutex);
 | 
					 	mutex_init(&data->mutex);
 | 
				
			||||||
 	INIT_DELAYED_WORK(&data->detect, sun4i_usb_phy0_id_vbus_det_scan);
 | 
					 	INIT_DELAYED_WORK(&data->detect, sun4i_usb_phy0_id_vbus_det_scan);
 | 
				
			||||||
 	dev_set_drvdata(dev, data);
 | 
					 	dev_set_drvdata(dev, data);
 | 
				
			||||||
@@ -132,7 +130,7 @@ index b12964b..35b1fa3 100644
 | 
				
			|||||||
 
 | 
					 
 | 
				
			||||||
 	res = platform_get_resource_byname(pdev, IORESOURCE_MEM, "phy_ctrl");
 | 
					 	res = platform_get_resource_byname(pdev, IORESOURCE_MEM, "phy_ctrl");
 | 
				
			||||||
 	data->base = devm_ioremap_resource(dev, res);
 | 
					 	data->base = devm_ioremap_resource(dev, res);
 | 
				
			||||||
@@ -590,7 +579,7 @@ static int sun4i_usb_phy_probe(struct platform_device *pdev)
 | 
					@@ -590,7 +579,7 @@ static int sun4i_usb_phy_probe(struct pl
 | 
				
			||||||
 		}
 | 
					 		}
 | 
				
			||||||
 	}
 | 
					 	}
 | 
				
			||||||
 
 | 
					 
 | 
				
			||||||
@@ -141,7 +139,7 @@ index b12964b..35b1fa3 100644
 | 
				
			|||||||
 		struct sun4i_usb_phy *phy = data->phys + i;
 | 
					 		struct sun4i_usb_phy *phy = data->phys + i;
 | 
				
			||||||
 		char name[16];
 | 
					 		char name[16];
 | 
				
			||||||
 
 | 
					 
 | 
				
			||||||
@@ -602,7 +591,7 @@ static int sun4i_usb_phy_probe(struct platform_device *pdev)
 | 
					@@ -602,7 +591,7 @@ static int sun4i_usb_phy_probe(struct pl
 | 
				
			||||||
 			phy->vbus = NULL;
 | 
					 			phy->vbus = NULL;
 | 
				
			||||||
 		}
 | 
					 		}
 | 
				
			||||||
 
 | 
					 
 | 
				
			||||||
@@ -150,7 +148,7 @@ index b12964b..35b1fa3 100644
 | 
				
			|||||||
 			snprintf(name, sizeof(name), "usb%d_phy", i);
 | 
					 			snprintf(name, sizeof(name), "usb%d_phy", i);
 | 
				
			||||||
 		else
 | 
					 		else
 | 
				
			||||||
 			strlcpy(name, "usb_phy", sizeof(name));
 | 
					 			strlcpy(name, "usb_phy", sizeof(name));
 | 
				
			||||||
@@ -689,13 +678,61 @@ static int sun4i_usb_phy_probe(struct platform_device *pdev)
 | 
					@@ -689,13 +678,61 @@ static int sun4i_usb_phy_probe(struct pl
 | 
				
			||||||
 	return 0;
 | 
					 	return 0;
 | 
				
			||||||
 }
 | 
					 }
 | 
				
			||||||
 
 | 
					 
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -16,8 +16,6 @@ Signed-off-by: Kishon Vijay Abraham I <kishon@ti.com>
 | 
				
			|||||||
 drivers/phy/phy-sun4i-usb.c                        | 41 +++++++++++++++++-----
 | 
					 drivers/phy/phy-sun4i-usb.c                        | 41 +++++++++++++++++-----
 | 
				
			||||||
 2 files changed, 33 insertions(+), 9 deletions(-)
 | 
					 2 files changed, 33 insertions(+), 9 deletions(-)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
diff --git a/Documentation/devicetree/bindings/phy/sun4i-usb-phy.txt b/Documentation/devicetree/bindings/phy/sun4i-usb-phy.txt
 | 
					 | 
				
			||||||
index 0cebf74..95736d7 100644
 | 
					 | 
				
			||||||
--- a/Documentation/devicetree/bindings/phy/sun4i-usb-phy.txt
 | 
					--- a/Documentation/devicetree/bindings/phy/sun4i-usb-phy.txt
 | 
				
			||||||
+++ b/Documentation/devicetree/bindings/phy/sun4i-usb-phy.txt
 | 
					+++ b/Documentation/devicetree/bindings/phy/sun4i-usb-phy.txt
 | 
				
			||||||
@@ -9,6 +9,7 @@ Required properties:
 | 
					@@ -9,6 +9,7 @@ Required properties:
 | 
				
			||||||
@@ -28,8 +26,6 @@ index 0cebf74..95736d7 100644
 | 
				
			|||||||
 - reg : a list of offset + length pairs
 | 
					 - reg : a list of offset + length pairs
 | 
				
			||||||
 - reg-names :
 | 
					 - reg-names :
 | 
				
			||||||
   * "phy_ctrl"
 | 
					   * "phy_ctrl"
 | 
				
			||||||
diff --git a/drivers/phy/phy-sun4i-usb.c b/drivers/phy/phy-sun4i-usb.c
 | 
					 | 
				
			||||||
index 35b1fa3..bae54f7 100644
 | 
					 | 
				
			||||||
--- a/drivers/phy/phy-sun4i-usb.c
 | 
					--- a/drivers/phy/phy-sun4i-usb.c
 | 
				
			||||||
+++ b/drivers/phy/phy-sun4i-usb.c
 | 
					+++ b/drivers/phy/phy-sun4i-usb.c
 | 
				
			||||||
@@ -47,6 +47,9 @@
 | 
					@@ -47,6 +47,9 @@
 | 
				
			||||||
@@ -59,7 +55,7 @@ index 35b1fa3..bae54f7 100644
 | 
				
			|||||||
 };
 | 
					 };
 | 
				
			||||||
 
 | 
					 
 | 
				
			||||||
 struct sun4i_usb_phy_cfg {
 | 
					 struct sun4i_usb_phy_cfg {
 | 
				
			||||||
@@ -239,6 +243,7 @@ static int sun4i_usb_phy_init(struct phy *_phy)
 | 
					@@ -239,6 +243,7 @@ static int sun4i_usb_phy_init(struct phy
 | 
				
			||||||
 	struct sun4i_usb_phy *phy = phy_get_drvdata(_phy);
 | 
					 	struct sun4i_usb_phy *phy = phy_get_drvdata(_phy);
 | 
				
			||||||
 	struct sun4i_usb_phy_data *data = to_sun4i_usb_phy_data(phy);
 | 
					 	struct sun4i_usb_phy_data *data = to_sun4i_usb_phy_data(phy);
 | 
				
			||||||
 	int ret;
 | 
					 	int ret;
 | 
				
			||||||
@@ -67,13 +63,20 @@ index 35b1fa3..bae54f7 100644
 | 
				
			|||||||
 
 | 
					 
 | 
				
			||||||
 	ret = clk_prepare_enable(phy->clk);
 | 
					 	ret = clk_prepare_enable(phy->clk);
 | 
				
			||||||
 	if (ret)
 | 
					 	if (ret)
 | 
				
			||||||
@@ -250,16 +255,26 @@ static int sun4i_usb_phy_init(struct phy *_phy)
 | 
					@@ -250,16 +255,26 @@ static int sun4i_usb_phy_init(struct phy
 | 
				
			||||||
 		return ret;
 | 
					 		return ret;
 | 
				
			||||||
 	}
 | 
					 	}
 | 
				
			||||||
 
 | 
					 
 | 
				
			||||||
-	/* Enable USB 45 Ohm resistor calibration */
 | 
					-	/* Enable USB 45 Ohm resistor calibration */
 | 
				
			||||||
-	if (phy->index == 0)
 | 
					-	if (phy->index == 0)
 | 
				
			||||||
-		sun4i_usb_phy_write(phy, PHY_RES45_CAL_EN, 0x01, 1);
 | 
					-		sun4i_usb_phy_write(phy, PHY_RES45_CAL_EN, 0x01, 1);
 | 
				
			||||||
 | 
					-
 | 
				
			||||||
 | 
					-	/* Adjust PHY's magnitude and rate */
 | 
				
			||||||
 | 
					-	sun4i_usb_phy_write(phy, PHY_TX_AMPLITUDE_TUNE, 0x14, 5);
 | 
				
			||||||
 | 
					-
 | 
				
			||||||
 | 
					-	/* Disconnect threshold adjustment */
 | 
				
			||||||
 | 
					-	sun4i_usb_phy_write(phy, PHY_DISCON_TH_SEL,
 | 
				
			||||||
 | 
					-			    data->cfg->disc_thresh, 2);
 | 
				
			||||||
+	if (data->cfg->type == sun8i_h3_phy) {
 | 
					+	if (data->cfg->type == sun8i_h3_phy) {
 | 
				
			||||||
+		if (phy->index == 0) {
 | 
					+		if (phy->index == 0) {
 | 
				
			||||||
+			val = readl(data->base + REG_PHY_UNK_H3);
 | 
					+			val = readl(data->base + REG_PHY_UNK_H3);
 | 
				
			||||||
@@ -86,15 +89,10 @@ index 35b1fa3..bae54f7 100644
 | 
				
			|||||||
+		/* Enable USB 45 Ohm resistor calibration */
 | 
					+		/* Enable USB 45 Ohm resistor calibration */
 | 
				
			||||||
+		if (phy->index == 0)
 | 
					+		if (phy->index == 0)
 | 
				
			||||||
+			sun4i_usb_phy_write(phy, PHY_RES45_CAL_EN, 0x01, 1);
 | 
					+			sun4i_usb_phy_write(phy, PHY_RES45_CAL_EN, 0x01, 1);
 | 
				
			||||||
 
 | 
					+
 | 
				
			||||||
-	/* Adjust PHY's magnitude and rate */
 | 
					 | 
				
			||||||
-	sun4i_usb_phy_write(phy, PHY_TX_AMPLITUDE_TUNE, 0x14, 5);
 | 
					 | 
				
			||||||
+		/* Adjust PHY's magnitude and rate */
 | 
					+		/* Adjust PHY's magnitude and rate */
 | 
				
			||||||
+		sun4i_usb_phy_write(phy, PHY_TX_AMPLITUDE_TUNE, 0x14, 5);
 | 
					+		sun4i_usb_phy_write(phy, PHY_TX_AMPLITUDE_TUNE, 0x14, 5);
 | 
				
			||||||
 
 | 
					+
 | 
				
			||||||
-	/* Disconnect threshold adjustment */
 | 
					 | 
				
			||||||
-	sun4i_usb_phy_write(phy, PHY_DISCON_TH_SEL,
 | 
					 | 
				
			||||||
-			    data->cfg->disc_thresh, 2);
 | 
					 | 
				
			||||||
+		/* Disconnect threshold adjustment */
 | 
					+		/* Disconnect threshold adjustment */
 | 
				
			||||||
+		sun4i_usb_phy_write(phy, PHY_DISCON_TH_SEL,
 | 
					+		sun4i_usb_phy_write(phy, PHY_DISCON_TH_SEL,
 | 
				
			||||||
+				    data->cfg->disc_thresh, 2);
 | 
					+				    data->cfg->disc_thresh, 2);
 | 
				
			||||||
@@ -102,7 +100,7 @@ index 35b1fa3..bae54f7 100644
 | 
				
			|||||||
 
 | 
					 
 | 
				
			||||||
 	sun4i_usb_phy_passby(phy, 1);
 | 
					 	sun4i_usb_phy_passby(phy, 1);
 | 
				
			||||||
 
 | 
					 
 | 
				
			||||||
@@ -726,6 +741,13 @@ static const struct sun4i_usb_phy_cfg sun8i_a33_cfg = {
 | 
					@@ -726,6 +741,13 @@ static const struct sun4i_usb_phy_cfg su
 | 
				
			||||||
 	.dedicated_clocks = true,
 | 
					 	.dedicated_clocks = true,
 | 
				
			||||||
 };
 | 
					 };
 | 
				
			||||||
 
 | 
					 
 | 
				
			||||||
@@ -116,7 +114,7 @@ index 35b1fa3..bae54f7 100644
 | 
				
			|||||||
 static const struct of_device_id sun4i_usb_phy_of_match[] = {
 | 
					 static const struct of_device_id sun4i_usb_phy_of_match[] = {
 | 
				
			||||||
 	{ .compatible = "allwinner,sun4i-a10-usb-phy", .data = &sun4i_a10_cfg },
 | 
					 	{ .compatible = "allwinner,sun4i-a10-usb-phy", .data = &sun4i_a10_cfg },
 | 
				
			||||||
 	{ .compatible = "allwinner,sun5i-a13-usb-phy", .data = &sun5i_a13_cfg },
 | 
					 	{ .compatible = "allwinner,sun5i-a13-usb-phy", .data = &sun5i_a13_cfg },
 | 
				
			||||||
@@ -733,6 +755,7 @@ static const struct of_device_id sun4i_usb_phy_of_match[] = {
 | 
					@@ -733,6 +755,7 @@ static const struct of_device_id sun4i_u
 | 
				
			||||||
 	{ .compatible = "allwinner,sun7i-a20-usb-phy", .data = &sun7i_a20_cfg },
 | 
					 	{ .compatible = "allwinner,sun7i-a20-usb-phy", .data = &sun7i_a20_cfg },
 | 
				
			||||||
 	{ .compatible = "allwinner,sun8i-a23-usb-phy", .data = &sun8i_a23_cfg },
 | 
					 	{ .compatible = "allwinner,sun8i-a23-usb-phy", .data = &sun8i_a23_cfg },
 | 
				
			||||||
 	{ .compatible = "allwinner,sun8i-a33-usb-phy", .data = &sun8i_a33_cfg },
 | 
					 	{ .compatible = "allwinner,sun8i-a33-usb-phy", .data = &sun8i_a33_cfg },
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -17,8 +17,6 @@ Signed-off-by: Maxime Ripard <maxime.ripard@free-electrons.com>
 | 
				
			|||||||
 drivers/clk/sunxi/clk-usb.c                       | 12 ++++++++++++
 | 
					 drivers/clk/sunxi/clk-usb.c                       | 12 ++++++++++++
 | 
				
			||||||
 2 files changed, 13 insertions(+)
 | 
					 2 files changed, 13 insertions(+)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
diff --git a/Documentation/devicetree/bindings/clock/sunxi.txt b/Documentation/devicetree/bindings/clock/sunxi.txt
 | 
					 | 
				
			||||||
index 8a47b77..a94bb56 100644
 | 
					 | 
				
			||||||
--- a/Documentation/devicetree/bindings/clock/sunxi.txt
 | 
					--- a/Documentation/devicetree/bindings/clock/sunxi.txt
 | 
				
			||||||
+++ b/Documentation/devicetree/bindings/clock/sunxi.txt
 | 
					+++ b/Documentation/devicetree/bindings/clock/sunxi.txt
 | 
				
			||||||
@@ -68,6 +68,7 @@ Required properties:
 | 
					@@ -68,6 +68,7 @@ Required properties:
 | 
				
			||||||
@@ -29,11 +27,9 @@ index 8a47b77..a94bb56 100644
 | 
				
			|||||||
 	"allwinner,sun9i-a80-usb-mod-clk" - for usb gates + resets on A80
 | 
					 	"allwinner,sun9i-a80-usb-mod-clk" - for usb gates + resets on A80
 | 
				
			||||||
 	"allwinner,sun9i-a80-usb-phy-clk" - for usb phy gates + resets on A80
 | 
					 	"allwinner,sun9i-a80-usb-phy-clk" - for usb phy gates + resets on A80
 | 
				
			||||||
 
 | 
					 
 | 
				
			||||||
diff --git a/drivers/clk/sunxi/clk-usb.c b/drivers/clk/sunxi/clk-usb.c
 | 
					 | 
				
			||||||
index 1a72cd6..67b8e38 100644
 | 
					 | 
				
			||||||
--- a/drivers/clk/sunxi/clk-usb.c
 | 
					--- a/drivers/clk/sunxi/clk-usb.c
 | 
				
			||||||
+++ b/drivers/clk/sunxi/clk-usb.c
 | 
					+++ b/drivers/clk/sunxi/clk-usb.c
 | 
				
			||||||
@@ -243,3 +243,15 @@ static void __init sun9i_a80_usb_phy_setup(struct device_node *node)
 | 
					@@ -243,3 +243,15 @@ static void __init sun9i_a80_usb_phy_set
 | 
				
			||||||
 	sunxi_usb_clk_setup(node, &sun9i_a80_usb_phy_data, &a80_usb_phy_lock);
 | 
					 	sunxi_usb_clk_setup(node, &sun9i_a80_usb_phy_data, &a80_usb_phy_lock);
 | 
				
			||||||
 }
 | 
					 }
 | 
				
			||||||
 CLK_OF_DECLARE(sun9i_a80_usb_phy, "allwinner,sun9i-a80-usb-phy-clk", sun9i_a80_usb_phy_setup);
 | 
					 CLK_OF_DECLARE(sun9i_a80_usb_phy, "allwinner,sun9i-a80-usb-phy-clk", sun9i_a80_usb_phy_setup);
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -20,11 +20,9 @@ Signed-off-by: Maxime Ripard <maxime.ripard@free-electrons.com>
 | 
				
			|||||||
 3 files changed, 176 insertions(+)
 | 
					 3 files changed, 176 insertions(+)
 | 
				
			||||||
 create mode 100644 drivers/clk/sunxi/clk-a10-ve.c
 | 
					 create mode 100644 drivers/clk/sunxi/clk-a10-ve.c
 | 
				
			||||||
 | 
					
 | 
				
			||||||
diff --git a/Documentation/devicetree/bindings/clock/sunxi.txt b/Documentation/devicetree/bindings/clock/sunxi.txt
 | 
					 | 
				
			||||||
index 014eab8..e59f57b 100644
 | 
					 | 
				
			||||||
--- a/Documentation/devicetree/bindings/clock/sunxi.txt
 | 
					--- a/Documentation/devicetree/bindings/clock/sunxi.txt
 | 
				
			||||||
+++ b/Documentation/devicetree/bindings/clock/sunxi.txt
 | 
					+++ b/Documentation/devicetree/bindings/clock/sunxi.txt
 | 
				
			||||||
@@ -76,6 +76,7 @@ Required properties:
 | 
					@@ -71,6 +71,7 @@ Required properties:
 | 
				
			||||||
 	"allwinner,sun8i-h3-usb-clk" - for usb gates + resets on H3
 | 
					 	"allwinner,sun8i-h3-usb-clk" - for usb gates + resets on H3
 | 
				
			||||||
 	"allwinner,sun9i-a80-usb-mod-clk" - for usb gates + resets on A80
 | 
					 	"allwinner,sun9i-a80-usb-mod-clk" - for usb gates + resets on A80
 | 
				
			||||||
 	"allwinner,sun9i-a80-usb-phy-clk" - for usb phy gates + resets on A80
 | 
					 	"allwinner,sun9i-a80-usb-phy-clk" - for usb phy gates + resets on A80
 | 
				
			||||||
@@ -32,7 +30,7 @@ index 014eab8..e59f57b 100644
 | 
				
			|||||||
 
 | 
					 
 | 
				
			||||||
 Required properties for all clocks:
 | 
					 Required properties for all clocks:
 | 
				
			||||||
 - reg : shall be the control register address for the clock.
 | 
					 - reg : shall be the control register address for the clock.
 | 
				
			||||||
@@ -95,6 +96,9 @@ Required properties for all clocks:
 | 
					@@ -90,6 +91,9 @@ Required properties for all clocks:
 | 
				
			||||||
 And "allwinner,*-usb-clk" clocks also require:
 | 
					 And "allwinner,*-usb-clk" clocks also require:
 | 
				
			||||||
 - reset-cells : shall be set to 1
 | 
					 - reset-cells : shall be set to 1
 | 
				
			||||||
 
 | 
					 
 | 
				
			||||||
@@ -42,8 +40,6 @@ index 014eab8..e59f57b 100644
 | 
				
			|||||||
 The "allwinner,sun9i-a80-mmc-config-clk" clock also requires:
 | 
					 The "allwinner,sun9i-a80-mmc-config-clk" clock also requires:
 | 
				
			||||||
 - #reset-cells : shall be set to 1
 | 
					 - #reset-cells : shall be set to 1
 | 
				
			||||||
 - resets : shall be the reset control phandle for the mmc block.
 | 
					 - resets : shall be the reset control phandle for the mmc block.
 | 
				
			||||||
diff --git a/drivers/clk/sunxi/Makefile b/drivers/clk/sunxi/Makefile
 | 
					 | 
				
			||||||
index abf4916..1a909f9 100644
 | 
					 | 
				
			||||||
--- a/drivers/clk/sunxi/Makefile
 | 
					--- a/drivers/clk/sunxi/Makefile
 | 
				
			||||||
+++ b/drivers/clk/sunxi/Makefile
 | 
					+++ b/drivers/clk/sunxi/Makefile
 | 
				
			||||||
@@ -7,6 +7,7 @@ obj-y += clk-a10-codec.o
 | 
					@@ -7,6 +7,7 @@ obj-y += clk-a10-codec.o
 | 
				
			||||||
@@ -54,9 +50,6 @@ index abf4916..1a909f9 100644
 | 
				
			|||||||
 obj-y += clk-a20-gmac.o
 | 
					 obj-y += clk-a20-gmac.o
 | 
				
			||||||
 obj-y += clk-mod0.o
 | 
					 obj-y += clk-mod0.o
 | 
				
			||||||
 obj-y += clk-simple-gates.o
 | 
					 obj-y += clk-simple-gates.o
 | 
				
			||||||
diff --git a/drivers/clk/sunxi/clk-a10-ve.c b/drivers/clk/sunxi/clk-a10-ve.c
 | 
					 | 
				
			||||||
new file mode 100644
 | 
					 | 
				
			||||||
index 0000000..044c171
 | 
					 | 
				
			||||||
--- /dev/null
 | 
					--- /dev/null
 | 
				
			||||||
+++ b/drivers/clk/sunxi/clk-a10-ve.c
 | 
					+++ b/drivers/clk/sunxi/clk-a10-ve.c
 | 
				
			||||||
@@ -0,0 +1,171 @@
 | 
					@@ -0,0 +1,171 @@
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -12,8 +12,6 @@ Signed-off-by: Maxime Ripard <maxime.ripard@free-electrons.com>
 | 
				
			|||||||
 arch/arm/boot/dts/sun4i-a10.dtsi | 9 +++++++++
 | 
					 arch/arm/boot/dts/sun4i-a10.dtsi | 9 +++++++++
 | 
				
			||||||
 1 file changed, 9 insertions(+)
 | 
					 1 file changed, 9 insertions(+)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
diff --git a/arch/arm/boot/dts/sun4i-a10.dtsi b/arch/arm/boot/dts/sun4i-a10.dtsi
 | 
					 | 
				
			||||||
index 849d024..2c8f5e6 100644
 | 
					 | 
				
			||||||
--- a/arch/arm/boot/dts/sun4i-a10.dtsi
 | 
					--- a/arch/arm/boot/dts/sun4i-a10.dtsi
 | 
				
			||||||
+++ b/arch/arm/boot/dts/sun4i-a10.dtsi
 | 
					+++ b/arch/arm/boot/dts/sun4i-a10.dtsi
 | 
				
			||||||
@@ -520,6 +520,15 @@
 | 
					@@ -520,6 +520,15 @@
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -12,8 +12,6 @@ Signed-off-by: Maxime Ripard <maxime.ripard@free-electrons.com>
 | 
				
			|||||||
 arch/arm/boot/dts/sun7i-a20.dtsi | 9 +++++++++
 | 
					 arch/arm/boot/dts/sun7i-a20.dtsi | 9 +++++++++
 | 
				
			||||||
 1 file changed, 9 insertions(+)
 | 
					 1 file changed, 9 insertions(+)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
diff --git a/arch/arm/boot/dts/sun7i-a20.dtsi b/arch/arm/boot/dts/sun7i-a20.dtsi
 | 
					 | 
				
			||||||
index 21169c0..0940a78 100644
 | 
					 | 
				
			||||||
--- a/arch/arm/boot/dts/sun7i-a20.dtsi
 | 
					--- a/arch/arm/boot/dts/sun7i-a20.dtsi
 | 
				
			||||||
+++ b/arch/arm/boot/dts/sun7i-a20.dtsi
 | 
					+++ b/arch/arm/boot/dts/sun7i-a20.dtsi
 | 
				
			||||||
@@ -527,6 +527,15 @@
 | 
					@@ -527,6 +527,15 @@
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -11,11 +11,9 @@ Signed-off-by: Hans de Goede <hdegoede@redhat.com>
 | 
				
			|||||||
 drivers/usb/musb/sunxi.c | 4 ++++
 | 
					 drivers/usb/musb/sunxi.c | 4 ++++
 | 
				
			||||||
 1 file changed, 4 insertions(+)
 | 
					 1 file changed, 4 insertions(+)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
diff --git a/drivers/usb/musb/sunxi.c b/drivers/usb/musb/sunxi.c
 | 
					 | 
				
			||||||
index d9b0dc4..4b472b8 100644
 | 
					 | 
				
			||||||
--- a/drivers/usb/musb/sunxi.c
 | 
					--- a/drivers/usb/musb/sunxi.c
 | 
				
			||||||
+++ b/drivers/usb/musb/sunxi.c
 | 
					+++ b/drivers/usb/musb/sunxi.c
 | 
				
			||||||
@@ -194,6 +194,10 @@ static irqreturn_t sunxi_musb_interrupt(int irq, void *__hci)
 | 
					@@ -194,6 +194,10 @@ static irqreturn_t sunxi_musb_interrupt(
 | 
				
			||||||
 		musb_writeb(musb->mregs, MUSB_FADDR, 0);
 | 
					 		musb_writeb(musb->mregs, MUSB_FADDR, 0);
 | 
				
			||||||
 	}
 | 
					 	}
 | 
				
			||||||
 
 | 
					 
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -17,11 +17,9 @@ Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
 | 
				
			|||||||
 drivers/crypto/sunxi-ss/sun4i-ss-core.c | 2 ++
 | 
					 drivers/crypto/sunxi-ss/sun4i-ss-core.c | 2 ++
 | 
				
			||||||
 1 file changed, 2 insertions(+)
 | 
					 1 file changed, 2 insertions(+)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
diff --git a/drivers/crypto/sunxi-ss/sun4i-ss-core.c b/drivers/crypto/sunxi-ss/sun4i-ss-core.c
 | 
					 | 
				
			||||||
index eab6fe2..107cd2a 100644
 | 
					 | 
				
			||||||
--- a/drivers/crypto/sunxi-ss/sun4i-ss-core.c
 | 
					--- a/drivers/crypto/sunxi-ss/sun4i-ss-core.c
 | 
				
			||||||
+++ b/drivers/crypto/sunxi-ss/sun4i-ss-core.c
 | 
					+++ b/drivers/crypto/sunxi-ss/sun4i-ss-core.c
 | 
				
			||||||
@@ -39,6 +39,7 @@ static struct sun4i_ss_alg_template ss_algs[] = {
 | 
					@@ -39,6 +39,7 @@ static struct sun4i_ss_alg_template ss_a
 | 
				
			||||||
 		.import = sun4i_hash_import_md5,
 | 
					 		.import = sun4i_hash_import_md5,
 | 
				
			||||||
 		.halg = {
 | 
					 		.halg = {
 | 
				
			||||||
 			.digestsize = MD5_DIGEST_SIZE,
 | 
					 			.digestsize = MD5_DIGEST_SIZE,
 | 
				
			||||||
@@ -29,7 +27,7 @@ index eab6fe2..107cd2a 100644
 | 
				
			|||||||
 			.base = {
 | 
					 			.base = {
 | 
				
			||||||
 				.cra_name = "md5",
 | 
					 				.cra_name = "md5",
 | 
				
			||||||
 				.cra_driver_name = "md5-sun4i-ss",
 | 
					 				.cra_driver_name = "md5-sun4i-ss",
 | 
				
			||||||
@@ -66,6 +67,7 @@ static struct sun4i_ss_alg_template ss_algs[] = {
 | 
					@@ -66,6 +67,7 @@ static struct sun4i_ss_alg_template ss_a
 | 
				
			||||||
 		.import = sun4i_hash_import_sha1,
 | 
					 		.import = sun4i_hash_import_sha1,
 | 
				
			||||||
 		.halg = {
 | 
					 		.halg = {
 | 
				
			||||||
 			.digestsize = SHA1_DIGEST_SIZE,
 | 
					 			.digestsize = SHA1_DIGEST_SIZE,
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -16,8 +16,6 @@ Acked-by: Maxime Ripard <maxime.ripard@free-electrons.com>
 | 
				
			|||||||
 4 files changed, 522 insertions(+)
 | 
					 4 files changed, 522 insertions(+)
 | 
				
			||||||
 create mode 100644 drivers/pinctrl/sunxi/pinctrl-sun8i-h3.c
 | 
					 create mode 100644 drivers/pinctrl/sunxi/pinctrl-sun8i-h3.c
 | 
				
			||||||
 | 
					
 | 
				
			||||||
diff --git a/Documentation/devicetree/bindings/pinctrl/allwinner,sunxi-pinctrl.txt b/Documentation/devicetree/bindings/pinctrl/allwinner,sunxi-pinctrl.txt
 | 
					 | 
				
			||||||
index b321b26..e6ba602 100644
 | 
					 | 
				
			||||||
--- a/Documentation/devicetree/bindings/pinctrl/allwinner,sunxi-pinctrl.txt
 | 
					--- a/Documentation/devicetree/bindings/pinctrl/allwinner,sunxi-pinctrl.txt
 | 
				
			||||||
+++ b/Documentation/devicetree/bindings/pinctrl/allwinner,sunxi-pinctrl.txt
 | 
					+++ b/Documentation/devicetree/bindings/pinctrl/allwinner,sunxi-pinctrl.txt
 | 
				
			||||||
@@ -18,6 +18,7 @@ Required properties:
 | 
					@@ -18,6 +18,7 @@ Required properties:
 | 
				
			||||||
@@ -28,8 +26,6 @@ index b321b26..e6ba602 100644
 | 
				
			|||||||
 
 | 
					 
 | 
				
			||||||
 - reg: Should contain the register physical address and length for the
 | 
					 - reg: Should contain the register physical address and length for the
 | 
				
			||||||
   pin controller.
 | 
					   pin controller.
 | 
				
			||||||
diff --git a/drivers/pinctrl/sunxi/Kconfig b/drivers/pinctrl/sunxi/Kconfig
 | 
					 | 
				
			||||||
index e68fd95..89ab7f5 100644
 | 
					 | 
				
			||||||
--- a/drivers/pinctrl/sunxi/Kconfig
 | 
					--- a/drivers/pinctrl/sunxi/Kconfig
 | 
				
			||||||
+++ b/drivers/pinctrl/sunxi/Kconfig
 | 
					+++ b/drivers/pinctrl/sunxi/Kconfig
 | 
				
			||||||
@@ -51,6 +51,10 @@ config PINCTRL_SUN8I_A23_R
 | 
					@@ -51,6 +51,10 @@ config PINCTRL_SUN8I_A23_R
 | 
				
			||||||
@@ -43,19 +39,14 @@ index e68fd95..89ab7f5 100644
 | 
				
			|||||||
 config PINCTRL_SUN9I_A80
 | 
					 config PINCTRL_SUN9I_A80
 | 
				
			||||||
 	def_bool MACH_SUN9I
 | 
					 	def_bool MACH_SUN9I
 | 
				
			||||||
 	select PINCTRL_SUNXI_COMMON
 | 
					 	select PINCTRL_SUNXI_COMMON
 | 
				
			||||||
diff --git a/drivers/pinctrl/sunxi/Makefile b/drivers/pinctrl/sunxi/Makefile
 | 
					 | 
				
			||||||
index e080290..6bd818e 100644
 | 
					 | 
				
			||||||
--- a/drivers/pinctrl/sunxi/Makefile
 | 
					--- a/drivers/pinctrl/sunxi/Makefile
 | 
				
			||||||
+++ b/drivers/pinctrl/sunxi/Makefile
 | 
					+++ b/drivers/pinctrl/sunxi/Makefile
 | 
				
			||||||
@@ -13,4 +13,5 @@ obj-$(CONFIG_PINCTRL_SUN8I_A23)		+= pinctrl-sun8i-a23.o
 | 
					@@ -13,4 +13,5 @@ obj-$(CONFIG_PINCTRL_SUN8I_A23)		+= pinc
 | 
				
			||||||
 obj-$(CONFIG_PINCTRL_SUN8I_A23_R)	+= pinctrl-sun8i-a23-r.o
 | 
					 obj-$(CONFIG_PINCTRL_SUN8I_A23_R)	+= pinctrl-sun8i-a23-r.o
 | 
				
			||||||
 obj-$(CONFIG_PINCTRL_SUN8I_A33)		+= pinctrl-sun8i-a33.o
 | 
					 obj-$(CONFIG_PINCTRL_SUN8I_A33)		+= pinctrl-sun8i-a33.o
 | 
				
			||||||
 obj-$(CONFIG_PINCTRL_SUN8I_A83T)	+= pinctrl-sun8i-a83t.o
 | 
					 obj-$(CONFIG_PINCTRL_SUN8I_A83T)	+= pinctrl-sun8i-a83t.o
 | 
				
			||||||
+obj-$(CONFIG_PINCTRL_SUN8I_H3)		+= pinctrl-sun8i-h3.o
 | 
					+obj-$(CONFIG_PINCTRL_SUN8I_H3)		+= pinctrl-sun8i-h3.o
 | 
				
			||||||
 obj-$(CONFIG_PINCTRL_SUN9I_A80)		+= pinctrl-sun9i-a80.o
 | 
					 obj-$(CONFIG_PINCTRL_SUN9I_A80)		+= pinctrl-sun9i-a80.o
 | 
				
			||||||
diff --git a/drivers/pinctrl/sunxi/pinctrl-sun8i-h3.c b/drivers/pinctrl/sunxi/pinctrl-sun8i-h3.c
 | 
					 | 
				
			||||||
new file mode 100644
 | 
					 | 
				
			||||||
index 0000000..98d465d
 | 
					 | 
				
			||||||
--- /dev/null
 | 
					--- /dev/null
 | 
				
			||||||
+++ b/drivers/pinctrl/sunxi/pinctrl-sun8i-h3.c
 | 
					+++ b/drivers/pinctrl/sunxi/pinctrl-sun8i-h3.c
 | 
				
			||||||
@@ -0,0 +1,516 @@
 | 
					@@ -0,0 +1,516 @@
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -12,8 +12,6 @@ Signed-off-by: Jens Kuske <jenskuske@gmail.com>
 | 
				
			|||||||
 drivers/reset/reset-sunxi.c                        | 30 +++++++++++++++++++---
 | 
					 drivers/reset/reset-sunxi.c                        | 30 +++++++++++++++++++---
 | 
				
			||||||
 2 files changed, 28 insertions(+), 3 deletions(-)
 | 
					 2 files changed, 28 insertions(+), 3 deletions(-)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
diff --git a/Documentation/devicetree/bindings/reset/allwinner,sunxi-clock-reset.txt b/Documentation/devicetree/bindings/reset/allwinner,sunxi-clock-reset.txt
 | 
					 | 
				
			||||||
index c8f77571..e11f023 100644
 | 
					 | 
				
			||||||
--- a/Documentation/devicetree/bindings/reset/allwinner,sunxi-clock-reset.txt
 | 
					--- a/Documentation/devicetree/bindings/reset/allwinner,sunxi-clock-reset.txt
 | 
				
			||||||
+++ b/Documentation/devicetree/bindings/reset/allwinner,sunxi-clock-reset.txt
 | 
					+++ b/Documentation/devicetree/bindings/reset/allwinner,sunxi-clock-reset.txt
 | 
				
			||||||
@@ -8,6 +8,7 @@ Required properties:
 | 
					@@ -8,6 +8,7 @@ Required properties:
 | 
				
			||||||
@@ -24,11 +22,9 @@ index c8f77571..e11f023 100644
 | 
				
			|||||||
 - reg: should be register base and length as documented in the
 | 
					 - reg: should be register base and length as documented in the
 | 
				
			||||||
   datasheet
 | 
					   datasheet
 | 
				
			||||||
 - #reset-cells: 1, see below
 | 
					 - #reset-cells: 1, see below
 | 
				
			||||||
diff --git a/drivers/reset/reset-sunxi.c b/drivers/reset/reset-sunxi.c
 | 
					 | 
				
			||||||
index 3d95c87..c91e146 100644
 | 
					 | 
				
			||||||
--- a/drivers/reset/reset-sunxi.c
 | 
					--- a/drivers/reset/reset-sunxi.c
 | 
				
			||||||
+++ b/drivers/reset/reset-sunxi.c
 | 
					+++ b/drivers/reset/reset-sunxi.c
 | 
				
			||||||
@@ -75,7 +75,9 @@ static struct reset_control_ops sunxi_reset_ops = {
 | 
					@@ -75,7 +75,9 @@ static struct reset_control_ops sunxi_re
 | 
				
			||||||
 	.deassert	= sunxi_reset_deassert,
 | 
					 	.deassert	= sunxi_reset_deassert,
 | 
				
			||||||
 };
 | 
					 };
 | 
				
			||||||
 
 | 
					 
 | 
				
			||||||
@@ -39,7 +35,7 @@ index 3d95c87..c91e146 100644
 | 
				
			|||||||
 {
 | 
					 {
 | 
				
			||||||
 	struct sunxi_reset_data *data;
 | 
					 	struct sunxi_reset_data *data;
 | 
				
			||||||
 	struct resource res;
 | 
					 	struct resource res;
 | 
				
			||||||
@@ -108,6 +110,7 @@ static int sunxi_reset_init(struct device_node *np)
 | 
					@@ -108,6 +110,7 @@ static int sunxi_reset_init(struct devic
 | 
				
			||||||
 	data->rcdev.nr_resets = size * 32;
 | 
					 	data->rcdev.nr_resets = size * 32;
 | 
				
			||||||
 	data->rcdev.ops = &sunxi_reset_ops;
 | 
					 	data->rcdev.ops = &sunxi_reset_ops;
 | 
				
			||||||
 	data->rcdev.of_node = np;
 | 
					 	data->rcdev.of_node = np;
 | 
				
			||||||
@@ -47,7 +43,7 @@ index 3d95c87..c91e146 100644
 | 
				
			|||||||
 	reset_controller_register(&data->rcdev);
 | 
					 	reset_controller_register(&data->rcdev);
 | 
				
			||||||
 
 | 
					 
 | 
				
			||||||
 	return 0;
 | 
					 	return 0;
 | 
				
			||||||
@@ -117,6 +120,21 @@ static int sunxi_reset_init(struct device_node *np)
 | 
					@@ -117,6 +120,21 @@ err_alloc:
 | 
				
			||||||
 	return ret;
 | 
					 	return ret;
 | 
				
			||||||
 };
 | 
					 };
 | 
				
			||||||
 
 | 
					 
 | 
				
			||||||
@@ -69,7 +65,7 @@ index 3d95c87..c91e146 100644
 | 
				
			|||||||
 /*
 | 
					 /*
 | 
				
			||||||
  * These are the reset controller we need to initialize early on in
 | 
					  * These are the reset controller we need to initialize early on in
 | 
				
			||||||
  * our system, before we can even think of using a regular device
 | 
					  * our system, before we can even think of using a regular device
 | 
				
			||||||
@@ -124,15 +142,21 @@ static int sunxi_reset_init(struct device_node *np)
 | 
					@@ -124,15 +142,21 @@ err_alloc:
 | 
				
			||||||
  */
 | 
					  */
 | 
				
			||||||
 static const struct of_device_id sunxi_early_reset_dt_ids[] __initdata = {
 | 
					 static const struct of_device_id sunxi_early_reset_dt_ids[] __initdata = {
 | 
				
			||||||
 	{ .compatible = "allwinner,sun6i-a31-ahb1-reset", },
 | 
					 	{ .compatible = "allwinner,sun6i-a31-ahb1-reset", },
 | 
				
			||||||
@@ -80,12 +76,13 @@ index 3d95c87..c91e146 100644
 | 
				
			|||||||
 void __init sun6i_reset_init(void)
 | 
					 void __init sun6i_reset_init(void)
 | 
				
			||||||
 {
 | 
					 {
 | 
				
			||||||
 	struct device_node *np;
 | 
					 	struct device_node *np;
 | 
				
			||||||
 | 
					-
 | 
				
			||||||
 | 
					-	for_each_matching_node(np, sunxi_early_reset_dt_ids)
 | 
				
			||||||
 | 
					-		sunxi_reset_init(np);
 | 
				
			||||||
+	const struct of_device_id *match;
 | 
					+	const struct of_device_id *match;
 | 
				
			||||||
+	int (*of_xlate)(struct reset_controller_dev *rcdev,
 | 
					+	int (*of_xlate)(struct reset_controller_dev *rcdev,
 | 
				
			||||||
+			const struct of_phandle_args *reset_spec);
 | 
					+			const struct of_phandle_args *reset_spec);
 | 
				
			||||||
 
 | 
					+
 | 
				
			||||||
-	for_each_matching_node(np, sunxi_early_reset_dt_ids)
 | 
					 | 
				
			||||||
-		sunxi_reset_init(np);
 | 
					 | 
				
			||||||
+	for_each_matching_node_and_match(np, sunxi_early_reset_dt_ids, &match) {
 | 
					+	for_each_matching_node_and_match(np, sunxi_early_reset_dt_ids, &match) {
 | 
				
			||||||
+		of_xlate = match->data;
 | 
					+		of_xlate = match->data;
 | 
				
			||||||
+		sunxi_reset_init(np, of_xlate);
 | 
					+		sunxi_reset_init(np, of_xlate);
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -11,8 +11,6 @@ Signed-off-by: Hans de Goede <hdegoede@redhat.com>
 | 
				
			|||||||
 arch/arm/boot/dts/sun8i-h3.dtsi | 12 ++++++++++++
 | 
					 arch/arm/boot/dts/sun8i-h3.dtsi | 12 ++++++++++++
 | 
				
			||||||
 1 file changed, 12 insertions(+)
 | 
					 1 file changed, 12 insertions(+)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
diff --git a/arch/arm/boot/dts/sun8i-h3.dtsi b/arch/arm/boot/dts/sun8i-h3.dtsi
 | 
					 | 
				
			||||||
index 1524130e..cbab947 100644
 | 
					 | 
				
			||||||
--- a/arch/arm/boot/dts/sun8i-h3.dtsi
 | 
					--- a/arch/arm/boot/dts/sun8i-h3.dtsi
 | 
				
			||||||
+++ b/arch/arm/boot/dts/sun8i-h3.dtsi
 | 
					+++ b/arch/arm/boot/dts/sun8i-h3.dtsi
 | 
				
			||||||
@@ -269,6 +269,18 @@
 | 
					@@ -269,6 +269,18 @@
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -11,8 +11,6 @@ Signed-off-by: Hans de Goede <hdegoede@redhat.com>
 | 
				
			|||||||
 arch/arm/boot/dts/sun8i-h3.dtsi | 101 ++++++++++++++++++++++++++++++++++++++++
 | 
					 arch/arm/boot/dts/sun8i-h3.dtsi | 101 ++++++++++++++++++++++++++++++++++++++++
 | 
				
			||||||
 1 file changed, 101 insertions(+)
 | 
					 1 file changed, 101 insertions(+)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
diff --git a/arch/arm/boot/dts/sun8i-h3.dtsi b/arch/arm/boot/dts/sun8i-h3.dtsi
 | 
					 | 
				
			||||||
index cbab947..1169f515 100644
 | 
					 | 
				
			||||||
--- a/arch/arm/boot/dts/sun8i-h3.dtsi
 | 
					--- a/arch/arm/boot/dts/sun8i-h3.dtsi
 | 
				
			||||||
+++ b/arch/arm/boot/dts/sun8i-h3.dtsi
 | 
					+++ b/arch/arm/boot/dts/sun8i-h3.dtsi
 | 
				
			||||||
@@ -362,6 +362,107 @@
 | 
					@@ -362,6 +362,107 @@
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -13,8 +13,6 @@ Signed-off-by: Jens Kuske <jenskuske@gmail.com>
 | 
				
			|||||||
 arch/arm/boot/dts/sun8i-h3-orangepi-plus.dts | 44 ++++++++++++++++++++++++++++
 | 
					 arch/arm/boot/dts/sun8i-h3-orangepi-plus.dts | 44 ++++++++++++++++++++++++++++
 | 
				
			||||||
 1 file changed, 44 insertions(+)
 | 
					 1 file changed, 44 insertions(+)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
diff --git a/arch/arm/boot/dts/sun8i-h3-orangepi-plus.dts b/arch/arm/boot/dts/sun8i-h3-orangepi-plus.dts
 | 
					 | 
				
			||||||
index e67df59..1cb6c66 100644
 | 
					 | 
				
			||||||
--- a/arch/arm/boot/dts/sun8i-h3-orangepi-plus.dts
 | 
					--- a/arch/arm/boot/dts/sun8i-h3-orangepi-plus.dts
 | 
				
			||||||
+++ b/arch/arm/boot/dts/sun8i-h3-orangepi-plus.dts
 | 
					+++ b/arch/arm/boot/dts/sun8i-h3-orangepi-plus.dts
 | 
				
			||||||
@@ -58,6 +58,35 @@
 | 
					@@ -58,6 +58,35 @@
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -12,11 +12,9 @@ Signed-off-by: Maxime Ripard <maxime.ripard@free-electrons.com>
 | 
				
			|||||||
 drivers/clk/sunxi/clk-sun8i-bus-gates.c | 2 +-
 | 
					 drivers/clk/sunxi/clk-sun8i-bus-gates.c | 2 +-
 | 
				
			||||||
 1 file changed, 1 insertion(+), 1 deletion(-)
 | 
					 1 file changed, 1 insertion(+), 1 deletion(-)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
diff --git a/drivers/clk/sunxi/clk-sun8i-bus-gates.c b/drivers/clk/sunxi/clk-sun8i-bus-gates.c
 | 
					 | 
				
			||||||
index 7ab60c5..b8c7753 100644
 | 
					 | 
				
			||||||
--- a/drivers/clk/sunxi/clk-sun8i-bus-gates.c
 | 
					--- a/drivers/clk/sunxi/clk-sun8i-bus-gates.c
 | 
				
			||||||
+++ b/drivers/clk/sunxi/clk-sun8i-bus-gates.c
 | 
					+++ b/drivers/clk/sunxi/clk-sun8i-bus-gates.c
 | 
				
			||||||
@@ -40,7 +40,7 @@ static void __init sun8i_h3_bus_gates_init(struct device_node *node)
 | 
					@@ -40,7 +40,7 @@ static void __init sun8i_h3_bus_gates_in
 | 
				
			||||||
 	const __be32 *p;
 | 
					 	const __be32 *p;
 | 
				
			||||||
 	int number, i;
 | 
					 	int number, i;
 | 
				
			||||||
 	u8 clk_bit;
 | 
					 	u8 clk_bit;
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -16,11 +16,9 @@ Signed-off-by: Philipp Zabel <p.zabel@pengutronix.de>
 | 
				
			|||||||
 include/linux/reset.h |  9 +++++++++
 | 
					 include/linux/reset.h |  9 +++++++++
 | 
				
			||||||
 2 files changed, 38 insertions(+), 11 deletions(-)
 | 
					 2 files changed, 38 insertions(+), 11 deletions(-)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
diff --git a/drivers/reset/core.c b/drivers/reset/core.c
 | 
					 | 
				
			||||||
index 7955e00..81ae17d 100644
 | 
					 | 
				
			||||||
--- a/drivers/reset/core.c
 | 
					--- a/drivers/reset/core.c
 | 
				
			||||||
+++ b/drivers/reset/core.c
 | 
					+++ b/drivers/reset/core.c
 | 
				
			||||||
@@ -141,27 +141,24 @@ int reset_control_status(struct reset_control *rstc)
 | 
					@@ -141,27 +141,24 @@ int reset_control_status(struct reset_co
 | 
				
			||||||
 EXPORT_SYMBOL_GPL(reset_control_status);
 | 
					 EXPORT_SYMBOL_GPL(reset_control_status);
 | 
				
			||||||
 
 | 
					 
 | 
				
			||||||
 /**
 | 
					 /**
 | 
				
			||||||
@@ -56,7 +54,7 @@ index 7955e00..81ae17d 100644
 | 
				
			|||||||
 	ret = of_parse_phandle_with_args(node, "resets", "#reset-cells",
 | 
					 	ret = of_parse_phandle_with_args(node, "resets", "#reset-cells",
 | 
				
			||||||
 					 index, &args);
 | 
					 					 index, &args);
 | 
				
			||||||
 	if (ret)
 | 
					 	if (ret)
 | 
				
			||||||
@@ -202,6 +199,27 @@ struct reset_control *of_reset_control_get(struct device_node *node,
 | 
					@@ -202,6 +199,27 @@ struct reset_control *of_reset_control_g
 | 
				
			||||||
 
 | 
					 
 | 
				
			||||||
 	return rstc;
 | 
					 	return rstc;
 | 
				
			||||||
 }
 | 
					 }
 | 
				
			||||||
@@ -84,11 +82,9 @@ index 7955e00..81ae17d 100644
 | 
				
			|||||||
 EXPORT_SYMBOL_GPL(of_reset_control_get);
 | 
					 EXPORT_SYMBOL_GPL(of_reset_control_get);
 | 
				
			||||||
 
 | 
					 
 | 
				
			||||||
 /**
 | 
					 /**
 | 
				
			||||||
diff --git a/include/linux/reset.h b/include/linux/reset.h
 | 
					 | 
				
			||||||
index 7f65f9c..6db74ad 100644
 | 
					 | 
				
			||||||
--- a/include/linux/reset.h
 | 
					--- a/include/linux/reset.h
 | 
				
			||||||
+++ b/include/linux/reset.h
 | 
					+++ b/include/linux/reset.h
 | 
				
			||||||
@@ -38,6 +38,9 @@ static inline struct reset_control *devm_reset_control_get_optional(
 | 
					@@ -38,6 +38,9 @@ static inline struct reset_control *devm
 | 
				
			||||||
 struct reset_control *of_reset_control_get(struct device_node *node,
 | 
					 struct reset_control *of_reset_control_get(struct device_node *node,
 | 
				
			||||||
 					   const char *id);
 | 
					 					   const char *id);
 | 
				
			||||||
 
 | 
					 
 | 
				
			||||||
@@ -98,7 +94,7 @@ index 7f65f9c..6db74ad 100644
 | 
				
			|||||||
 #else
 | 
					 #else
 | 
				
			||||||
 
 | 
					 
 | 
				
			||||||
 static inline int reset_control_reset(struct reset_control *rstc)
 | 
					 static inline int reset_control_reset(struct reset_control *rstc)
 | 
				
			||||||
@@ -106,6 +109,12 @@ static inline struct reset_control *of_reset_control_get(
 | 
					@@ -106,6 +109,12 @@ static inline struct reset_control *of_r
 | 
				
			||||||
 	return ERR_PTR(-ENOSYS);
 | 
					 	return ERR_PTR(-ENOSYS);
 | 
				
			||||||
 }
 | 
					 }
 | 
				
			||||||
 
 | 
					 
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -21,11 +21,9 @@ Signed-off-by: Philipp Zabel <p.zabel@pengutronix.de>
 | 
				
			|||||||
 drivers/reset/core.c | 5 ++++-
 | 
					 drivers/reset/core.c | 5 ++++-
 | 
				
			||||||
 1 file changed, 4 insertions(+), 1 deletion(-)
 | 
					 1 file changed, 4 insertions(+), 1 deletion(-)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
diff --git a/drivers/reset/core.c b/drivers/reset/core.c
 | 
					 | 
				
			||||||
index 81ae17d..77cfc49 100644
 | 
					 | 
				
			||||||
--- a/drivers/reset/core.c
 | 
					--- a/drivers/reset/core.c
 | 
				
			||||||
+++ b/drivers/reset/core.c
 | 
					+++ b/drivers/reset/core.c
 | 
				
			||||||
@@ -215,9 +215,12 @@ struct reset_control *of_reset_control_get(struct device_node *node,
 | 
					@@ -215,9 +215,12 @@ struct reset_control *of_reset_control_g
 | 
				
			||||||
 {
 | 
					 {
 | 
				
			||||||
 	int index = 0;
 | 
					 	int index = 0;
 | 
				
			||||||
 
 | 
					 
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -13,11 +13,9 @@ Signed-off-by: Philipp Zabel <p.zabel@pengutronix.de>
 | 
				
			|||||||
 include/linux/reset.h | 8 ++++----
 | 
					 include/linux/reset.h | 8 ++++----
 | 
				
			||||||
 2 files changed, 8 insertions(+), 8 deletions(-)
 | 
					 2 files changed, 8 insertions(+), 8 deletions(-)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
diff --git a/drivers/reset/core.c b/drivers/reset/core.c
 | 
					 | 
				
			||||||
index 77cfc49..9ab9290 100644
 | 
					 | 
				
			||||||
--- a/drivers/reset/core.c
 | 
					--- a/drivers/reset/core.c
 | 
				
			||||||
+++ b/drivers/reset/core.c
 | 
					+++ b/drivers/reset/core.c
 | 
				
			||||||
@@ -95,7 +95,7 @@ int reset_control_reset(struct reset_control *rstc)
 | 
					@@ -95,7 +95,7 @@ int reset_control_reset(struct reset_con
 | 
				
			||||||
 	if (rstc->rcdev->ops->reset)
 | 
					 	if (rstc->rcdev->ops->reset)
 | 
				
			||||||
 		return rstc->rcdev->ops->reset(rstc->rcdev, rstc->id);
 | 
					 		return rstc->rcdev->ops->reset(rstc->rcdev, rstc->id);
 | 
				
			||||||
 
 | 
					 
 | 
				
			||||||
@@ -26,7 +24,7 @@ index 77cfc49..9ab9290 100644
 | 
				
			|||||||
 }
 | 
					 }
 | 
				
			||||||
 EXPORT_SYMBOL_GPL(reset_control_reset);
 | 
					 EXPORT_SYMBOL_GPL(reset_control_reset);
 | 
				
			||||||
 
 | 
					 
 | 
				
			||||||
@@ -108,7 +108,7 @@ int reset_control_assert(struct reset_control *rstc)
 | 
					@@ -108,7 +108,7 @@ int reset_control_assert(struct reset_co
 | 
				
			||||||
 	if (rstc->rcdev->ops->assert)
 | 
					 	if (rstc->rcdev->ops->assert)
 | 
				
			||||||
 		return rstc->rcdev->ops->assert(rstc->rcdev, rstc->id);
 | 
					 		return rstc->rcdev->ops->assert(rstc->rcdev, rstc->id);
 | 
				
			||||||
 
 | 
					 
 | 
				
			||||||
@@ -35,7 +33,7 @@ index 77cfc49..9ab9290 100644
 | 
				
			|||||||
 }
 | 
					 }
 | 
				
			||||||
 EXPORT_SYMBOL_GPL(reset_control_assert);
 | 
					 EXPORT_SYMBOL_GPL(reset_control_assert);
 | 
				
			||||||
 
 | 
					 
 | 
				
			||||||
@@ -121,7 +121,7 @@ int reset_control_deassert(struct reset_control *rstc)
 | 
					@@ -121,7 +121,7 @@ int reset_control_deassert(struct reset_
 | 
				
			||||||
 	if (rstc->rcdev->ops->deassert)
 | 
					 	if (rstc->rcdev->ops->deassert)
 | 
				
			||||||
 		return rstc->rcdev->ops->deassert(rstc->rcdev, rstc->id);
 | 
					 		return rstc->rcdev->ops->deassert(rstc->rcdev, rstc->id);
 | 
				
			||||||
 
 | 
					 
 | 
				
			||||||
@@ -44,7 +42,7 @@ index 77cfc49..9ab9290 100644
 | 
				
			|||||||
 }
 | 
					 }
 | 
				
			||||||
 EXPORT_SYMBOL_GPL(reset_control_deassert);
 | 
					 EXPORT_SYMBOL_GPL(reset_control_deassert);
 | 
				
			||||||
 
 | 
					 
 | 
				
			||||||
@@ -136,7 +136,7 @@ int reset_control_status(struct reset_control *rstc)
 | 
					@@ -136,7 +136,7 @@ int reset_control_status(struct reset_co
 | 
				
			||||||
 	if (rstc->rcdev->ops->status)
 | 
					 	if (rstc->rcdev->ops->status)
 | 
				
			||||||
 		return rstc->rcdev->ops->status(rstc->rcdev, rstc->id);
 | 
					 		return rstc->rcdev->ops->status(rstc->rcdev, rstc->id);
 | 
				
			||||||
 
 | 
					 
 | 
				
			||||||
@@ -53,11 +51,9 @@ index 77cfc49..9ab9290 100644
 | 
				
			|||||||
 }
 | 
					 }
 | 
				
			||||||
 EXPORT_SYMBOL_GPL(reset_control_status);
 | 
					 EXPORT_SYMBOL_GPL(reset_control_status);
 | 
				
			||||||
 
 | 
					 
 | 
				
			||||||
diff --git a/include/linux/reset.h b/include/linux/reset.h
 | 
					 | 
				
			||||||
index 6db74ad..c4c097d 100644
 | 
					 | 
				
			||||||
--- a/include/linux/reset.h
 | 
					--- a/include/linux/reset.h
 | 
				
			||||||
+++ b/include/linux/reset.h
 | 
					+++ b/include/linux/reset.h
 | 
				
			||||||
@@ -74,7 +74,7 @@ static inline void reset_control_put(struct reset_control *rstc)
 | 
					@@ -74,7 +74,7 @@ static inline void reset_control_put(str
 | 
				
			||||||
 
 | 
					 
 | 
				
			||||||
 static inline int device_reset_optional(struct device *dev)
 | 
					 static inline int device_reset_optional(struct device *dev)
 | 
				
			||||||
 {
 | 
					 {
 | 
				
			||||||
@@ -66,7 +62,7 @@ index 6db74ad..c4c097d 100644
 | 
				
			|||||||
 }
 | 
					 }
 | 
				
			||||||
 
 | 
					 
 | 
				
			||||||
 static inline struct reset_control *__must_check reset_control_get(
 | 
					 static inline struct reset_control *__must_check reset_control_get(
 | 
				
			||||||
@@ -94,19 +94,19 @@ static inline struct reset_control *__must_check devm_reset_control_get(
 | 
					@@ -94,19 +94,19 @@ static inline struct reset_control *__mu
 | 
				
			||||||
 static inline struct reset_control *reset_control_get_optional(
 | 
					 static inline struct reset_control *reset_control_get_optional(
 | 
				
			||||||
 					struct device *dev, const char *id)
 | 
					 					struct device *dev, const char *id)
 | 
				
			||||||
 {
 | 
					 {
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -22,11 +22,9 @@ Changes in v2:
 | 
				
			|||||||
 include/linux/reset.h            |   2 +
 | 
					 include/linux/reset.h            |   2 +
 | 
				
			||||||
 3 files changed, 116 insertions(+), 9 deletions(-)
 | 
					 3 files changed, 116 insertions(+), 9 deletions(-)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
diff --git a/drivers/reset/core.c b/drivers/reset/core.c
 | 
					 | 
				
			||||||
index 9ab9290..8c3436c 100644
 | 
					 | 
				
			||||||
--- a/drivers/reset/core.c
 | 
					--- a/drivers/reset/core.c
 | 
				
			||||||
+++ b/drivers/reset/core.c
 | 
					+++ b/drivers/reset/core.c
 | 
				
			||||||
@@ -22,16 +22,29 @@ static DEFINE_MUTEX(reset_controller_list_mutex);
 | 
					@@ -22,16 +22,29 @@ static DEFINE_MUTEX(reset_controller_lis
 | 
				
			||||||
 static LIST_HEAD(reset_controller_list);
 | 
					 static LIST_HEAD(reset_controller_list);
 | 
				
			||||||
 
 | 
					 
 | 
				
			||||||
 /**
 | 
					 /**
 | 
				
			||||||
@@ -59,7 +57,7 @@ index 9ab9290..8c3436c 100644
 | 
				
			|||||||
 };
 | 
					 };
 | 
				
			||||||
 
 | 
					 
 | 
				
			||||||
 /**
 | 
					 /**
 | 
				
			||||||
@@ -66,6 +79,8 @@ int reset_controller_register(struct reset_controller_dev *rcdev)
 | 
					@@ -66,6 +79,8 @@ int reset_controller_register(struct res
 | 
				
			||||||
 		rcdev->of_xlate = of_reset_simple_xlate;
 | 
					 		rcdev->of_xlate = of_reset_simple_xlate;
 | 
				
			||||||
 	}
 | 
					 	}
 | 
				
			||||||
 
 | 
					 
 | 
				
			||||||
@@ -68,7 +66,7 @@ index 9ab9290..8c3436c 100644
 | 
				
			|||||||
 	mutex_lock(&reset_controller_list_mutex);
 | 
					 	mutex_lock(&reset_controller_list_mutex);
 | 
				
			||||||
 	list_add(&rcdev->list, &reset_controller_list);
 | 
					 	list_add(&rcdev->list, &reset_controller_list);
 | 
				
			||||||
 	mutex_unlock(&reset_controller_list_mutex);
 | 
					 	mutex_unlock(&reset_controller_list_mutex);
 | 
				
			||||||
@@ -93,7 +108,7 @@ EXPORT_SYMBOL_GPL(reset_controller_unregister);
 | 
					@@ -93,7 +108,7 @@ EXPORT_SYMBOL_GPL(reset_controller_unreg
 | 
				
			||||||
 int reset_control_reset(struct reset_control *rstc)
 | 
					 int reset_control_reset(struct reset_control *rstc)
 | 
				
			||||||
 {
 | 
					 {
 | 
				
			||||||
 	if (rstc->rcdev->ops->reset)
 | 
					 	if (rstc->rcdev->ops->reset)
 | 
				
			||||||
@@ -143,7 +141,7 @@ index 9ab9290..8c3436c 100644
 | 
				
			|||||||
  * reset_control_status - returns a negative errno if not supported, a
 | 
					  * reset_control_status - returns a negative errno if not supported, a
 | 
				
			||||||
  * positive value if the reset line is asserted, or zero if the reset
 | 
					  * positive value if the reset line is asserted, or zero if the reset
 | 
				
			||||||
  * line is not asserted.
 | 
					  * line is not asserted.
 | 
				
			||||||
@@ -134,12 +191,47 @@ EXPORT_SYMBOL_GPL(reset_control_deassert);
 | 
					@@ -134,12 +191,47 @@ EXPORT_SYMBOL_GPL(reset_control_deassert
 | 
				
			||||||
 int reset_control_status(struct reset_control *rstc)
 | 
					 int reset_control_status(struct reset_control *rstc)
 | 
				
			||||||
 {
 | 
					 {
 | 
				
			||||||
 	if (rstc->rcdev->ops->status)
 | 
					 	if (rstc->rcdev->ops->status)
 | 
				
			||||||
@@ -192,7 +190,7 @@ index 9ab9290..8c3436c 100644
 | 
				
			|||||||
 /**
 | 
					 /**
 | 
				
			||||||
  * of_reset_control_get_by_index - Lookup and obtain a reference to a reset
 | 
					  * of_reset_control_get_by_index - Lookup and obtain a reference to a reset
 | 
				
			||||||
  * controller by index.
 | 
					  * controller by index.
 | 
				
			||||||
@@ -155,6 +247,7 @@ struct reset_control *of_reset_control_get_by_index(struct device_node *node,
 | 
					@@ -155,6 +247,7 @@ struct reset_control *of_reset_control_g
 | 
				
			||||||
 {
 | 
					 {
 | 
				
			||||||
 	struct reset_control *rstc = ERR_PTR(-EPROBE_DEFER);
 | 
					 	struct reset_control *rstc = ERR_PTR(-EPROBE_DEFER);
 | 
				
			||||||
 	struct reset_controller_dev *r, *rcdev;
 | 
					 	struct reset_controller_dev *r, *rcdev;
 | 
				
			||||||
@@ -200,7 +198,7 @@ index 9ab9290..8c3436c 100644
 | 
				
			|||||||
 	struct of_phandle_args args;
 | 
					 	struct of_phandle_args args;
 | 
				
			||||||
 	int rstc_id;
 | 
					 	int rstc_id;
 | 
				
			||||||
 	int ret;
 | 
					 	int ret;
 | 
				
			||||||
@@ -186,16 +279,22 @@ struct reset_control *of_reset_control_get_by_index(struct device_node *node,
 | 
					@@ -186,16 +279,22 @@ struct reset_control *of_reset_control_g
 | 
				
			||||||
 	}
 | 
					 	}
 | 
				
			||||||
 
 | 
					 
 | 
				
			||||||
 	try_module_get(rcdev->owner);
 | 
					 	try_module_get(rcdev->owner);
 | 
				
			||||||
@@ -225,7 +223,7 @@ index 9ab9290..8c3436c 100644
 | 
				
			|||||||
 
 | 
					 
 | 
				
			||||||
 	return rstc;
 | 
					 	return rstc;
 | 
				
			||||||
 }
 | 
					 }
 | 
				
			||||||
@@ -259,6 +358,10 @@ void reset_control_put(struct reset_control *rstc)
 | 
					@@ -259,6 +358,10 @@ void reset_control_put(struct reset_cont
 | 
				
			||||||
 	if (IS_ERR(rstc))
 | 
					 	if (IS_ERR(rstc))
 | 
				
			||||||
 		return;
 | 
					 		return;
 | 
				
			||||||
 
 | 
					 
 | 
				
			||||||
@@ -236,8 +234,6 @@ index 9ab9290..8c3436c 100644
 | 
				
			|||||||
 	module_put(rstc->rcdev->owner);
 | 
					 	module_put(rstc->rcdev->owner);
 | 
				
			||||||
 	kfree(rstc);
 | 
					 	kfree(rstc);
 | 
				
			||||||
 }
 | 
					 }
 | 
				
			||||||
diff --git a/include/linux/reset-controller.h b/include/linux/reset-controller.h
 | 
					 | 
				
			||||||
index ce6b962..7f2cbd1 100644
 | 
					 | 
				
			||||||
--- a/include/linux/reset-controller.h
 | 
					--- a/include/linux/reset-controller.h
 | 
				
			||||||
+++ b/include/linux/reset-controller.h
 | 
					+++ b/include/linux/reset-controller.h
 | 
				
			||||||
@@ -31,6 +31,7 @@ struct of_phandle_args;
 | 
					@@ -31,6 +31,7 @@ struct of_phandle_args;
 | 
				
			||||||
@@ -256,11 +252,9 @@ index ce6b962..7f2cbd1 100644
 | 
				
			|||||||
 	struct device_node *of_node;
 | 
					 	struct device_node *of_node;
 | 
				
			||||||
 	int of_reset_n_cells;
 | 
					 	int of_reset_n_cells;
 | 
				
			||||||
 	int (*of_xlate)(struct reset_controller_dev *rcdev,
 | 
					 	int (*of_xlate)(struct reset_controller_dev *rcdev,
 | 
				
			||||||
diff --git a/include/linux/reset.h b/include/linux/reset.h
 | 
					 | 
				
			||||||
index c4c097d..1cca8ce 100644
 | 
					 | 
				
			||||||
--- a/include/linux/reset.h
 | 
					--- a/include/linux/reset.h
 | 
				
			||||||
+++ b/include/linux/reset.h
 | 
					+++ b/include/linux/reset.h
 | 
				
			||||||
@@ -11,6 +11,8 @@ int reset_control_reset(struct reset_control *rstc);
 | 
					@@ -11,6 +11,8 @@ int reset_control_reset(struct reset_con
 | 
				
			||||||
 int reset_control_assert(struct reset_control *rstc);
 | 
					 int reset_control_assert(struct reset_control *rstc);
 | 
				
			||||||
 int reset_control_deassert(struct reset_control *rstc);
 | 
					 int reset_control_deassert(struct reset_control *rstc);
 | 
				
			||||||
 int reset_control_status(struct reset_control *rstc);
 | 
					 int reset_control_status(struct reset_control *rstc);
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -19,8 +19,6 @@ Changes in v2:
 | 
				
			|||||||
 drivers/usb/host/ehci-platform.c                   | 47 +++++++++++++---------
 | 
					 drivers/usb/host/ehci-platform.c                   | 47 +++++++++++++---------
 | 
				
			||||||
 2 files changed, 30 insertions(+), 19 deletions(-)
 | 
					 2 files changed, 30 insertions(+), 19 deletions(-)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
diff --git a/Documentation/devicetree/bindings/usb/usb-ehci.txt b/Documentation/devicetree/bindings/usb/usb-ehci.txt
 | 
					 | 
				
			||||||
index a12d601..0701812 100644
 | 
					 | 
				
			||||||
--- a/Documentation/devicetree/bindings/usb/usb-ehci.txt
 | 
					--- a/Documentation/devicetree/bindings/usb/usb-ehci.txt
 | 
				
			||||||
+++ b/Documentation/devicetree/bindings/usb/usb-ehci.txt
 | 
					+++ b/Documentation/devicetree/bindings/usb/usb-ehci.txt
 | 
				
			||||||
@@ -18,7 +18,7 @@ Optional properties:
 | 
					@@ -18,7 +18,7 @@ Optional properties:
 | 
				
			||||||
@@ -32,8 +30,6 @@ index a12d601..0701812 100644
 | 
				
			|||||||
 
 | 
					 
 | 
				
			||||||
 Example (Sequoia 440EPx):
 | 
					 Example (Sequoia 440EPx):
 | 
				
			||||||
     ehci@e0000300 {
 | 
					     ehci@e0000300 {
 | 
				
			||||||
diff --git a/drivers/usb/host/ehci-platform.c b/drivers/usb/host/ehci-platform.c
 | 
					 | 
				
			||||||
index bd7082f2..6fbf32a 100644
 | 
					 | 
				
			||||||
--- a/drivers/usb/host/ehci-platform.c
 | 
					--- a/drivers/usb/host/ehci-platform.c
 | 
				
			||||||
+++ b/drivers/usb/host/ehci-platform.c
 | 
					+++ b/drivers/usb/host/ehci-platform.c
 | 
				
			||||||
@@ -39,11 +39,12 @@
 | 
					@@ -39,11 +39,12 @@
 | 
				
			||||||
@@ -50,7 +46,7 @@ index bd7082f2..6fbf32a 100644
 | 
				
			|||||||
 	struct phy **phys;
 | 
					 	struct phy **phys;
 | 
				
			||||||
 	int num_phys;
 | 
					 	int num_phys;
 | 
				
			||||||
 	bool reset_on_resume;
 | 
					 	bool reset_on_resume;
 | 
				
			||||||
@@ -149,7 +150,7 @@ static int ehci_platform_probe(struct platform_device *dev)
 | 
					@@ -149,7 +150,7 @@ static int ehci_platform_probe(struct pl
 | 
				
			||||||
 	struct usb_ehci_pdata *pdata = dev_get_platdata(&dev->dev);
 | 
					 	struct usb_ehci_pdata *pdata = dev_get_platdata(&dev->dev);
 | 
				
			||||||
 	struct ehci_platform_priv *priv;
 | 
					 	struct ehci_platform_priv *priv;
 | 
				
			||||||
 	struct ehci_hcd *ehci;
 | 
					 	struct ehci_hcd *ehci;
 | 
				
			||||||
@@ -59,7 +55,7 @@ index bd7082f2..6fbf32a 100644
 | 
				
			|||||||
 
 | 
					 
 | 
				
			||||||
 	if (usb_disabled())
 | 
					 	if (usb_disabled())
 | 
				
			||||||
 		return -ENODEV;
 | 
					 		return -ENODEV;
 | 
				
			||||||
@@ -232,18 +233,24 @@ static int ehci_platform_probe(struct platform_device *dev)
 | 
					@@ -232,18 +233,24 @@ static int ehci_platform_probe(struct pl
 | 
				
			||||||
 				break;
 | 
					 				break;
 | 
				
			||||||
 			}
 | 
					 			}
 | 
				
			||||||
 		}
 | 
					 		}
 | 
				
			||||||
@@ -95,7 +91,7 @@ index bd7082f2..6fbf32a 100644
 | 
				
			|||||||
 	}
 | 
					 	}
 | 
				
			||||||
 
 | 
					 
 | 
				
			||||||
 	if (pdata->big_endian_desc)
 | 
					 	if (pdata->big_endian_desc)
 | 
				
			||||||
@@ -300,8 +307,10 @@ static int ehci_platform_probe(struct platform_device *dev)
 | 
					@@ -302,8 +309,10 @@ err_power:
 | 
				
			||||||
 	if (pdata->power_off)
 | 
					 	if (pdata->power_off)
 | 
				
			||||||
 		pdata->power_off(dev);
 | 
					 		pdata->power_off(dev);
 | 
				
			||||||
 err_reset:
 | 
					 err_reset:
 | 
				
			||||||
@@ -108,7 +104,7 @@ index bd7082f2..6fbf32a 100644
 | 
				
			|||||||
 err_put_clks:
 | 
					 err_put_clks:
 | 
				
			||||||
 	while (--clk >= 0)
 | 
					 	while (--clk >= 0)
 | 
				
			||||||
 		clk_put(priv->clks[clk]);
 | 
					 		clk_put(priv->clks[clk]);
 | 
				
			||||||
@@ -319,15 +328,17 @@ static int ehci_platform_remove(struct platform_device *dev)
 | 
					@@ -321,15 +330,17 @@ static int ehci_platform_remove(struct p
 | 
				
			||||||
 	struct usb_hcd *hcd = platform_get_drvdata(dev);
 | 
					 	struct usb_hcd *hcd = platform_get_drvdata(dev);
 | 
				
			||||||
 	struct usb_ehci_pdata *pdata = dev_get_platdata(&dev->dev);
 | 
					 	struct usb_ehci_pdata *pdata = dev_get_platdata(&dev->dev);
 | 
				
			||||||
 	struct ehci_platform_priv *priv = hcd_to_ehci_priv(hcd);
 | 
					 	struct ehci_platform_priv *priv = hcd_to_ehci_priv(hcd);
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -19,8 +19,6 @@ Changes in v2:
 | 
				
			|||||||
 drivers/usb/host/ohci-platform.c                   | 49 +++++++++++++---------
 | 
					 drivers/usb/host/ohci-platform.c                   | 49 +++++++++++++---------
 | 
				
			||||||
 2 files changed, 30 insertions(+), 21 deletions(-)
 | 
					 2 files changed, 30 insertions(+), 21 deletions(-)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
diff --git a/Documentation/devicetree/bindings/usb/usb-ohci.txt b/Documentation/devicetree/bindings/usb/usb-ohci.txt
 | 
					 | 
				
			||||||
index 19233b7..9df4569 100644
 | 
					 | 
				
			||||||
--- a/Documentation/devicetree/bindings/usb/usb-ohci.txt
 | 
					--- a/Documentation/devicetree/bindings/usb/usb-ohci.txt
 | 
				
			||||||
+++ b/Documentation/devicetree/bindings/usb/usb-ohci.txt
 | 
					+++ b/Documentation/devicetree/bindings/usb/usb-ohci.txt
 | 
				
			||||||
@@ -14,7 +14,7 @@ Optional properties:
 | 
					@@ -14,7 +14,7 @@ Optional properties:
 | 
				
			||||||
@@ -32,8 +30,6 @@ index 19233b7..9df4569 100644
 | 
				
			|||||||
 
 | 
					 
 | 
				
			||||||
 Example:
 | 
					 Example:
 | 
				
			||||||
 
 | 
					 
 | 
				
			||||||
diff --git a/drivers/usb/host/ohci-platform.c b/drivers/usb/host/ohci-platform.c
 | 
					 | 
				
			||||||
index c2669f18..7d8bbc4 100644
 | 
					 | 
				
			||||||
--- a/drivers/usb/host/ohci-platform.c
 | 
					--- a/drivers/usb/host/ohci-platform.c
 | 
				
			||||||
+++ b/drivers/usb/host/ohci-platform.c
 | 
					+++ b/drivers/usb/host/ohci-platform.c
 | 
				
			||||||
@@ -33,11 +33,12 @@
 | 
					@@ -33,11 +33,12 @@
 | 
				
			||||||
@@ -50,7 +46,7 @@ index c2669f18..7d8bbc4 100644
 | 
				
			|||||||
 	struct phy **phys;
 | 
					 	struct phy **phys;
 | 
				
			||||||
 	int num_phys;
 | 
					 	int num_phys;
 | 
				
			||||||
 };
 | 
					 };
 | 
				
			||||||
@@ -117,7 +118,7 @@ static int ohci_platform_probe(struct platform_device *dev)
 | 
					@@ -117,7 +118,7 @@ static int ohci_platform_probe(struct pl
 | 
				
			||||||
 	struct usb_ohci_pdata *pdata = dev_get_platdata(&dev->dev);
 | 
					 	struct usb_ohci_pdata *pdata = dev_get_platdata(&dev->dev);
 | 
				
			||||||
 	struct ohci_platform_priv *priv;
 | 
					 	struct ohci_platform_priv *priv;
 | 
				
			||||||
 	struct ohci_hcd *ohci;
 | 
					 	struct ohci_hcd *ohci;
 | 
				
			||||||
@@ -59,7 +55,7 @@ index c2669f18..7d8bbc4 100644
 | 
				
			|||||||
 
 | 
					 
 | 
				
			||||||
 	if (usb_disabled())
 | 
					 	if (usb_disabled())
 | 
				
			||||||
 		return -ENODEV;
 | 
					 		return -ENODEV;
 | 
				
			||||||
@@ -195,19 +196,23 @@ static int ohci_platform_probe(struct platform_device *dev)
 | 
					@@ -195,19 +196,23 @@ static int ohci_platform_probe(struct pl
 | 
				
			||||||
 				break;
 | 
					 				break;
 | 
				
			||||||
 			}
 | 
					 			}
 | 
				
			||||||
 		}
 | 
					 		}
 | 
				
			||||||
@@ -96,7 +92,7 @@ index c2669f18..7d8bbc4 100644
 | 
				
			|||||||
 	}
 | 
					 	}
 | 
				
			||||||
 
 | 
					 
 | 
				
			||||||
 	if (pdata->big_endian_desc)
 | 
					 	if (pdata->big_endian_desc)
 | 
				
			||||||
@@ -265,8 +270,10 @@ static int ohci_platform_probe(struct platform_device *dev)
 | 
					@@ -265,8 +270,10 @@ err_power:
 | 
				
			||||||
 	if (pdata->power_off)
 | 
					 	if (pdata->power_off)
 | 
				
			||||||
 		pdata->power_off(dev);
 | 
					 		pdata->power_off(dev);
 | 
				
			||||||
 err_reset:
 | 
					 err_reset:
 | 
				
			||||||
@@ -109,7 +105,7 @@ index c2669f18..7d8bbc4 100644
 | 
				
			|||||||
 err_put_clks:
 | 
					 err_put_clks:
 | 
				
			||||||
 	while (--clk >= 0)
 | 
					 	while (--clk >= 0)
 | 
				
			||||||
 		clk_put(priv->clks[clk]);
 | 
					 		clk_put(priv->clks[clk]);
 | 
				
			||||||
@@ -284,15 +291,17 @@ static int ohci_platform_remove(struct platform_device *dev)
 | 
					@@ -284,15 +291,17 @@ static int ohci_platform_remove(struct p
 | 
				
			||||||
 	struct usb_hcd *hcd = platform_get_drvdata(dev);
 | 
					 	struct usb_hcd *hcd = platform_get_drvdata(dev);
 | 
				
			||||||
 	struct usb_ohci_pdata *pdata = dev_get_platdata(&dev->dev);
 | 
					 	struct usb_ohci_pdata *pdata = dev_get_platdata(&dev->dev);
 | 
				
			||||||
 	struct ohci_platform_priv *priv = hcd_to_ohci_priv(hcd);
 | 
					 	struct ohci_platform_priv *priv = hcd_to_ohci_priv(hcd);
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -11,8 +11,6 @@ Signed-off-by: Hans de Goede <hdegoede@redhat.com>
 | 
				
			|||||||
 arch/arm/boot/dts/sun7i-a20-pcduino3.dts | 5 +++++
 | 
					 arch/arm/boot/dts/sun7i-a20-pcduino3.dts | 5 +++++
 | 
				
			||||||
 1 file changed, 5 insertions(+)
 | 
					 1 file changed, 5 insertions(+)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
diff --git a/arch/arm/boot/dts/sun7i-a20-pcduino3.dts b/arch/arm/boot/dts/sun7i-a20-pcduino3.dts
 | 
					 | 
				
			||||||
index 861a4a6..067f365 100644
 | 
					 | 
				
			||||||
--- a/arch/arm/boot/dts/sun7i-a20-pcduino3.dts
 | 
					--- a/arch/arm/boot/dts/sun7i-a20-pcduino3.dts
 | 
				
			||||||
+++ b/arch/arm/boot/dts/sun7i-a20-pcduino3.dts
 | 
					+++ b/arch/arm/boot/dts/sun7i-a20-pcduino3.dts
 | 
				
			||||||
@@ -111,6 +111,11 @@
 | 
					@@ -111,6 +111,11 @@
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -18,11 +18,9 @@ Signed-off-by: Hans de Goede <hdegoede@redhat.com>
 | 
				
			|||||||
 2 files changed, 298 insertions(+)
 | 
					 2 files changed, 298 insertions(+)
 | 
				
			||||||
 create mode 100644 arch/arm/boot/dts/sun7i-a20-lamobo-r1.dts
 | 
					 create mode 100644 arch/arm/boot/dts/sun7i-a20-lamobo-r1.dts
 | 
				
			||||||
 | 
					
 | 
				
			||||||
diff --git a/arch/arm/boot/dts/Makefile b/arch/arm/boot/dts/Makefile
 | 
					 | 
				
			||||||
index cc7309b..6f8deac 100644
 | 
					 | 
				
			||||||
--- a/arch/arm/boot/dts/Makefile
 | 
					--- a/arch/arm/boot/dts/Makefile
 | 
				
			||||||
+++ b/arch/arm/boot/dts/Makefile
 | 
					+++ b/arch/arm/boot/dts/Makefile
 | 
				
			||||||
@@ -639,6 +639,7 @@ dtb-$(CONFIG_MACH_SUN7I) += \
 | 
					@@ -638,6 +638,7 @@ dtb-$(CONFIG_MACH_SUN7I) += \
 | 
				
			||||||
 	sun7i-a20-cubietruck.dtb \
 | 
					 	sun7i-a20-cubietruck.dtb \
 | 
				
			||||||
 	sun7i-a20-hummingbird.dtb \
 | 
					 	sun7i-a20-hummingbird.dtb \
 | 
				
			||||||
 	sun7i-a20-i12-tvbox.dtb \
 | 
					 	sun7i-a20-i12-tvbox.dtb \
 | 
				
			||||||
@@ -30,9 +28,6 @@ index cc7309b..6f8deac 100644
 | 
				
			|||||||
 	sun7i-a20-m3.dtb \
 | 
					 	sun7i-a20-m3.dtb \
 | 
				
			||||||
 	sun7i-a20-mk808c.dtb \
 | 
					 	sun7i-a20-mk808c.dtb \
 | 
				
			||||||
 	sun7i-a20-olimex-som-evb.dtb \
 | 
					 	sun7i-a20-olimex-som-evb.dtb \
 | 
				
			||||||
diff --git a/arch/arm/boot/dts/sun7i-a20-lamobo-r1.dts b/arch/arm/boot/dts/sun7i-a20-lamobo-r1.dts
 | 
					 | 
				
			||||||
new file mode 100644
 | 
					 | 
				
			||||||
index 0000000..975b0b2
 | 
					 | 
				
			||||||
--- /dev/null
 | 
					--- /dev/null
 | 
				
			||||||
+++ b/arch/arm/boot/dts/sun7i-a20-lamobo-r1.dts
 | 
					+++ b/arch/arm/boot/dts/sun7i-a20-lamobo-r1.dts
 | 
				
			||||||
@@ -0,0 +1,297 @@
 | 
					@@ -0,0 +1,297 @@
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,6 +1,6 @@
 | 
				
			|||||||
--- a/scripts/Makefile.lib
 | 
					--- a/scripts/Makefile.lib
 | 
				
			||||||
+++ b/scripts/Makefile.lib
 | 
					+++ b/scripts/Makefile.lib
 | 
				
			||||||
@@ -324,7 +324,7 @@
 | 
					@@ -324,7 +324,7 @@ cmd_bzip2 = (cat $(filter-out FORCE,$^)
 | 
				
			||||||
 
 | 
					 
 | 
				
			||||||
 quiet_cmd_lzma = LZMA    $@
 | 
					 quiet_cmd_lzma = LZMA    $@
 | 
				
			||||||
 cmd_lzma = (cat $(filter-out FORCE,$^) | \
 | 
					 cmd_lzma = (cat $(filter-out FORCE,$^) | \
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,6 +1,6 @@
 | 
				
			|||||||
--- a/drivers/mfd/rdc321x-southbridge.c
 | 
					--- a/drivers/mfd/rdc321x-southbridge.c
 | 
				
			||||||
+++ b/drivers/mfd/rdc321x-southbridge.c
 | 
					+++ b/drivers/mfd/rdc321x-southbridge.c
 | 
				
			||||||
@@ -85,6 +85,8 @@
 | 
					@@ -85,6 +85,8 @@ static int rdc321x_sb_probe(struct pci_d
 | 
				
			||||||
 	rdc321x_gpio_pdata.sb_pdev = pdev;
 | 
					 	rdc321x_gpio_pdata.sb_pdev = pdev;
 | 
				
			||||||
 	rdc321x_wdt_pdata.sb_pdev = pdev;
 | 
					 	rdc321x_wdt_pdata.sb_pdev = pdev;
 | 
				
			||||||
 
 | 
					 
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user