summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarcel Ziswiler <marcel.ziswiler@toradex.com>2018-06-14 18:33:19 +0200
committerStefan Agner <stefan.agner@toradex.com>2018-06-18 09:27:19 +0200
commit8987b7e1754cbafc8e39682f093c8136a79a606b (patch)
tree4e1102750d757e8892cfa5df2071f6265c186798
parent6dadbe37f2ba60aa8032befa381ab1c50f77e2f8 (diff)
apalis-t30/tk1-mainline: more fixes
Add the following patches: - apalis-t30/tk1-mainline: igb: avoid nvm checksum failure - apalis_t30: fix can2 - mfd: as3722: disable auto power on when AC OK Signed-off-by: Marcel Ziswiler <marcel.ziswiler@toradex.com> Acked-by: Stefan Agner <stefan.agner@toradex.com>
-rw-r--r--recipes-kernel/linux/linux-toradex-mainline-4.14/0021-apalis-t30-tk1-mainline-igb-avoid-nvm-checksum-failu.patch36
-rw-r--r--recipes-kernel/linux/linux-toradex-mainline-4.14/0022-apalis_t30-fix-can2.patch34
-rw-r--r--recipes-kernel/linux/linux-toradex-mainline-4.14/0023-mfd-as3722-disable-auto-power-on-when-AC-OK.patch88
-rw-r--r--recipes-kernel/linux/linux-toradex-mainline_4.14.bb3
4 files changed, 161 insertions, 0 deletions
diff --git a/recipes-kernel/linux/linux-toradex-mainline-4.14/0021-apalis-t30-tk1-mainline-igb-avoid-nvm-checksum-failu.patch b/recipes-kernel/linux/linux-toradex-mainline-4.14/0021-apalis-t30-tk1-mainline-igb-avoid-nvm-checksum-failu.patch
new file mode 100644
index 0000000..2a323ad
--- /dev/null
+++ b/recipes-kernel/linux/linux-toradex-mainline-4.14/0021-apalis-t30-tk1-mainline-igb-avoid-nvm-checksum-failu.patch
@@ -0,0 +1,36 @@
+From 8c72a22b01f1db78a0bd7c982c4db394eb9a166f Mon Sep 17 00:00:00 2001
+Message-Id: <8c72a22b01f1db78a0bd7c982c4db394eb9a166f.1529072479.git.marcel.ziswiler@toradex.com>
+In-Reply-To: <fb4764e8eb658d35e8fc62ae79c77e1f6e2b0ef3.1529072479.git.marcel.ziswiler@toradex.com>
+References: <fb4764e8eb658d35e8fc62ae79c77e1f6e2b0ef3.1529072479.git.marcel.ziswiler@toradex.com>
+From: Marcel Ziswiler <marcel.ziswiler@toradex.com>
+Date: Tue, 12 Jun 2018 09:47:30 +0200
+Subject: [PATCH 21/27] apalis-t30/tk1-mainline: igb: avoid nvm checksum
+ failure
+
+This avoids the following error in case the iNVM of the i210/i211 is not
+yet programmed (e.g. due to using one of them early Apalis T30 samples
+or a factory pristine module as in the FCT case):
+
+The NVM Checksum Is Not Valid
+
+Signed-off-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>
+---
+ drivers/net/ethernet/intel/igb/igb_main.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/drivers/net/ethernet/intel/igb/igb_main.c b/drivers/net/ethernet/intel/igb/igb_main.c
+index c2e8a3654119..2207d0d1906c 100644
+--- a/drivers/net/ethernet/intel/igb/igb_main.c
++++ b/drivers/net/ethernet/intel/igb/igb_main.c
+@@ -2533,7 +2533,7 @@ static int igb_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
+ case e1000_i210:
+ case e1000_i211:
+ if (igb_get_flash_presence_i210(hw)) {
+- if (hw->nvm.ops.validate(hw) < 0) {
++ if ((hw->nvm.ops.validate(hw) < 0) && !g_usr_mac) {
+ dev_err(&pdev->dev,
+ "The NVM Checksum Is Not Valid\n");
+ err = -EIO;
+--
+2.14.4
+
diff --git a/recipes-kernel/linux/linux-toradex-mainline-4.14/0022-apalis_t30-fix-can2.patch b/recipes-kernel/linux/linux-toradex-mainline-4.14/0022-apalis_t30-fix-can2.patch
new file mode 100644
index 0000000..f535c56
--- /dev/null
+++ b/recipes-kernel/linux/linux-toradex-mainline-4.14/0022-apalis_t30-fix-can2.patch
@@ -0,0 +1,34 @@
+From c76e3da5c5e5d1c94ffcc6a5c73d916c7af8060e Mon Sep 17 00:00:00 2001
+Message-Id: <c76e3da5c5e5d1c94ffcc6a5c73d916c7af8060e.1529072479.git.marcel.ziswiler@toradex.com>
+In-Reply-To: <fb4764e8eb658d35e8fc62ae79c77e1f6e2b0ef3.1529072479.git.marcel.ziswiler@toradex.com>
+References: <fb4764e8eb658d35e8fc62ae79c77e1f6e2b0ef3.1529072479.git.marcel.ziswiler@toradex.com>
+From: Marcel Ziswiler <marcel.ziswiler@toradex.com>
+Date: Tue, 12 Jun 2018 14:39:50 +0200
+Subject: [PATCH 22/27] apalis_t30: fix can2
+
+CAN2 currently fails on probe as follows:
+
+mcp251x spi1.1: Probe failed, err=19
+
+Fix this by enabling input on pin mux of resp. SPI4 pins.
+
+Signed-off-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>
+---
+ arch/arm/boot/dts/tegra30-apalis.dtsi | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/arch/arm/boot/dts/tegra30-apalis.dtsi b/arch/arm/boot/dts/tegra30-apalis.dtsi
+index faa8cd2914e8..4b022b50782b 100644
+--- a/arch/arm/boot/dts/tegra30-apalis.dtsi
++++ b/arch/arm/boot/dts/tegra30-apalis.dtsi
+@@ -118,6 +118,7 @@
+ nvidia,function = "spi4";
+ nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+ nvidia,tristate = <TEGRA_PIN_DISABLE>;
++ nvidia,enable-input = <TEGRA_PIN_ENABLE>;
+ };
+ /* CAN_INT2 */
+ spi2_cs2_n_pw3 {
+--
+2.14.4
+
diff --git a/recipes-kernel/linux/linux-toradex-mainline-4.14/0023-mfd-as3722-disable-auto-power-on-when-AC-OK.patch b/recipes-kernel/linux/linux-toradex-mainline-4.14/0023-mfd-as3722-disable-auto-power-on-when-AC-OK.patch
new file mode 100644
index 0000000..568d50d
--- /dev/null
+++ b/recipes-kernel/linux/linux-toradex-mainline-4.14/0023-mfd-as3722-disable-auto-power-on-when-AC-OK.patch
@@ -0,0 +1,88 @@
+From a7e721386ede46fbb0d78abcccc0f235b257cfe9 Mon Sep 17 00:00:00 2001
+Message-Id: <a7e721386ede46fbb0d78abcccc0f235b257cfe9.1529072479.git.marcel.ziswiler@toradex.com>
+In-Reply-To: <fb4764e8eb658d35e8fc62ae79c77e1f6e2b0ef3.1529072479.git.marcel.ziswiler@toradex.com>
+References: <fb4764e8eb658d35e8fc62ae79c77e1f6e2b0ef3.1529072479.git.marcel.ziswiler@toradex.com>
+From: Marcel Ziswiler <marcel.ziswiler@toradex.com>
+Date: Thu, 14 Jun 2018 05:40:06 +0200
+Subject: [PATCH 23/27] mfd: as3722: disable auto power on when AC OK
+
+On ams AS3722, power on when AC OK is enabled by default.
+Making this option as disable by default and enable only
+when platform need this explicitly.
+
+Change-Id: I103d62ab9170c96b00ce8b58235afb8d24ba5e63
+Signed-off-by: Laxman Dewangan <ldewangan@nvidia.com>
+Reviewed-on: http://git-master/r/349290
+Reviewed-by: Bibek Basu <bbasu@nvidia.com>
+Tested-by: Bibek Basu <bbasu@nvidia.com>
+
+Downsteam commit 09cd706fecb9 ("mfd: as3722: disable auto power on when
+AC OK").
+
+Signed-off-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>
+---
+ drivers/mfd/as3722.c | 12 ++++++++++++
+ include/linux/mfd/as3722.h | 3 +++
+ 2 files changed, 15 insertions(+)
+
+diff --git a/drivers/mfd/as3722.c b/drivers/mfd/as3722.c
+index f87342c211bc..215465c97759 100644
+--- a/drivers/mfd/as3722.c
++++ b/drivers/mfd/as3722.c
+@@ -349,6 +349,8 @@ static int as3722_i2c_of_probe(struct i2c_client *i2c,
+ "ams,enable-internal-int-pullup");
+ as3722->en_intern_i2c_pullup = of_property_read_bool(np,
+ "ams,enable-internal-i2c-pullup");
++ as3722->en_ac_ok_pwr_on = of_property_read_bool(np,
++ "ams,enable-ac-ok-power-on");
+ as3722->irq_flags = irqd_get_trigger_type(irq_data);
+ dev_dbg(&i2c->dev, "IRQ flags are 0x%08lx\n", as3722->irq_flags);
+ return 0;
+@@ -360,6 +362,7 @@ static int as3722_i2c_probe(struct i2c_client *i2c,
+ struct as3722 *as3722;
+ unsigned long irq_flags;
+ int ret;
++ u8 val = 0;
+
+ as3722 = devm_kzalloc(&i2c->dev, sizeof(struct as3722), GFP_KERNEL);
+ if (!as3722)
+@@ -398,6 +401,15 @@ static int as3722_i2c_probe(struct i2c_client *i2c,
+ if (ret < 0)
+ return ret;
+
++ if (as3722->en_ac_ok_pwr_on)
++ val = AS3722_CTRL_SEQ1_AC_OK_PWR_ON;
++ ret = as3722_update_bits(as3722, AS3722_CTRL_SEQU1_REG,
++ AS3722_CTRL_SEQ1_AC_OK_PWR_ON, val);
++ if (ret < 0) {
++ dev_err(as3722->dev, "CTRL_SEQ1 update failed: %d\n", ret);
++ return ret;
++ }
++
+ ret = devm_mfd_add_devices(&i2c->dev, -1, as3722_devs,
+ ARRAY_SIZE(as3722_devs), NULL, 0,
+ regmap_irq_get_domain(as3722->irq_data));
+diff --git a/include/linux/mfd/as3722.h b/include/linux/mfd/as3722.h
+index 51e6f9414575..8841b9896033 100644
+--- a/include/linux/mfd/as3722.h
++++ b/include/linux/mfd/as3722.h
+@@ -296,6 +296,8 @@
+ #define AS3722_ADC1_CONV_NOTREADY BIT(7)
+ #define AS3722_ADC1_SOURCE_SELECT_MASK 0x1F
+
++#define AS3722_CTRL_SEQ1_AC_OK_PWR_ON BIT(0)
++
+ /* GPIO modes */
+ #define AS3722_GPIO_MODE_MASK 0x07
+ #define AS3722_GPIO_MODE_INPUT 0x00
+@@ -391,6 +393,7 @@ struct as3722 {
+ unsigned long irq_flags;
+ bool en_intern_int_pullup;
+ bool en_intern_i2c_pullup;
++ bool en_ac_ok_pwr_on;
+ struct regmap_irq_chip_data *irq_data;
+ };
+
+--
+2.14.4
+
diff --git a/recipes-kernel/linux/linux-toradex-mainline_4.14.bb b/recipes-kernel/linux/linux-toradex-mainline_4.14.bb
index fa909f7..a7fbd24 100644
--- a/recipes-kernel/linux/linux-toradex-mainline_4.14.bb
+++ b/recipes-kernel/linux/linux-toradex-mainline_4.14.bb
@@ -37,6 +37,9 @@ GENERIC_PATCHES = " \
file://0018-apalis-t30-mainline-force-fixed-ids-for-sdmmc-contro.patch \
file://0019-clk-tegra-Fix-pll_u-rate-configuration.patch \
file://0020-ARM-tegra-apalis-tk1-Fix-high-speed-UART-compatible.patch \
+ file://0021-apalis-t30-tk1-mainline-igb-avoid-nvm-checksum-failu.patch \
+ file://0022-apalis_t30-fix-can2.patch \
+ file://0023-mfd-as3722-disable-auto-power-on-when-AC-OK.patch \
"
MACHINE_PATCHES = " \
"