kernel: refresh patches for kernel 4.4

Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>

SVN-Revision: 48222
This commit is contained in:
Hauke Mehrtens 2016-01-12 20:50:41 +00:00
parent bd99318c82
commit ba3a749f9b
44 changed files with 97 additions and 196 deletions

View file

@ -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,

View file

@ -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);

View file

@ -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

View file

@ -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

View file

@ -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>;

View file

@ -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"

View file

@ -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;

View file

@ -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

View file

@ -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)

View file

@ -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);

View file

@ -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;

View file

@ -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[] = {

View file

@ -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;
} }

View file

@ -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,

View file

@ -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);

View file

@ -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 @@

View file

@ -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 @@

View file

@ -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);

View file

@ -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 @@

View file

@ -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 @@

View file

@ -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;
} }

View file

@ -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 },

View file

@ -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);

View file

@ -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 @@

View file

@ -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 @@

View file

@ -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 @@

View file

@ -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);
} }

View file

@ -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,

View file

@ -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 @@

View file

@ -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);

View file

@ -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 @@

View file

@ -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 @@

View file

@ -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 @@

View file

@ -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;

View file

@ -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);
} }

View file

@ -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;

View file

@ -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)
{ {

View file

@ -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);

View file

@ -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);

View file

@ -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);

View file

@ -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 @@

View file

@ -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 @@

View file

@ -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,$^) | \

View file

@ -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;