mirror of
https://github.com/Fishwaldo/build.git
synced 2025-07-24 05:48:41 +00:00
mvebu-dev patches: refresh
Some of these get applied at wrong offsets or have fuzz. Fix. Remove patch 93. It's already upstream. It also has other fixes applied to it. Signed-off-by: Rosen Penev <rosenp@gmail.com>
This commit is contained in:
parent
53906b386c
commit
fc009ee002
17 changed files with 133 additions and 513 deletions
|
@ -1,6 +1,6 @@
|
|||
--- a/arch/arm/boot/dts/armada-xp.dtsi
|
||||
+++ b/arch/arm/boot/dts/armada-xp.dtsi
|
||||
@@ -274,12 +274,10 @@
|
||||
@@ -237,12 +237,10 @@
|
||||
};
|
||||
|
||||
&i2c0 {
|
||||
|
|
|
@ -7,7 +7,7 @@ Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
|
|||
---
|
||||
--- a/drivers/net/phy/sfp.c
|
||||
+++ b/drivers/net/phy/sfp.c
|
||||
@@ -403,6 +403,185 @@ static unsigned int sfp_check(void *buf, size_t len)
|
||||
@@ -531,6 +531,185 @@ static unsigned int sfp_check(void *buf, size_t len)
|
||||
return check;
|
||||
}
|
||||
|
||||
|
@ -193,15 +193,15 @@ Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
|
|||
/* hwmon */
|
||||
#if IS_ENABLED(CONFIG_HWMON)
|
||||
static umode_t sfp_hwmon_is_visible(const void *data,
|
||||
@@ -1388,6 +1567,7 @@ static int sfp_sm_mod_probe(struct sfp *sfp)
|
||||
/* SFP module inserted - read I2C data */
|
||||
@@ -1670,6 +1849,7 @@ static int sfp_sm_mod_probe(struct sfp *sfp)
|
||||
struct sfp_eeprom_id id;
|
||||
bool cotsworks_sfbg;
|
||||
bool cotsworks;
|
||||
+ char options[80];
|
||||
u8 check;
|
||||
int ret;
|
||||
|
||||
@@ -1450,6 +1630,73 @@ static int sfp_sm_mod_probe(struct sfp *sfp)
|
||||
@@ -1744,6 +1926,73 @@ static int sfp_sm_mod_probe(struct sfp *sfp)
|
||||
(int)sizeof(id.ext.vendor_sn), id.ext.vendor_sn,
|
||||
(int)sizeof(id.ext.datecode), id.ext.datecode);
|
||||
|
||||
|
@ -273,5 +273,5 @@ Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
|
|||
+ sfp->id.ext.diagmon));
|
||||
+
|
||||
/* Check whether we support this module */
|
||||
if (!sfp->type->module_supported(&sfp->id)) {
|
||||
if (!sfp->type->module_supported(&id)) {
|
||||
dev_err(sfp->dev,
|
||||
|
|
|
@ -12,7 +12,7 @@ Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk>
|
|||
|
||||
--- a/arch/arm/boot/dts/armada-388-clearfog-base.dts
|
||||
+++ b/arch/arm/boot/dts/armada-388-clearfog-base.dts
|
||||
@@ -48,6 +48,7 @@
|
||||
@@ -7,6 +7,7 @@
|
||||
|
||||
/dts-v1/;
|
||||
#include "armada-388-clearfog.dtsi"
|
||||
|
|
|
@ -41,7 +41,7 @@ Signed-off-by: Gregory CLEMENT <gregory.clement at free-electrons.com>
|
|||
|
||||
--- a/arch/arm/boot/dts/armada-38x.dtsi
|
||||
+++ b/arch/arm/boot/dts/armada-38x.dtsi
|
||||
@@ -381,6 +381,15 @@
|
||||
@@ -384,6 +384,15 @@
|
||||
#clock-cells = <1>;
|
||||
};
|
||||
|
||||
|
|
|
@ -14,7 +14,7 @@ Signed-off-by: Hannu Nyman <hannu.nyman@iki.fi>
|
|||
|
||||
--- a/arch/arm/mach-mvebu/Kconfig
|
||||
+++ b/arch/arm/mach-mvebu/Kconfig
|
||||
@@ -60,8 +60,6 @@ config MACH_ARMADA_38X
|
||||
@@ -59,8 +59,6 @@ config MACH_ARMADA_38X
|
||||
select ARM_ERRATA_720789
|
||||
select PL310_ERRATA_753970
|
||||
select ARM_GIC
|
||||
|
|
|
@ -1,6 +1,4 @@
|
|||
From 5843af891d0dabf9bb80039cfe807d01e9495154 Mon Sep 17 00:00:00 2001
|
||||
From: Daniel Golle <daniel at makrotopia.org>
|
||||
Date: Fri, 12 Dec 2014 13:38:33 +0100
|
||||
From: Daniel Golle <daniel@makrotopia.org>
|
||||
Subject: libata: add ledtrig support
|
||||
|
||||
This adds a LED trigger for each ATA port indicating disk activity.
|
||||
|
@ -13,18 +11,16 @@ In that way, if not selected, LED trigger support not will be
|
|||
included in libata-core and both, codepaths and structures remain
|
||||
untouched.
|
||||
|
||||
Signed-off-by: Daniel Golle <daniel at makrotopia.org>
|
||||
Signed-off-by: Daniel Golle <daniel@makrotopia.org>
|
||||
---
|
||||
drivers/ata/Kconfig | 16 ++++++++++++++
|
||||
drivers/ata/libata-core.c | 56 +++++++++++++++++++++++++++++++++++++++++++++++
|
||||
include/linux/libata.h | 7 ++++++
|
||||
3 files changed, 79 insertions(+)
|
||||
drivers/ata/Kconfig | 16 ++++++++++++++++
|
||||
drivers/ata/libata-core.c | 41 +++++++++++++++++++++++++++++++++++++++++
|
||||
include/linux/libata.h | 9 +++++++++
|
||||
3 files changed, 66 insertions(+)
|
||||
|
||||
diff --git a/drivers/ata/Kconfig b/drivers/ata/Kconfig
|
||||
index 6aaa3f8..4e24b64 100644
|
||||
--- a/drivers/ata/Kconfig
|
||||
+++ b/drivers/ata/Kconfig
|
||||
@@ -46,6 +46,22 @@ config ATA_VERBOSE_ERROR
|
||||
@@ -67,6 +67,22 @@ config ATA_FORCE
|
||||
|
||||
If unsure, say Y.
|
||||
|
||||
|
@ -47,74 +43,53 @@ index 6aaa3f8..4e24b64 100644
|
|||
config ATA_ACPI
|
||||
bool "ATA ACPI Support"
|
||||
depends on ACPI
|
||||
diff --git a/drivers/ata/libata-core.c b/drivers/ata/libata-core.c
|
||||
index b0b77b6..1400f4d 100644
|
||||
--- a/drivers/ata/libata-core.c
|
||||
+++ b/drivers/ata/libata-core.c
|
||||
@@ -728,6 +728,7 @@ u64 ata_tf_read_block(struct ata_taskfile *tf, struct ata_device *dev)
|
||||
@@ -650,6 +650,19 @@ u64 ata_tf_read_block(const struct ata_t
|
||||
return block;
|
||||
}
|
||||
|
||||
+
|
||||
/**
|
||||
* ata_build_rw_tf - Build ATA taskfile for given read/write request
|
||||
* @tf: Target ATA taskfile
|
||||
@@ -4757,6 +4758,30 @@ void swap_buf_le16(u16 *buf, unsigned int buf_words)
|
||||
}
|
||||
|
||||
/**
|
||||
+ * ata_led_act - Trigger port activity LED
|
||||
+ * @ap: indicating port
|
||||
+ *
|
||||
+ * Blinks any LEDs registered to the trigger.
|
||||
+ * Commonly used with leds-gpio on NAS systems with disk activity
|
||||
+ * indicator LEDs.
|
||||
+ *
|
||||
+ * LOCKING:
|
||||
+ * None.
|
||||
+ */
|
||||
+#ifdef CONFIG_ATA_LEDS
|
||||
+#define LIBATA_BLINK_DELAY 20 /* ms */
|
||||
+static inline void ata_led_act(struct ata_port *ap)
|
||||
+{
|
||||
+#if CONFIG_ATA_LEDS
|
||||
+#define LIBATA_BLINK_DELAY 20 /* ms */
|
||||
+ unsigned long led_delay = LIBATA_BLINK_DELAY;
|
||||
+
|
||||
+ if (unlikely(!ap->ledtrig))
|
||||
+ return;
|
||||
+
|
||||
+ led_trigger_blink_oneshot(ap->ledtrig, &led_delay, &led_delay, 0);
|
||||
+#endif /* CONFIG_ATA_LEDS */
|
||||
+}
|
||||
+#endif
|
||||
+
|
||||
+/**
|
||||
* ata_qc_new_init - Request an available ATA command, and initialize it
|
||||
* @dev: Device from whom we request an available command structure
|
||||
* @tag: tag
|
||||
@@ -4780,6 +4805,9 @@ struct ata_queued_cmd *ata_qc_new_init(struct ata_device *dev, int tag)
|
||||
/**
|
||||
* ata_build_rw_tf - Build ATA taskfile for given read/write request
|
||||
* @tf: Target ATA taskfile
|
||||
@@ -4513,6 +4526,9 @@ struct ata_queued_cmd *ata_qc_new_init(s
|
||||
if (tag < 0)
|
||||
return NULL;
|
||||
}
|
||||
+#if CONFIG_ATA_LEDS
|
||||
+#ifdef CONFIG_ATA_LEDS
|
||||
+ ata_led_act(ap);
|
||||
+#endif
|
||||
|
||||
qc = __ata_qc_from_tag(ap, tag);
|
||||
qc->tag = tag;
|
||||
@@ -5677,6 +5705,9 @@ struct ata_port *ata_port_alloc(struct ata_host *host)
|
||||
qc->tag = qc->hw_tag = tag;
|
||||
@@ -5291,6 +5307,9 @@ struct ata_port *ata_port_alloc(struct a
|
||||
ap->stats.unhandled_irq = 1;
|
||||
ap->stats.idle_irq = 1;
|
||||
#endif
|
||||
+#if CONFIG_ATA_LEDS
|
||||
+#ifdef CONFIG_ATA_LEDS
|
||||
+ ap->ledtrig = kzalloc(sizeof(struct led_trigger), GFP_KERNEL);
|
||||
+#endif
|
||||
ata_sff_port_init(ap);
|
||||
|
||||
return ap;
|
||||
@@ -5698,6 +5729,12 @@ static void ata_host_release(struct device *gendev, void *res)
|
||||
@@ -5326,6 +5345,12 @@ static void ata_host_release(struct kref
|
||||
|
||||
kfree(ap->pmp_link);
|
||||
kfree(ap->slave_link);
|
||||
+#if CONFIG_ATA_LEDS
|
||||
+#ifdef CONFIG_ATA_LEDS
|
||||
+ if (ap->ledtrig) {
|
||||
+ led_trigger_unregister(ap->ledtrig);
|
||||
+ kfree(ap->ledtrig);
|
||||
|
@ -123,12 +98,11 @@ index b0b77b6..1400f4d 100644
|
|||
kfree(ap);
|
||||
host->ports[i] = NULL;
|
||||
}
|
||||
@@ -6145,6 +6182,25 @@ int ata_host_register(struct ata_host *host, struct scsi_host_template *sht)
|
||||
@@ -5732,7 +5757,23 @@ int ata_host_register(struct ata_host *h
|
||||
host->ports[i]->print_id = atomic_inc_return(&ata_print_id);
|
||||
host->ports[i]->local_port_no = i + 1;
|
||||
}
|
||||
|
||||
+#if CONFIG_ATA_LEDS
|
||||
+ /* register LED triggers for all ports */
|
||||
+#ifdef CONFIG_ATA_LEDS
|
||||
+ for (i = 0; i < host->n_ports; i++) {
|
||||
+ if (unlikely(!host->ports[i]->ledtrig))
|
||||
+ continue;
|
||||
|
@ -136,7 +110,7 @@ index b0b77b6..1400f4d 100644
|
|||
+ snprintf(host->ports[i]->ledtrig_name,
|
||||
+ sizeof(host->ports[i]->ledtrig_name), "ata%u",
|
||||
+ host->ports[i]->print_id);
|
||||
+
|
||||
|
||||
+ host->ports[i]->ledtrig->name = host->ports[i]->ledtrig_name;
|
||||
+
|
||||
+ if (led_trigger_register(host->ports[i]->ledtrig)) {
|
||||
|
@ -145,23 +119,22 @@ index b0b77b6..1400f4d 100644
|
|||
+ }
|
||||
+ }
|
||||
+#endif
|
||||
+
|
||||
/* Create associated sysfs transport objects */
|
||||
for (i = 0; i < host->n_ports; i++) {
|
||||
rc = ata_tport_add(host->dev,host->ports[i]);
|
||||
diff --git a/include/linux/libata.h b/include/linux/libata.h
|
||||
index b20a275..50eeee3 100644
|
||||
--- a/include/linux/libata.h
|
||||
+++ b/include/linux/libata.h
|
||||
@@ -38,6 +38,7 @@
|
||||
@@ -23,6 +23,9 @@
|
||||
#include <linux/cdrom.h>
|
||||
#include <linux/sched.h>
|
||||
#include <linux/async.h>
|
||||
+#ifdef CONFIG_ATA_LEDS
|
||||
+#include <linux/leds.h>
|
||||
+#endif
|
||||
|
||||
/*
|
||||
* Define if arch has non-standard setup. This is a _PCI_ standard
|
||||
@@ -877,6 +878,12 @@ struct ata_port {
|
||||
@@ -882,6 +885,12 @@ struct ata_port {
|
||||
#ifdef CONFIG_ATA_ACPI
|
||||
struct ata_acpi_gtm __acpi_init_gtm; /* use ata_acpi_init_gtm() */
|
||||
#endif
|
||||
|
@ -174,6 +147,3 @@ index b20a275..50eeee3 100644
|
|||
/* owned by EH */
|
||||
u8 sector_buf[ATA_SECT_SIZE] ____cacheline_aligned;
|
||||
};
|
||||
--
|
||||
2.7.4
|
||||
|
||||
|
|
|
@ -12,7 +12,7 @@ diff --git a/arch/arm/configs/mvebu_v7_defconfig b/arch/arm/configs/mvebu_v7_def
|
|||
index cf363ab..19449d3 100644
|
||||
--- a/arch/arm/configs/mvebu_v7_defconfig
|
||||
+++ b/arch/arm/configs/mvebu_v7_defconfig
|
||||
@@ -61,6 +61,7 @@ CONFIG_MTD_SPI_NOR=y
|
||||
@@ -58,6 +58,7 @@ CONFIG_MTD_SPI_NOR=y
|
||||
CONFIG_EEPROM_AT24=y
|
||||
CONFIG_BLK_DEV_SD=y
|
||||
CONFIG_ATA=y
|
||||
|
@ -24,13 +24,13 @@ diff --git a/arch/arm/mach-mvebu/Kconfig b/arch/arm/mach-mvebu/Kconfig
|
|||
index 053ea9d..aa1f389 100644
|
||||
--- a/arch/arm/mach-mvebu/Kconfig
|
||||
+++ b/arch/arm/mach-mvebu/Kconfig
|
||||
@@ -57,6 +57,7 @@ config MACH_ARMADA_375
|
||||
@@ -56,6 +56,7 @@ config MACH_ARMADA_375
|
||||
config MACH_ARMADA_38X
|
||||
bool "Marvell Armada 380/385 boards"
|
||||
depends on ARCH_MULTI_V7
|
||||
+ select ARCH_WANT_LIBATA_LEDS
|
||||
select ARM_ERRATA_720789
|
||||
select ARM_ERRATA_753970
|
||||
select PL310_ERRATA_753970
|
||||
select ARM_GIC
|
||||
--
|
||||
2.7.4
|
||||
|
|
|
@ -1,16 +1,14 @@
|
|||
diff --git a/drivers/gpio/gpio-mvebu.c b/drivers/gpio/gpio-mvebu.c
|
||||
index 661c5a38f..a25d61d54 100644
|
||||
--- a/drivers/gpio/gpio-mvebu.c
|
||||
+++ b/drivers/gpio/gpio-mvebu.c
|
||||
@@ -38,6 +38,7 @@
|
||||
#include <linux/err.h>
|
||||
#include <linux/gpio.h>
|
||||
@@ -40,6 +40,7 @@
|
||||
#include <linux/gpio/consumer.h>
|
||||
#include <linux/gpio/machine.h>
|
||||
#include <linux/init.h>
|
||||
+#include <linux/interrupt.h>
|
||||
#include <linux/io.h>
|
||||
#include <linux/irq.h>
|
||||
#include <linux/irqchip/chained_irq.h>
|
||||
@@ -133,7 +134,7 @@ struct mvebu_gpio_chip {
|
||||
@@ -111,7 +112,7 @@ struct mvebu_gpio_chip {
|
||||
struct regmap *regs;
|
||||
u32 offset;
|
||||
struct regmap *percpu_regs;
|
||||
|
@ -19,7 +17,7 @@ index 661c5a38f..a25d61d54 100644
|
|||
struct irq_domain *domain;
|
||||
int soc_variant;
|
||||
|
||||
@@ -608,6 +609,33 @@ static void mvebu_gpio_irq_handler(struct irq_desc *desc)
|
||||
@@ -600,6 +601,33 @@ static void mvebu_gpio_irq_handler(struct irq_desc *desc)
|
||||
chained_irq_exit(chip, desc);
|
||||
}
|
||||
|
||||
|
@ -53,7 +51,7 @@ index 661c5a38f..a25d61d54 100644
|
|||
/*
|
||||
* Functions implementing the pwm_chip methods
|
||||
*/
|
||||
@@ -1277,7 +1305,7 @@ static int mvebu_gpio_probe(struct platform_device *pdev)
|
||||
@@ -1211,7 +1239,7 @@ static int mvebu_gpio_probe(struct platform_device *pdev)
|
||||
|
||||
err = irq_alloc_domain_generic_chips(
|
||||
mvchip->domain, ngpios, 2, np->name, handle_level_irq,
|
||||
|
@ -62,7 +60,7 @@ index 661c5a38f..a25d61d54 100644
|
|||
if (err) {
|
||||
dev_err(&pdev->dev, "couldn't allocate irq chips %s (DT).\n",
|
||||
mvchip->chip.label);
|
||||
@@ -1295,6 +1323,8 @@ static int mvebu_gpio_probe(struct platform_device *pdev)
|
||||
@@ -1229,6 +1257,8 @@ static int mvebu_gpio_probe(struct platform_device *pdev)
|
||||
ct->chip.irq_mask = mvebu_gpio_level_irq_mask;
|
||||
ct->chip.irq_unmask = mvebu_gpio_level_irq_unmask;
|
||||
ct->chip.irq_set_type = mvebu_gpio_irq_set_type;
|
||||
|
@ -71,7 +69,7 @@ index 661c5a38f..a25d61d54 100644
|
|||
ct->chip.name = mvchip->chip.label;
|
||||
|
||||
ct = &gc->chip_types[1];
|
||||
@@ -1303,6 +1333,8 @@ static int mvebu_gpio_probe(struct platform_device *pdev)
|
||||
@@ -1237,6 +1267,8 @@ static int mvebu_gpio_probe(struct platform_device *pdev)
|
||||
ct->chip.irq_mask = mvebu_gpio_edge_irq_mask;
|
||||
ct->chip.irq_unmask = mvebu_gpio_edge_irq_unmask;
|
||||
ct->chip.irq_set_type = mvebu_gpio_irq_set_type;
|
||||
|
@ -80,7 +78,7 @@ index 661c5a38f..a25d61d54 100644
|
|||
ct->handler = handle_edge_irq;
|
||||
ct->chip.name = mvchip->chip.label;
|
||||
|
||||
@@ -1318,6 +1350,7 @@ static int mvebu_gpio_probe(struct platform_device *pdev)
|
||||
@@ -1252,6 +1284,7 @@ static int mvebu_gpio_probe(struct platform_device *pdev)
|
||||
continue;
|
||||
irq_set_chained_handler_and_data(irq, mvebu_gpio_irq_handler,
|
||||
mvchip);
|
||||
|
|
|
@ -1,8 +1,6 @@
|
|||
diff --git a/drivers/gpio/gpio-mvebu.c b/drivers/gpio/gpio-mvebu.c
|
||||
index 08f57fd94..f89110fda 100644
|
||||
--- a/drivers/gpio/gpio-mvebu.c
|
||||
+++ b/drivers/gpio/gpio-mvebu.c
|
||||
@@ -659,39 +659,81 @@ static int mvebu_pwm_request(struct pwm_chip *chip, struct pwm_device *pwm)
|
||||
@@ -662,39 +662,81 @@ static int mvebu_pwm_request(struct pwm_chip *chip, struct pwm_device *pwm)
|
||||
struct mvebu_pwm *mvpwm = to_mvebu_pwm(chip);
|
||||
struct mvebu_gpio_chip *mvchip = mvpwm->mvchip;
|
||||
struct gpio_desc *desc;
|
||||
|
@ -99,7 +97,7 @@ index 08f57fd94..f89110fda 100644
|
|||
}
|
||||
|
||||
static void mvebu_pwm_get_state(struct pwm_chip *chip,
|
||||
@@ -746,13 +788,15 @@ static void mvebu_pwm_get_state(struct pwm_chip *chip,
|
||||
@@ -749,13 +791,15 @@ static void mvebu_pwm_get_state(struct pwm_chip *chip,
|
||||
else
|
||||
state->enabled = false;
|
||||
|
||||
|
@ -116,7 +114,7 @@ index 08f57fd94..f89110fda 100644
|
|||
struct mvebu_gpio_chip *mvchip = mvpwm->mvchip;
|
||||
unsigned long long val;
|
||||
unsigned long flags;
|
||||
@@ -802,7 +802,7 @@ static int mvebu_pwm_apply(struct pwm_chip *chip, struct pwm_device *pwm,
|
||||
@@ -761,7 +805,7 @@ static int mvebu_pwm_apply(struct pwm_chip *chip, struct pwm_device *pwm,
|
||||
unsigned long flags;
|
||||
unsigned int on, off;
|
||||
|
||||
|
|
|
@ -1,8 +1,6 @@
|
|||
diff --git a/drivers/gpio/gpio-mvebu.c b/drivers/gpio/gpio-mvebu.c
|
||||
index adc768f908f1..a2bd264ee92c 100644
|
||||
--- a/drivers/gpio/gpio-mvebu.c
|
||||
+++ b/drivers/gpio/gpio-mvebu.c
|
||||
@@ -92,20 +92,41 @@
|
||||
@@ -93,20 +93,41 @@
|
||||
|
||||
#define MVEBU_MAX_GPIO_PER_BANK 32
|
||||
|
||||
|
@ -48,7 +46,7 @@ index adc768f908f1..a2bd264ee92c 100644
|
|||
struct mvebu_gpio_chip {
|
||||
struct gpio_chip chip;
|
||||
struct regmap *regs;
|
||||
@@ -282,12 +303,12 @@ mvebu_gpio_write_level_mask(struct mvebu_gpio_chip *mvchip, u32 val)
|
||||
@@ -283,12 +304,12 @@ mvebu_gpio_write_level_mask(struct mvebu_gpio_chip *mvchip, u32 val)
|
||||
* Functions returning addresses of individual registers for a given
|
||||
* PWM controller.
|
||||
*/
|
||||
|
@ -63,7 +61,7 @@ index adc768f908f1..a2bd264ee92c 100644
|
|||
{
|
||||
return mvpwm->membase + PWM_BLINK_OFF_DURATION_OFF;
|
||||
}
|
||||
@@ -643,17 +697,24 @@ static void mvebu_pwm_get_state(struct pwm_chip *chip,
|
||||
@@ -681,17 +702,24 @@ static void mvebu_pwm_get_state(struct pwm_chip *chip,
|
||||
struct pwm_state *state) {
|
||||
|
||||
struct mvebu_pwm *mvpwm = to_mvebu_pwm(chip);
|
||||
|
@ -91,7 +89,7 @@ index adc768f908f1..a2bd264ee92c 100644
|
|||
if (val > UINT_MAX)
|
||||
state->duty_cycle = UINT_MAX;
|
||||
else if (val)
|
||||
@@ -662,9 +723,9 @@ static void mvebu_pwm_get_state(struct pwm_chip *chip,
|
||||
@@ -700,9 +728,9 @@ static void mvebu_pwm_get_state(struct pwm_chip *chip,
|
||||
state->duty_cycle = 1;
|
||||
|
||||
val = (unsigned long long)
|
||||
|
@ -103,7 +101,7 @@ index adc768f908f1..a2bd264ee92c 100644
|
|||
if (val < state->duty_cycle) {
|
||||
state->period = 1;
|
||||
} else {
|
||||
@@ -704,7 +767,7 @@ static int mvebu_pwm_apply(struct pwm_chip *chip, struct pwm_device *pwm,
|
||||
@@ -742,7 +770,7 @@ static int mvebu_pwm_apply(struct pwm_chip *chip, struct pwm_device *pwm,
|
||||
else
|
||||
on = 1;
|
||||
|
||||
|
@ -112,7 +110,7 @@ index adc768f908f1..a2bd264ee92c 100644
|
|||
(state->period - state->duty_cycle);
|
||||
do_div(val, NSEC_PER_SEC);
|
||||
if (val > UINT_MAX)
|
||||
@@ -714,16 +777,16 @@ static int mvebu_pwm_apply(struct pwm_chip *chip, struct pwm_device *pwm,
|
||||
@@ -752,16 +780,16 @@ static int mvebu_pwm_apply(struct pwm_chip *chip, struct pwm_device *pwm,
|
||||
else
|
||||
off = 1;
|
||||
|
||||
|
@ -133,7 +131,7 @@ index adc768f908f1..a2bd264ee92c 100644
|
|||
|
||||
return 0;
|
||||
}
|
||||
@@ -742,10 +805,10 @@ static void __maybe_unused mvebu_pwm_suspend(struct mvebu_gpio_chip *mvchip)
|
||||
@@ -780,10 +808,10 @@ static void __maybe_unused mvebu_pwm_suspend(struct mvebu_gpio_chip *mvchip)
|
||||
|
||||
regmap_read(mvchip->regs, GPIO_BLINK_CNT_SELECT_OFF + mvchip->offset,
|
||||
&mvpwm->blink_select);
|
||||
|
@ -148,7 +146,7 @@ index adc768f908f1..a2bd264ee92c 100644
|
|||
}
|
||||
|
||||
static void __maybe_unused mvebu_pwm_resume(struct mvebu_gpio_chip *mvchip)
|
||||
@@ -754,10 +817,10 @@ static void __maybe_unused mvebu_pwm_resume(struct mvebu_gpio_chip *mvchip)
|
||||
@@ -792,10 +820,10 @@ static void __maybe_unused mvebu_pwm_resume(struct mvebu_gpio_chip *mvchip)
|
||||
|
||||
regmap_write(mvchip->regs, GPIO_BLINK_CNT_SELECT_OFF + mvchip->offset,
|
||||
mvpwm->blink_select);
|
||||
|
@ -163,15 +161,15 @@ index adc768f908f1..a2bd264ee92c 100644
|
|||
}
|
||||
|
||||
static int mvebu_pwm_probe(struct platform_device *pdev,
|
||||
@@ -768,6 +831,7 @@ static int mvebu_pwm_probe(struct platform_device *pdev,
|
||||
@@ -805,6 +833,7 @@ static int mvebu_pwm_probe(struct platform_device *pdev,
|
||||
struct device *dev = &pdev->dev;
|
||||
struct mvebu_pwm *mvpwm;
|
||||
struct resource *res;
|
||||
u32 set;
|
||||
+ enum mvebu_pwm_ctrl ctrl_set;
|
||||
|
||||
if (!of_device_is_compatible(mvchip->chip.of_node,
|
||||
"marvell,armada-370-gpio"))
|
||||
@@ -790,12 +854,15 @@ static int mvebu_pwm_probe(struct platform_device *pdev,
|
||||
@@ -826,12 +855,15 @@ static int mvebu_pwm_probe(struct platform_device *pdev,
|
||||
* Use set A for lines of GPIO chip with id 0, B for GPIO chip
|
||||
* with id 1. Don't allow further GPIO chips to be used for PWM.
|
||||
*/
|
||||
|
@ -190,7 +188,7 @@ index adc768f908f1..a2bd264ee92c 100644
|
|||
regmap_write(mvchip->regs,
|
||||
GPIO_BLINK_CNT_SELECT_OFF + mvchip->offset, set);
|
||||
|
||||
@@ -805,15 +872,13 @@ static int mvebu_pwm_probe(struct platform_device *pdev,
|
||||
@@ -841,15 +873,13 @@ static int mvebu_pwm_probe(struct platform_device *pdev,
|
||||
mvchip->mvpwm = mvpwm;
|
||||
mvpwm->mvchip = mvchip;
|
||||
|
||||
|
@ -211,7 +209,7 @@ index adc768f908f1..a2bd264ee92c 100644
|
|||
|
||||
mvpwm->chip.dev = dev;
|
||||
mvpwm->chip.ops = &mvebu_pwm_ops;
|
||||
@@ -826,7 +891,9 @@ static int mvebu_pwm_probe(struct platform_device *pdev,
|
||||
@@ -862,7 +892,9 @@ static int mvebu_pwm_probe(struct platform_device *pdev,
|
||||
*/
|
||||
mvpwm->chip.base = -1;
|
||||
|
||||
|
@ -222,4 +220,3 @@ index adc768f908f1..a2bd264ee92c 100644
|
|||
|
||||
return pwmchip_add(&mvpwm->chip);
|
||||
}
|
||||
|
||||
|
|
|
@ -1,314 +0,0 @@
|
|||
diff --git a/arch/arm/boot/dts/Makefile b/arch/arm/boot/dts/Makefile
|
||||
index 4b17f35..c6b6038 100644
|
||||
--- a/arch/arm/boot/dts/Makefile
|
||||
+++ b/arch/arm/boot/dts/Makefile
|
||||
@@ -1020,6 +1020,7 @@ dtb-$(CONFIG_MACH_ARMADA_38X) += \
|
||||
armada-388-clearfog.dtb \
|
||||
armada-388-clearfog-base.dtb \
|
||||
armada-388-clearfog-pro.dtb \
|
||||
+ armada-388-helios4.dtb \
|
||||
armada-388-db.dtb \
|
||||
armada-388-gp.dtb \
|
||||
armada-388-rd.dtb
|
||||
|
||||
diff --git a/arch/arm/boot/dts/armada-388-helios4.dts b/arch/arm/boot/dts/armada-388-helios4.dts
|
||||
new file mode 100644
|
||||
index 0000000..93d0132
|
||||
--- /dev/null
|
||||
+++ b/arch/arm/boot/dts/armada-388-helios4.dts
|
||||
@@ -0,0 +1,295 @@
|
||||
+/*
|
||||
+ * Device Tree file for Helios4
|
||||
+ * based on SolidRun Clearfog revision A1 rev 2.0 (88F6828)
|
||||
+ *
|
||||
+ * Copyright (C) 2017 Kobol.io
|
||||
+ *
|
||||
+ */
|
||||
+
|
||||
+/dts-v1/;
|
||||
+#include "armada-388.dtsi"
|
||||
+#include "armada-38x-solidrun-microsom.dtsi"
|
||||
+
|
||||
+/ {
|
||||
+ model = "Helios4";
|
||||
+ compatible = "marvell,armada388",
|
||||
+ "marvell,armada385", "marvell,armada380";
|
||||
+
|
||||
+ memory {
|
||||
+ device_type = "memory";
|
||||
+ reg = <0x00000000 0x80000000>; /* 2 GB */
|
||||
+ };
|
||||
+
|
||||
+ aliases {
|
||||
+ /* So that mvebu u-boot can update the MAC addresses */
|
||||
+ ethernet1 = ð0;
|
||||
+ };
|
||||
+
|
||||
+ chosen {
|
||||
+ stdout-path = "serial0:115200n8";
|
||||
+ };
|
||||
+
|
||||
+ reg_12v: regulator-12v {
|
||||
+ compatible = "regulator-fixed";
|
||||
+ regulator-name = "power_brick_12V";
|
||||
+ regulator-min-microvolt = <12000000>;
|
||||
+ regulator-max-microvolt = <12000000>;
|
||||
+ regulator-always-on;
|
||||
+ };
|
||||
+
|
||||
+ reg_3p3v: regulator-3p3v {
|
||||
+ compatible = "regulator-fixed";
|
||||
+ regulator-name = "3P3V";
|
||||
+ regulator-min-microvolt = <3300000>;
|
||||
+ regulator-max-microvolt = <3300000>;
|
||||
+ regulator-always-on;
|
||||
+ vin-supply = <®_12v>;
|
||||
+ };
|
||||
+
|
||||
+ reg_5p0v_hdd: regulator-5v-hdd {
|
||||
+ compatible = "regulator-fixed";
|
||||
+ regulator-name = "5V_HDD";
|
||||
+ regulator-min-microvolt = <5000000>;
|
||||
+ regulator-max-microvolt = <5000000>;
|
||||
+ regulator-always-on;
|
||||
+ vin-supply = <®_12v>;
|
||||
+ };
|
||||
+
|
||||
+ reg_5p0v_usb: regulator-5v-usb {
|
||||
+ compatible = "regulator-fixed";
|
||||
+ regulator-name = "USB-PWR";
|
||||
+ regulator-min-microvolt = <5000000>;
|
||||
+ regulator-max-microvolt = <5000000>;
|
||||
+ regulator-boot-on;
|
||||
+ regulator-always-on;
|
||||
+ enable-active-high;
|
||||
+ gpio = <&expander0 6 GPIO_ACTIVE_HIGH>;
|
||||
+ vin-supply = <®_12v>;
|
||||
+ };
|
||||
+
|
||||
+ system-leds {
|
||||
+ compatible = "gpio-leds";
|
||||
+ status-led {
|
||||
+ label = "helios4:green:status";
|
||||
+ gpios = <&gpio0 24 GPIO_ACTIVE_LOW>;
|
||||
+ linux,default-trigger = "heartbeat";
|
||||
+ default-state = "on";
|
||||
+ };
|
||||
+
|
||||
+ fault-led {
|
||||
+ label = "helios4:red:fault";
|
||||
+ gpios = <&gpio0 25 GPIO_ACTIVE_LOW>;
|
||||
+ default-state = "keep";
|
||||
+ };
|
||||
+ };
|
||||
+
|
||||
+ io-leds {
|
||||
+ compatible = "gpio-leds";
|
||||
+ sata1-led {
|
||||
+ label = "helios4:green:ata1";
|
||||
+ gpios = <&gpio1 17 GPIO_ACTIVE_LOW>;
|
||||
+ linux,default-trigger = "ata1";
|
||||
+ default-state = "off";
|
||||
+ };
|
||||
+ sata2-led {
|
||||
+ label = "helios4:green:ata2";
|
||||
+ gpios = <&gpio1 18 GPIO_ACTIVE_LOW>;
|
||||
+ linux,default-trigger = "ata2";
|
||||
+ default-state = "off";
|
||||
+ };
|
||||
+ sata3-led {
|
||||
+ label = "helios4:green:ata3";
|
||||
+ gpios = <&gpio1 20 GPIO_ACTIVE_LOW>;
|
||||
+ linux,default-trigger = "ata3";
|
||||
+ default-state = "off";
|
||||
+ };
|
||||
+ sata4-led {
|
||||
+ label = "helios4:green:ata4";
|
||||
+ gpios = <&gpio1 21 GPIO_ACTIVE_LOW>;
|
||||
+ linux,default-trigger = "ata4";
|
||||
+ default-state = "off";
|
||||
+ };
|
||||
+ usb-led {
|
||||
+ label = "helios4:green:usb";
|
||||
+ gpios = <&gpio1 22 GPIO_ACTIVE_LOW>;
|
||||
+ linux,default-trigger = "usb-host";
|
||||
+ default-state = "off";
|
||||
+ };
|
||||
+ };
|
||||
+
|
||||
+ fan1: j10-pwm {
|
||||
+ compatible = "pwm-fan";
|
||||
+ pwms = <&gpio1 9 40000>; /* Target freq:25 kHz */
|
||||
+ };
|
||||
+
|
||||
+ fan2: j17-pwm {
|
||||
+ compatible = "pwm-fan";
|
||||
+ pwms = <&gpio1 23 40000>; /* Target freq:25 kHz */
|
||||
+ };
|
||||
+
|
||||
+ usb2_phy: usb2-phy {
|
||||
+ compatible = "usb-nop-xceiv";
|
||||
+ vbus-regulator = <®_5p0v_usb>;
|
||||
+ };
|
||||
+
|
||||
+ usb3_phy: usb3-phy {
|
||||
+ compatible = "usb-nop-xceiv";
|
||||
+ //vbus-regulator = <®_5p0v_usb>;
|
||||
+ };
|
||||
+
|
||||
+ soc {
|
||||
+ internal-regs {
|
||||
+ sata@a8000 {
|
||||
+ status = "okay";
|
||||
+ #address-cells = <1>;
|
||||
+ #size-cells = <0>;
|
||||
+
|
||||
+ sata0: sata-port@0 {
|
||||
+ reg = <0>;
|
||||
+ };
|
||||
+
|
||||
+ sata1: sata-port@1 {
|
||||
+ reg = <1>;
|
||||
+ };
|
||||
+ };
|
||||
+
|
||||
+ sata@e0000 {
|
||||
+ status = "okay";
|
||||
+ #address-cells = <1>;
|
||||
+ #size-cells = <0>;
|
||||
+
|
||||
+ sata2: sata-port@0 {
|
||||
+ reg = <0>;
|
||||
+ };
|
||||
+
|
||||
+ sata3: sata-port@1 {
|
||||
+ reg = <1>;
|
||||
+ };
|
||||
+ };
|
||||
+
|
||||
+ sdhci@d8000 {
|
||||
+ bus-width = <4>;
|
||||
+ cd-gpios = <&gpio0 20 GPIO_ACTIVE_LOW>;
|
||||
+ no-1-8-v;
|
||||
+ pinctrl-0 = <µsom_sdhci_pins
|
||||
+ &helios_sdhci_cd_pins>;
|
||||
+ pinctrl-names = "default";
|
||||
+ status = "okay";
|
||||
+ vmmc = <®_3p3v>;
|
||||
+ wp-inverted;
|
||||
+ };
|
||||
+
|
||||
+ usb@58000 {
|
||||
+ //vcc-supply = <®_5p0v_usb>;
|
||||
+ usb-phy = <&usb2_phy>;
|
||||
+ status = "okay";
|
||||
+ };
|
||||
+
|
||||
+ usb3@f0000 {
|
||||
+ status = "okay";
|
||||
+ };
|
||||
+
|
||||
+ usb3@f8000 {
|
||||
+ status = "okay";
|
||||
+ };
|
||||
+ };
|
||||
+ };
|
||||
+};
|
||||
+
|
||||
+&i2c0 {
|
||||
+ clock-frequency = <400000>;
|
||||
+ pinctrl-0 = <&i2c0_pins>;
|
||||
+ pinctrl-names = "default";
|
||||
+ status = "okay";
|
||||
+
|
||||
+ /*
|
||||
+ * PCA9655 GPIO expander, up to 1MHz clock.
|
||||
+ * 0-Board Revision bit 0 #
|
||||
+ * 1-Board Revision bit 1 #
|
||||
+ * 5-USB3 overcurrent
|
||||
+ * 6-USB3 power
|
||||
+ */
|
||||
+ expander0: gpio-expander@20 {
|
||||
+ /*
|
||||
+ * This is how it should be:
|
||||
+ * compatible = "onnn,pca9655", "nxp,pca9555";
|
||||
+ * but you can't do this because of the way I2C works.
|
||||
+ */
|
||||
+ compatible = "nxp,pca9555";
|
||||
+ gpio-controller;
|
||||
+ #gpio-cells = <2>;
|
||||
+ reg = <0x20>;
|
||||
+ pinctrl-names = "default";
|
||||
+ pinctrl-0 = <&pca0_pins>;
|
||||
+ interrupt-parent = <&gpio0>;
|
||||
+ interrupts = <23 IRQ_TYPE_EDGE_FALLING>;
|
||||
+ interrupt-controller;
|
||||
+ #interrupt-cells = <2>;
|
||||
+
|
||||
+ board_rev_bit_0 {
|
||||
+ gpio-hog;
|
||||
+ gpios = <0 GPIO_ACTIVE_LOW>;
|
||||
+ input;
|
||||
+ line-name = "board-rev-0";
|
||||
+ };
|
||||
+ board_rev_bit_1 {
|
||||
+ gpio-hog;
|
||||
+ gpios = <1 GPIO_ACTIVE_LOW>;
|
||||
+ input;
|
||||
+ line-name = "board-rev-1";
|
||||
+ };
|
||||
+ usb3_ilimit {
|
||||
+ gpio-hog;
|
||||
+ gpios = <5 GPIO_ACTIVE_HIGH>;
|
||||
+ input;
|
||||
+ line-name = "usb-overcurrent-status";
|
||||
+ };
|
||||
+ };
|
||||
+
|
||||
+ temp_sensor: temp@4c {
|
||||
+ compatible = "ti,lm75";
|
||||
+ reg = <0x4c>;
|
||||
+ vcc-supply = <®_3p3v>;
|
||||
+ };
|
||||
+};
|
||||
+
|
||||
+&i2c1 {
|
||||
+ /*
|
||||
+ * External I2C Bus for user peripheral
|
||||
+ */
|
||||
+ clock-frequency = <400000>;
|
||||
+ pinctrl-0 = <&helios_i2c1_pins>;
|
||||
+ pinctrl-names = "default";
|
||||
+ status = "okay";
|
||||
+};
|
||||
+
|
||||
+&pinctrl {
|
||||
+ pca0_pins: pca0_pins {
|
||||
+ marvell,pins = "mpp23";
|
||||
+ marvell,function = "gpio";
|
||||
+ };
|
||||
+ microsom_phy0_int_pins: microsom-phy0-int-pins {
|
||||
+ marvell,pins = "mpp18";
|
||||
+ marvell,function = "gpio";
|
||||
+ };
|
||||
+ helios_i2c1_pins: i2c1-pins {
|
||||
+ marvell,pins = "mpp26", "mpp27";
|
||||
+ marvell,function = "i2c1";
|
||||
+ };
|
||||
+ helios_sdhci_cd_pins: helios-sdhci-cd-pins {
|
||||
+ marvell,pins = "mpp20";
|
||||
+ marvell,function = "gpio";
|
||||
+ };
|
||||
+ helios_led_pins: helios-led-pins {
|
||||
+ marvell,pins = "mpp24", "mpp25",
|
||||
+ "mpp49", "mpp50",
|
||||
+ "mpp52", "mpp53",
|
||||
+ "mpp54";
|
||||
+ marvell,function = "gpio";
|
||||
+ };
|
||||
+ helios_fan_pins: helios-fan-pins {
|
||||
+ marvell,pins = "mpp41", "mpp43",
|
||||
+ "mpp48", "mpp55";
|
||||
+ marvell,function = "gpio";
|
||||
+ };
|
||||
+};
|
|
@ -1,8 +1,6 @@
|
|||
diff --git a/arch/arm/boot/dts/armada-388-helios4.dts b/arch/arm/boot/dts/armada-388-helios4.dts
|
||||
index 705adfa8c..d5afbfc53 100644
|
||||
--- a/arch/arm/boot/dts/armada-388-helios4.dts
|
||||
+++ b/arch/arm/boot/dts/armada-388-helios4.dts
|
||||
@@ -84,6 +84,18 @@
|
||||
@@ -96,6 +96,18 @@
|
||||
};
|
||||
};
|
||||
|
||||
|
|
|
@ -1,8 +1,26 @@
|
|||
diff --git a/arch/arm/boot/dts/armada-388-helios4.dts b/arch/arm/boot/dts/armada-388-helios4.dts
|
||||
index 0c9c3be44..a85e80a7e 100644
|
||||
--- a/arch/arm/boot/dts/armada-388-helios4.dts
|
||||
+++ b/arch/arm/boot/dts/armada-388-helios4.dts
|
||||
@@ -132,11 +132,15 @@ usb-led {
|
||||
@@ -70,6 +70,9 @@ reg_5p0v_usb: regulator-5v-usb {
|
||||
|
||||
system-leds {
|
||||
compatible = "gpio-leds";
|
||||
+ pinctrl-names = "default";
|
||||
+ pinctrl-0 = <&helios_system_led_pins>;
|
||||
+
|
||||
status-led {
|
||||
label = "helios4:green:status";
|
||||
gpios = <&gpio0 24 GPIO_ACTIVE_LOW>;
|
||||
@@ -110,6 +113,9 @@ wol {
|
||||
|
||||
io-leds {
|
||||
compatible = "gpio-leds";
|
||||
+ pinctrl-names = "default";
|
||||
+ pinctrl-0 = <&helios_io_led_pins>;
|
||||
+
|
||||
sata1-led {
|
||||
label = "helios4:green:ata1";
|
||||
gpios = <&gpio1 17 GPIO_ACTIVE_LOW>;
|
||||
@@ -145,11 +151,15 @@ usb-led {
|
||||
fan1: j10-pwm {
|
||||
compatible = "pwm-fan";
|
||||
pwms = <&gpio1 9 40000>; /* Target freq:25 kHz */
|
||||
|
@ -18,68 +36,32 @@ index 0c9c3be44..a85e80a7e 100644
|
|||
};
|
||||
|
||||
usb2_phy: usb2-phy {
|
||||
@@ -299,9 +303,12 @@ helios_led_pins: helios-led-pins {
|
||||
"mpp54";
|
||||
marvell,function = "gpio";
|
||||
};
|
||||
- helios_fan_pins: helios-fan-pins {
|
||||
- marvell,pins = "mpp41", "mpp43",
|
||||
- "mpp48", "mpp55";
|
||||
+ j10_pins: fan-j10-pins {
|
||||
+ marvell,pins = "mpp41", "mpp43";
|
||||
+ marvell,function = "gpio";
|
||||
+ };
|
||||
+ j17_pins: fan-j17-pins {
|
||||
+ marvell,pins = "mpp48", "mpp55";
|
||||
marvell,function = "gpio";
|
||||
};
|
||||
};
|
||||
diff --git a/arch/arm/boot/dts/armada-388-helios4.dts b/arch/arm/boot/dts/armada-388-helios4.dts
|
||||
index a85e80a7e..702efe783 100644
|
||||
--- a/arch/arm/boot/dts/armada-388-helios4.dts
|
||||
+++ b/arch/arm/boot/dts/armada-388-helios4.dts
|
||||
@@ -69,6 +69,9 @@ reg_5p0v_usb: regulator-5v-usb {
|
||||
|
||||
system-leds {
|
||||
compatible = "gpio-leds";
|
||||
+ pinctrl-names = "default";
|
||||
+ pinctrl-0 = <&helios_system_led_pins>;
|
||||
+
|
||||
status-led {
|
||||
label = "helios4:green:status";
|
||||
gpios = <&gpio0 24 GPIO_ACTIVE_LOW>;
|
||||
@@ -97,6 +100,9 @@ wol {
|
||||
|
||||
io-leds {
|
||||
compatible = "gpio-leds";
|
||||
+ pinctrl-names = "default";
|
||||
+ pinctrl-0 = <&helios_io_led_pins>;
|
||||
+
|
||||
sata1-led {
|
||||
label = "helios4:green:ata1";
|
||||
gpios = <&gpio1 17 GPIO_ACTIVE_LOW>;
|
||||
@@ -296,13 +302,21 @@ helios_sdhci_cd_pins: helios-sdhci-cd-pins {
|
||||
marvell,pins = "mpp20";
|
||||
marvell,function = "gpio";
|
||||
};
|
||||
- helios_led_pins: helios-led-pins {
|
||||
- marvell,pins = "mpp24", "mpp25",
|
||||
- "mpp49", "mpp50",
|
||||
+
|
||||
+ helios_system_led_pins: helios-system-led-pins {
|
||||
+ marvell,pins = "mpp24", "mpp25";
|
||||
+
|
||||
+ marvell,function = "gpio";
|
||||
+ };
|
||||
+
|
||||
+ helios_io_led_pins: helios-io-led-pins {
|
||||
+ marvell,pins = "mpp49", "mpp50",
|
||||
"mpp52", "mpp53",
|
||||
"mpp54";
|
||||
+
|
||||
marvell,function = "gpio";
|
||||
};
|
||||
+
|
||||
j10_pins: fan-j10-pins {
|
||||
marvell,pins = "mpp41", "mpp43";
|
||||
marvell,function = "gpio";
|
||||
@@ -310,16 +320,23 @@ helios_sdhci_pins: helios-sdhci-pins {
|
||||
"mpp39", "mpp40";
|
||||
marvell,function = "sd0";
|
||||
};
|
||||
- helios_led_pins: helios-led-pins {
|
||||
- marvell,pins = "mpp24", "mpp25",
|
||||
+ helios_system_led_pins: helios-system-led-pins {
|
||||
+ marvell,pins = "mpp24", "mpp25";
|
||||
+ marvell,function = "gpio";
|
||||
+ };
|
||||
+ helios_io_led_pins: helios-io-led-pins {
|
||||
+ marvell,pins = "mpp49", "mpp50",
|
||||
"mpp49", "mpp50",
|
||||
"mpp52", "mpp53",
|
||||
"mpp54";
|
||||
marvell,function = "gpio";
|
||||
};
|
||||
- helios_fan_pins: helios-fan-pins {
|
||||
- marvell,pins = "mpp41", "mpp43",
|
||||
- "mpp48", "mpp55";
|
||||
+ j10_pins: fan-j10-pins {
|
||||
+ marvell,pins = "mpp41", "mpp43";
|
||||
+ marvell,function = "gpio";
|
||||
+ };
|
||||
+ j17_pins: fan-j17-pins {
|
||||
+ marvell,pins = "mpp48", "mpp55";
|
||||
marvell,function = "gpio";
|
||||
};
|
||||
microsom_spi1_cs_pins: spi1-cs-pins {
|
||||
|
|
|
@ -1,14 +1,12 @@
|
|||
diff --git a/scripts/Makefile.lib b/scripts/Makefile.lib
|
||||
index 61e596650..fdb066e51 100644
|
||||
--- a/scripts/Makefile.lib
|
||||
+++ b/scripts/Makefile.lib
|
||||
@@ -244,6 +244,9 @@ cmd_gzip = (cat $(filter-out FORCE,$^) | gzip -n -f -9 > $@) || \
|
||||
# ---------------------------------------------------------------------------
|
||||
@@ -277,6 +277,9 @@ quiet_cmd_gzip = GZIP $@
|
||||
DTC ?= $(objtree)/scripts/dtc/dtc
|
||||
DTC_FLAGS += -Wno-interrupt_provider
|
||||
|
||||
+# Enable overlay support
|
||||
+DTC_FLAGS += -@
|
||||
+
|
||||
# Disable noisy checks by default
|
||||
ifeq ($(findstring 1,$(KBUILD_ENABLE_EXTRA_GCC_CHECKS)),)
|
||||
ifeq ($(findstring 1,$(KBUILD_EXTRA_WARN)),)
|
||||
DTC_FLAGS += -Wno-unit_address_vs_reg \
|
||||
|
|
|
@ -1,8 +1,6 @@
|
|||
diff --git a/arch/arm/boot/dts/armada-38x-solidrun-microsom.dtsi b/arch/arm/boot/dts/armada-38x-solidrun-microsom.dtsi
|
||||
index 3a7f9c1ac..e04790639 100644
|
||||
--- a/arch/arm/boot/dts/armada-38x-solidrun-microsom.dtsi
|
||||
+++ b/arch/arm/boot/dts/armada-38x-solidrun-microsom.dtsi
|
||||
@@ -94,6 +94,7 @@
|
||||
@@ -107,6 +107,7 @@
|
||||
compatible = "w25q32", "jedec,spi-nor";
|
||||
reg = <0>; /* Chip select 0 */
|
||||
spi-max-frequency = <3000000>;
|
||||
|
|
|
@ -1,13 +1,11 @@
|
|||
diff --git a/arch/arm/mm/dma-mapping.c b/arch/arm/mm/dma-mapping.c
|
||||
index ada8eb2..8df220f
|
||||
--- a/arch/arm/mm/dma-mapping.c
|
||||
+++ b/arch/arm/mm/dma-mapping.c
|
||||
@@ -381,7 +381,7 @@ static void __dma_free_remap(void *cpu_addr, size_t size)
|
||||
VM_ARM_DMA_CONSISTENT | VM_USERMAP);
|
||||
}
|
||||
|
||||
@@ -314,7 +314,7 @@ static void *__alloc_remap_buffer(struct device *dev, size_t size, gfp_t gfp,
|
||||
pgprot_t prot, struct page **ret_page,
|
||||
const void *caller, bool want_vaddr);
|
||||
|
||||
-#define DEFAULT_DMA_COHERENT_POOL_SIZE SZ_256K
|
||||
+#define DEFAULT_DMA_COHERENT_POOL_SIZE SZ_2M
|
||||
static struct gen_pool *atomic_pool __ro_after_init;
|
||||
|
||||
|
||||
static size_t atomic_pool_size __initdata = DEFAULT_DMA_COHERENT_POOL_SIZE;
|
||||
|
|
|
@ -1,10 +1,8 @@
|
|||
diff --git a/drivers/net/wireless/ath/regd.c b/drivers/net/wireless/ath/regd.c
|
||||
index ccc4c71..71a4d00 100644
|
||||
--- a/drivers/net/wireless/ath/regd.c
|
||||
+++ b/drivers/net/wireless/ath/regd.c
|
||||
@@ -49,12 +49,9 @@ static int __ath_regd_init(struct ath_regulatory *reg);
|
||||
@@ -50,12 +50,9 @@ static int __ath_regd_init(struct ath_regulatory *reg);
|
||||
#define ATH_5GHZ_5725_5850 REG_RULE(5725-10, 5850+10, 80, 0, 30,\
|
||||
NL80211_RRF_PASSIVE_SCAN | NL80211_RRF_NO_IBSS)
|
||||
NL80211_RRF_NO_IR)
|
||||
|
||||
-#define ATH_2GHZ_ALL ATH_2GHZ_CH01_11, \
|
||||
- ATH_2GHZ_CH12_13, \
|
||||
|
@ -17,7 +15,7 @@ index ccc4c71..71a4d00 100644
|
|||
|
||||
/* This one skips what we call "mid band" */
|
||||
#define ATH_5GHZ_NO_MIDBAND ATH_5GHZ_5150_5350, \
|
||||
@@ -76,9 +73,8 @@ static const struct ieee80211_regdomain ath_world_regdom_63_65 = {
|
||||
@@ -77,9 +74,8 @@ static const struct ieee80211_regdomain ath_world_regdom_63_65 = {
|
||||
.n_reg_rules = 4,
|
||||
.alpha2 = "99",
|
||||
.reg_rules = {
|
||||
|
@ -29,7 +27,7 @@ index ccc4c71..71a4d00 100644
|
|||
}
|
||||
};
|
||||
|
||||
@@ -87,8 +83,8 @@ static const struct ieee80211_regdomain ath_world_regdom_64 = {
|
||||
@@ -88,8 +84,8 @@ static const struct ieee80211_regdomain ath_world_regdom_64 = {
|
||||
.n_reg_rules = 3,
|
||||
.alpha2 = "99",
|
||||
.reg_rules = {
|
||||
|
@ -40,7 +38,7 @@ index ccc4c71..71a4d00 100644
|
|||
}
|
||||
};
|
||||
|
||||
@@ -97,7 +93,7 @@ static const struct ieee80211_regdomain ath_world_regdom_66_69 = {
|
||||
@@ -98,7 +94,7 @@ static const struct ieee80211_regdomain ath_world_regdom_66_69 = {
|
||||
.n_reg_rules = 3,
|
||||
.alpha2 = "99",
|
||||
.reg_rules = {
|
||||
|
@ -49,7 +47,7 @@ index ccc4c71..71a4d00 100644
|
|||
ATH_5GHZ_ALL,
|
||||
}
|
||||
};
|
||||
@@ -107,8 +103,7 @@ static const struct ieee80211_regdomain ath_world_regdom_67_68_6A_6C = {
|
||||
@@ -108,8 +104,7 @@ static const struct ieee80211_regdomain ath_world_regdom_67_68_6A_6C = {
|
||||
.n_reg_rules = 4,
|
||||
.alpha2 = "99",
|
||||
.reg_rules = {
|
||||
|
@ -59,7 +57,7 @@ index ccc4c71..71a4d00 100644
|
|||
ATH_5GHZ_ALL,
|
||||
}
|
||||
};
|
||||
@@ -253,9 +253,7 @@ static bool ath_is_radar_freq(u16 center_freq,
|
||||
@@ -258,9 +253,7 @@ static bool ath_is_radar_freq(u16 center_freq,
|
||||
struct ath_regulatory *reg)
|
||||
|
||||
{
|
||||
|
@ -70,4 +68,3 @@ index ccc4c71..71a4d00 100644
|
|||
}
|
||||
|
||||
static void ath_force_clear_no_ir_chan(struct wiphy *wiphy,
|
||||
--
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue