kernel: bump 4.14 to 4.14.44
Refresh patches. Remove upstreamed patch: generic/pending/181-net-usb-add-lte-modem-wistron-neweb-d18q1.patch Update patches that no longer applies: generic/hack/901-debloat_sock_diag.patch Compile-tested on: x86/64. Runtime-tested on: x86/64. Signed-off-by: Stijn Tintel <stijn@linux-ipv6.be>
This commit is contained in:
parent
f4a639a3d7
commit
64b53247c4
128 changed files with 459 additions and 1355 deletions
|
@ -5,12 +5,12 @@ LINUX_RELEASE?=1
|
||||||
LINUX_VERSION-3.18 = .71
|
LINUX_VERSION-3.18 = .71
|
||||||
LINUX_VERSION-4.4 = .121
|
LINUX_VERSION-4.4 = .121
|
||||||
LINUX_VERSION-4.9 = .102
|
LINUX_VERSION-4.9 = .102
|
||||||
LINUX_VERSION-4.14 = .43
|
LINUX_VERSION-4.14 = .44
|
||||||
|
|
||||||
LINUX_KERNEL_HASH-3.18.71 = 5abc9778ad44ce02ed6c8ab52ece8a21c6d20d21f6ed8a19287b4a38a50c1240
|
LINUX_KERNEL_HASH-3.18.71 = 5abc9778ad44ce02ed6c8ab52ece8a21c6d20d21f6ed8a19287b4a38a50c1240
|
||||||
LINUX_KERNEL_HASH-4.4.121 = 44a88268b5088dc326b30c9b9133ac35a9a200b636b7268d08f32abeae6ca729
|
LINUX_KERNEL_HASH-4.4.121 = 44a88268b5088dc326b30c9b9133ac35a9a200b636b7268d08f32abeae6ca729
|
||||||
LINUX_KERNEL_HASH-4.9.102 = d155a36ba52d5809805cd370902582ac373c5b23a958c6424325684447119dc5
|
LINUX_KERNEL_HASH-4.9.102 = d155a36ba52d5809805cd370902582ac373c5b23a958c6424325684447119dc5
|
||||||
LINUX_KERNEL_HASH-4.14.43 = 133fc0f8f9ea04006c255a052704e8eb95a021fc799dd27f98fcfcace59e714a
|
LINUX_KERNEL_HASH-4.14.44 = 2eb356e6af25f6ca65affe7704be8c4e0cdf224505e7441ac9d5b6e8d96ec8e4
|
||||||
|
|
||||||
remove_uri_prefix=$(subst git://,,$(subst http://,,$(subst https://,,$(1))))
|
remove_uri_prefix=$(subst git://,,$(subst http://,,$(subst https://,,$(1))))
|
||||||
sanitize_uri=$(call qstrip,$(subst @,_,$(subst :,_,$(subst .,_,$(subst -,_,$(subst /,_,$(1)))))))
|
sanitize_uri=$(call qstrip,$(subst @,_,$(subst :,_,$(subst .,_,$(subst -,_,$(subst /,_,$(1)))))))
|
||||||
|
|
|
@ -1,7 +1,5 @@
|
||||||
Index: linux-4.14.42/arch/mips/ath79/common.c
|
--- a/arch/mips/ath79/common.c
|
||||||
===================================================================
|
+++ b/arch/mips/ath79/common.c
|
||||||
--- linux-4.14.42.orig/arch/mips/ath79/common.c
|
|
||||||
+++ linux-4.14.42/arch/mips/ath79/common.c
|
|
||||||
@@ -34,11 +34,13 @@ EXPORT_SYMBOL_GPL(ath79_ddr_freq);
|
@@ -34,11 +34,13 @@ EXPORT_SYMBOL_GPL(ath79_ddr_freq);
|
||||||
|
|
||||||
enum ath79_soc_type ath79_soc;
|
enum ath79_soc_type ath79_soc;
|
||||||
|
@ -17,10 +15,8 @@ Index: linux-4.14.42/arch/mips/ath79/common.c
|
||||||
static void __iomem *ath79_ddr_wb_flush_base;
|
static void __iomem *ath79_ddr_wb_flush_base;
|
||||||
static void __iomem *ath79_ddr_pci_win_base;
|
static void __iomem *ath79_ddr_pci_win_base;
|
||||||
|
|
||||||
Index: linux-4.14.42/arch/mips/include/asm/mach-ath79/ath79.h
|
--- a/arch/mips/include/asm/mach-ath79/ath79.h
|
||||||
===================================================================
|
+++ b/arch/mips/include/asm/mach-ath79/ath79.h
|
||||||
--- linux-4.14.42.orig/arch/mips/include/asm/mach-ath79/ath79.h
|
|
||||||
+++ linux-4.14.42/arch/mips/include/asm/mach-ath79/ath79.h
|
|
||||||
@@ -152,6 +152,7 @@ void ath79_ddr_wb_flush(unsigned int reg
|
@@ -152,6 +152,7 @@ void ath79_ddr_wb_flush(unsigned int reg
|
||||||
void ath79_ddr_set_pci_windows(void);
|
void ath79_ddr_set_pci_windows(void);
|
||||||
|
|
||||||
|
|
|
@ -63,7 +63,7 @@ Signed-off-by: Felipe Balbi <felipe.balbi@linux.intel.com>
|
||||||
/**
|
/**
|
||||||
* dwc2_enable_host_interrupts() - Enables the Host mode interrupts
|
* dwc2_enable_host_interrupts() - Enables the Host mode interrupts
|
||||||
*
|
*
|
||||||
@@ -3246,6 +3263,7 @@ static void dwc2_conn_id_status_change(s
|
@@ -3276,6 +3293,7 @@ static void dwc2_conn_id_status_change(s
|
||||||
|
|
||||||
/* B-Device connector (Device Mode) */
|
/* B-Device connector (Device Mode) */
|
||||||
if (gotgctl & GOTGCTL_CONID_B) {
|
if (gotgctl & GOTGCTL_CONID_B) {
|
||||||
|
@ -71,7 +71,7 @@ Signed-off-by: Felipe Balbi <felipe.balbi@linux.intel.com>
|
||||||
/* Wait for switch to device mode */
|
/* Wait for switch to device mode */
|
||||||
dev_dbg(hsotg->dev, "connId B\n");
|
dev_dbg(hsotg->dev, "connId B\n");
|
||||||
if (hsotg->bus_suspended) {
|
if (hsotg->bus_suspended) {
|
||||||
@@ -4352,6 +4370,9 @@ static int _dwc2_hcd_start(struct usb_hc
|
@@ -4382,6 +4400,9 @@ static int _dwc2_hcd_start(struct usb_hc
|
||||||
}
|
}
|
||||||
|
|
||||||
spin_unlock_irqrestore(&hsotg->lock, flags);
|
spin_unlock_irqrestore(&hsotg->lock, flags);
|
||||||
|
@ -81,7 +81,7 @@ Signed-off-by: Felipe Balbi <felipe.balbi@linux.intel.com>
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -4379,6 +4400,8 @@ static void _dwc2_hcd_stop(struct usb_hc
|
@@ -4409,6 +4430,8 @@ static void _dwc2_hcd_stop(struct usb_hc
|
||||||
clear_bit(HCD_FLAG_HW_ACCESSIBLE, &hcd->flags);
|
clear_bit(HCD_FLAG_HW_ACCESSIBLE, &hcd->flags);
|
||||||
spin_unlock_irqrestore(&hsotg->lock, flags);
|
spin_unlock_irqrestore(&hsotg->lock, flags);
|
||||||
|
|
||||||
|
@ -90,7 +90,7 @@ Signed-off-by: Felipe Balbi <felipe.balbi@linux.intel.com>
|
||||||
usleep_range(1000, 3000);
|
usleep_range(1000, 3000);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -4415,6 +4438,7 @@ static int _dwc2_hcd_suspend(struct usb_
|
@@ -4445,6 +4468,7 @@ static int _dwc2_hcd_suspend(struct usb_
|
||||||
hprt0 |= HPRT0_SUSP;
|
hprt0 |= HPRT0_SUSP;
|
||||||
hprt0 &= ~HPRT0_PWR;
|
hprt0 &= ~HPRT0_PWR;
|
||||||
dwc2_writel(hprt0, hsotg->regs + HPRT0);
|
dwc2_writel(hprt0, hsotg->regs + HPRT0);
|
||||||
|
@ -98,7 +98,7 @@ Signed-off-by: Felipe Balbi <felipe.balbi@linux.intel.com>
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Enter hibernation */
|
/* Enter hibernation */
|
||||||
@@ -4495,6 +4519,8 @@ static int _dwc2_hcd_resume(struct usb_h
|
@@ -4525,6 +4549,8 @@ static int _dwc2_hcd_resume(struct usb_h
|
||||||
spin_unlock_irqrestore(&hsotg->lock, flags);
|
spin_unlock_irqrestore(&hsotg->lock, flags);
|
||||||
dwc2_port_resume(hsotg);
|
dwc2_port_resume(hsotg);
|
||||||
} else {
|
} else {
|
||||||
|
|
|
@ -42,7 +42,7 @@ Signed-off-by: Felipe Balbi <felipe.balbi@linux.intel.com>
|
||||||
|
|
||||||
return regulator_enable(hsotg->vbus_supply);
|
return regulator_enable(hsotg->vbus_supply);
|
||||||
}
|
}
|
||||||
@@ -4371,9 +4376,7 @@ static int _dwc2_hcd_start(struct usb_hc
|
@@ -4401,9 +4406,7 @@ static int _dwc2_hcd_start(struct usb_hc
|
||||||
|
|
||||||
spin_unlock_irqrestore(&hsotg->lock, flags);
|
spin_unlock_irqrestore(&hsotg->lock, flags);
|
||||||
|
|
||||||
|
|
|
@ -66,7 +66,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||||
static void __sk_free(struct sock *sk)
|
static void __sk_free(struct sock *sk)
|
||||||
{
|
{
|
||||||
+#ifdef CONFIG_SOCK_DIAG
|
+#ifdef CONFIG_SOCK_DIAG
|
||||||
if (unlikely(sock_diag_has_destroy_listeners(sk) && sk->sk_net_refcnt))
|
if (unlikely(sk->sk_net_refcnt && sock_diag_has_destroy_listeners(sk)))
|
||||||
sock_diag_broadcast_destroy(sk);
|
sock_diag_broadcast_destroy(sk);
|
||||||
else
|
else
|
||||||
+#endif
|
+#endif
|
||||||
|
|
|
@ -1,61 +0,0 @@
|
||||||
From d4c4bc11353f3bea6754f7d21e3612c9f32d1d64 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Giuseppe Lippolis <giu.lippolis@gmail.com>
|
|
||||||
Date: Mon, 26 Mar 2018 16:34:39 +0200
|
|
||||||
Subject: [PATCH] net-usb: add qmi_wwan if on lte modem wistron neweb d18q1
|
|
||||||
|
|
||||||
This modem is embedded on dlink dwr-921 router.
|
|
||||||
The oem configuration states:
|
|
||||||
|
|
||||||
T: Bus=02 Lev=01 Prnt=01 Port=00 Cnt=01 Dev#= 2 Spd=480 MxCh= 0
|
|
||||||
D: Ver= 2.00 Cls=00(>ifc ) Sub=00 Prot=00 MxPS=64 #Cfgs= 1
|
|
||||||
P: Vendor=1435 ProdID=0918 Rev= 2.32
|
|
||||||
S: Manufacturer=Android
|
|
||||||
S: Product=Android
|
|
||||||
S: SerialNumber=0123456789ABCDEF
|
|
||||||
C:* #Ifs= 7 Cfg#= 1 Atr=80 MxPwr=500mA
|
|
||||||
I:* If#= 0 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=ff Prot=ff Driver=option
|
|
||||||
E: Ad=81(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
|
|
||||||
E: Ad=01(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms
|
|
||||||
I:* If#= 1 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=42 Prot=01 Driver=(none)
|
|
||||||
E: Ad=82(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
|
|
||||||
E: Ad=02(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms
|
|
||||||
I:* If#= 2 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=00 Prot=00 Driver=option
|
|
||||||
E: Ad=84(I) Atr=03(Int.) MxPS= 64 Ivl=32ms
|
|
||||||
E: Ad=83(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
|
|
||||||
E: Ad=03(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms
|
|
||||||
I:* If#= 3 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=ff Prot=ff Driver=qmi_wwan
|
|
||||||
E: Ad=86(I) Atr=03(Int.) MxPS= 64 Ivl=32ms
|
|
||||||
E: Ad=85(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
|
|
||||||
E: Ad=04(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms
|
|
||||||
I:* If#= 4 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=ff Prot=ff Driver=qmi_wwan
|
|
||||||
E: Ad=88(I) Atr=03(Int.) MxPS= 64 Ivl=32ms
|
|
||||||
E: Ad=87(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
|
|
||||||
E: Ad=05(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms
|
|
||||||
I:* If#= 5 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=ff Prot=ff Driver=qmi_wwan
|
|
||||||
E: Ad=8a(I) Atr=03(Int.) MxPS= 64 Ivl=32ms
|
|
||||||
E: Ad=89(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
|
|
||||||
E: Ad=06(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms
|
|
||||||
I:* If#= 6 Alt= 0 #EPs= 2 Cls=08(stor.) Sub=06 Prot=50 Driver=(none)
|
|
||||||
E: Ad=8b(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
|
|
||||||
E: Ad=07(O) Atr=02(Bulk) MxPS= 512 Ivl=125us
|
|
||||||
|
|
||||||
Tested on openwrt distribution
|
|
||||||
|
|
||||||
Signed-off-by: Giuseppe Lippolis <giu.lippolis@gmail.com>
|
|
||||||
Signed-off-by: David S. Miller <davem@davemloft.net>
|
|
||||||
---
|
|
||||||
drivers/net/usb/qmi_wwan.c | 3 +++
|
|
||||||
1 file changed, 3 insertions(+)
|
|
||||||
|
|
||||||
--- a/drivers/net/usb/qmi_wwan.c
|
|
||||||
+++ b/drivers/net/usb/qmi_wwan.c
|
|
||||||
@@ -1105,6 +1105,9 @@ static const struct usb_device_id produc
|
|
||||||
{QMI_FIXED_INTF(0x0846, 0x68a2, 8)},
|
|
||||||
{QMI_FIXED_INTF(0x12d1, 0x140c, 1)}, /* Huawei E173 */
|
|
||||||
{QMI_FIXED_INTF(0x12d1, 0x14ac, 1)}, /* Huawei E1820 */
|
|
||||||
+ {QMI_FIXED_INTF(0x1435, 0xd181, 3)}, /* Wistron NeWeb D18Q1 */
|
|
||||||
+ {QMI_FIXED_INTF(0x1435, 0xd181, 4)}, /* Wistron NeWeb D18Q1 */
|
|
||||||
+ {QMI_FIXED_INTF(0x1435, 0xd181, 5)}, /* Wistron NeWeb D18Q1 */
|
|
||||||
{QMI_FIXED_INTF(0x16d8, 0x6003, 0)}, /* CMOTech 6003 */
|
|
||||||
{QMI_FIXED_INTF(0x16d8, 0x6007, 0)}, /* CMOTech CHE-628S */
|
|
||||||
{QMI_FIXED_INTF(0x16d8, 0x6008, 0)}, /* CMOTech CMU-301 */
|
|
|
@ -87,7 +87,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||||
if (!net_eq(dev_net(dev), sock_net(sk)))
|
if (!net_eq(dev_net(dev), sock_net(sk)))
|
||||||
goto drop;
|
goto drop;
|
||||||
|
|
||||||
@@ -3260,6 +3262,7 @@ static int packet_create(struct net *net
|
@@ -3262,6 +3264,7 @@ static int packet_create(struct net *net
|
||||||
mutex_init(&po->pg_vec_lock);
|
mutex_init(&po->pg_vec_lock);
|
||||||
po->rollover = NULL;
|
po->rollover = NULL;
|
||||||
po->prot_hook.func = packet_rcv;
|
po->prot_hook.func = packet_rcv;
|
||||||
|
@ -95,7 +95,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||||
|
|
||||||
if (sock->type == SOCK_PACKET)
|
if (sock->type == SOCK_PACKET)
|
||||||
po->prot_hook.func = packet_rcv_spkt;
|
po->prot_hook.func = packet_rcv_spkt;
|
||||||
@@ -3873,6 +3876,16 @@ packet_setsockopt(struct socket *sock, i
|
@@ -3875,6 +3878,16 @@ packet_setsockopt(struct socket *sock, i
|
||||||
po->xmit = val ? packet_direct_xmit : dev_queue_xmit;
|
po->xmit = val ? packet_direct_xmit : dev_queue_xmit;
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
@ -112,7 +112,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||||
default:
|
default:
|
||||||
return -ENOPROTOOPT;
|
return -ENOPROTOOPT;
|
||||||
}
|
}
|
||||||
@@ -3925,6 +3938,13 @@ static int packet_getsockopt(struct sock
|
@@ -3927,6 +3940,13 @@ static int packet_getsockopt(struct sock
|
||||||
case PACKET_VNET_HDR:
|
case PACKET_VNET_HDR:
|
||||||
val = po->has_vnet_hdr;
|
val = po->has_vnet_hdr;
|
||||||
break;
|
break;
|
||||||
|
|
|
@ -15,9 +15,6 @@ Signed-off-by: Philipp Zabel <p.zabel@pengutronix.de>
|
||||||
1 file changed, 94 insertions(+)
|
1 file changed, 94 insertions(+)
|
||||||
create mode 100644 include/dt-bindings/reset/mt7622-reset.h
|
create mode 100644 include/dt-bindings/reset/mt7622-reset.h
|
||||||
|
|
||||||
diff --git a/include/dt-bindings/reset/mt7622-reset.h b/include/dt-bindings/reset/mt7622-reset.h
|
|
||||||
new file mode 100644
|
|
||||||
index 000000000000..234052f80417
|
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ b/include/dt-bindings/reset/mt7622-reset.h
|
+++ b/include/dt-bindings/reset/mt7622-reset.h
|
||||||
@@ -0,0 +1,94 @@
|
@@ -0,0 +1,94 @@
|
||||||
|
@ -115,6 +112,3 @@ index 000000000000..234052f80417
|
||||||
+#define MT7622_ETHSYS_PPE_RST 31
|
+#define MT7622_ETHSYS_PPE_RST 31
|
||||||
+
|
+
|
||||||
+#endif /* _DT_BINDINGS_RESET_CONTROLLER_MT7622 */
|
+#endif /* _DT_BINDINGS_RESET_CONTROLLER_MT7622 */
|
||||||
--
|
|
||||||
2.11.0
|
|
||||||
|
|
||||||
|
|
|
@ -13,11 +13,9 @@ Signed-off-by: Matthias Brugger <matthias.bgg@gmail.com>
|
||||||
drivers/soc/mediatek/mtk-pmic-wrap.c | 20 +++++++++++++-------
|
drivers/soc/mediatek/mtk-pmic-wrap.c | 20 +++++++++++++-------
|
||||||
1 file changed, 13 insertions(+), 7 deletions(-)
|
1 file changed, 13 insertions(+), 7 deletions(-)
|
||||||
|
|
||||||
diff --git a/drivers/soc/mediatek/mtk-pmic-wrap.c b/drivers/soc/mediatek/mtk-pmic-wrap.c
|
|
||||||
index c2048382830f..f095faac1e04 100644
|
|
||||||
--- a/drivers/soc/mediatek/mtk-pmic-wrap.c
|
--- a/drivers/soc/mediatek/mtk-pmic-wrap.c
|
||||||
+++ b/drivers/soc/mediatek/mtk-pmic-wrap.c
|
+++ b/drivers/soc/mediatek/mtk-pmic-wrap.c
|
||||||
@@ -827,7 +827,8 @@ static int pwrap_init_cipher(struct pmic_wrapper *wrp)
|
@@ -827,7 +827,8 @@ static int pwrap_init_cipher(struct pmic
|
||||||
/* wait for cipher data ready@PMIC */
|
/* wait for cipher data ready@PMIC */
|
||||||
ret = pwrap_wait_for_state(wrp, pwrap_is_pmic_cipher_ready);
|
ret = pwrap_wait_for_state(wrp, pwrap_is_pmic_cipher_ready);
|
||||||
if (ret) {
|
if (ret) {
|
||||||
|
@ -27,7 +25,7 @@ index c2048382830f..f095faac1e04 100644
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1159,23 +1160,27 @@ static int pwrap_probe(struct platform_device *pdev)
|
@@ -1159,23 +1160,27 @@ static int pwrap_probe(struct platform_d
|
||||||
if (IS_ERR(wrp->bridge_base))
|
if (IS_ERR(wrp->bridge_base))
|
||||||
return PTR_ERR(wrp->bridge_base);
|
return PTR_ERR(wrp->bridge_base);
|
||||||
|
|
||||||
|
@ -59,7 +57,7 @@ index c2048382830f..f095faac1e04 100644
|
||||||
return PTR_ERR(wrp->clk_wrap);
|
return PTR_ERR(wrp->clk_wrap);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1220,8 +1225,9 @@ static int pwrap_probe(struct platform_device *pdev)
|
@@ -1220,8 +1225,9 @@ static int pwrap_probe(struct platform_d
|
||||||
pwrap_writel(wrp, wrp->master->int_en_all, PWRAP_INT_EN);
|
pwrap_writel(wrp, wrp->master->int_en_all, PWRAP_INT_EN);
|
||||||
|
|
||||||
irq = platform_get_irq(pdev, 0);
|
irq = platform_get_irq(pdev, 0);
|
||||||
|
@ -71,6 +69,3 @@ index c2048382830f..f095faac1e04 100644
|
||||||
if (ret)
|
if (ret)
|
||||||
goto err_out2;
|
goto err_out2;
|
||||||
|
|
||||||
--
|
|
||||||
2.11.0
|
|
||||||
|
|
||||||
|
|
|
@ -15,8 +15,6 @@ Signed-off-by: Felipe Balbi <felipe.balbi@linux.intel.com>
|
||||||
drivers/usb/mtu3/mtu3_plat.c | 8 ++++++--
|
drivers/usb/mtu3/mtu3_plat.c | 8 ++++++--
|
||||||
3 files changed, 22 insertions(+), 5 deletions(-)
|
3 files changed, 22 insertions(+), 5 deletions(-)
|
||||||
|
|
||||||
diff --git a/drivers/usb/mtu3/mtu3.h b/drivers/usb/mtu3/mtu3.h
|
|
||||||
index b26fffc58446..112723d6e7bc 100644
|
|
||||||
--- a/drivers/usb/mtu3/mtu3.h
|
--- a/drivers/usb/mtu3/mtu3.h
|
||||||
+++ b/drivers/usb/mtu3/mtu3.h
|
+++ b/drivers/usb/mtu3/mtu3.h
|
||||||
@@ -210,6 +210,8 @@ struct otg_switch_mtk {
|
@@ -210,6 +210,8 @@ struct otg_switch_mtk {
|
||||||
|
@ -36,11 +34,9 @@ index b26fffc58446..112723d6e7bc 100644
|
||||||
struct dentry *dbgfs_root;
|
struct dentry *dbgfs_root;
|
||||||
/* usb wakeup for host mode */
|
/* usb wakeup for host mode */
|
||||||
bool wakeup_en;
|
bool wakeup_en;
|
||||||
diff --git a/drivers/usb/mtu3/mtu3_host.c b/drivers/usb/mtu3/mtu3_host.c
|
|
||||||
index e42d308b8dc2..4dd9508a60b5 100644
|
|
||||||
--- a/drivers/usb/mtu3/mtu3_host.c
|
--- a/drivers/usb/mtu3/mtu3_host.c
|
||||||
+++ b/drivers/usb/mtu3/mtu3_host.c
|
+++ b/drivers/usb/mtu3/mtu3_host.c
|
||||||
@@ -151,6 +151,7 @@ int ssusb_host_enable(struct ssusb_mtk *ssusb)
|
@@ -151,6 +151,7 @@ int ssusb_host_enable(struct ssusb_mtk *
|
||||||
void __iomem *ibase = ssusb->ippc_base;
|
void __iomem *ibase = ssusb->ippc_base;
|
||||||
int num_u3p = ssusb->u3_ports;
|
int num_u3p = ssusb->u3_ports;
|
||||||
int num_u2p = ssusb->u2_ports;
|
int num_u2p = ssusb->u2_ports;
|
||||||
|
@ -48,7 +44,7 @@ index e42d308b8dc2..4dd9508a60b5 100644
|
||||||
u32 check_clk;
|
u32 check_clk;
|
||||||
u32 value;
|
u32 value;
|
||||||
int i;
|
int i;
|
||||||
@@ -158,8 +159,14 @@ int ssusb_host_enable(struct ssusb_mtk *ssusb)
|
@@ -158,8 +159,14 @@ int ssusb_host_enable(struct ssusb_mtk *
|
||||||
/* power on host ip */
|
/* power on host ip */
|
||||||
mtu3_clrbits(ibase, U3D_SSUSB_IP_PW_CTRL1, SSUSB_IP_HOST_PDN);
|
mtu3_clrbits(ibase, U3D_SSUSB_IP_PW_CTRL1, SSUSB_IP_HOST_PDN);
|
||||||
|
|
||||||
|
@ -64,7 +60,7 @@ index e42d308b8dc2..4dd9508a60b5 100644
|
||||||
value = mtu3_readl(ibase, SSUSB_U3_CTRL(i));
|
value = mtu3_readl(ibase, SSUSB_U3_CTRL(i));
|
||||||
value &= ~(SSUSB_U3_PORT_PDN | SSUSB_U3_PORT_DIS);
|
value &= ~(SSUSB_U3_PORT_PDN | SSUSB_U3_PORT_DIS);
|
||||||
value |= SSUSB_U3_PORT_HOST_SEL;
|
value |= SSUSB_U3_PORT_HOST_SEL;
|
||||||
@@ -175,7 +182,7 @@ int ssusb_host_enable(struct ssusb_mtk *ssusb)
|
@@ -175,7 +182,7 @@ int ssusb_host_enable(struct ssusb_mtk *
|
||||||
}
|
}
|
||||||
|
|
||||||
check_clk = SSUSB_XHCI_RST_B_STS;
|
check_clk = SSUSB_XHCI_RST_B_STS;
|
||||||
|
@ -73,7 +69,7 @@ index e42d308b8dc2..4dd9508a60b5 100644
|
||||||
check_clk = SSUSB_U3_MAC_RST_B_STS;
|
check_clk = SSUSB_U3_MAC_RST_B_STS;
|
||||||
|
|
||||||
return ssusb_check_clocks(ssusb, check_clk);
|
return ssusb_check_clocks(ssusb, check_clk);
|
||||||
@@ -190,8 +197,11 @@ int ssusb_host_disable(struct ssusb_mtk *ssusb, bool suspend)
|
@@ -190,8 +197,11 @@ int ssusb_host_disable(struct ssusb_mtk
|
||||||
int ret;
|
int ret;
|
||||||
int i;
|
int i;
|
||||||
|
|
||||||
|
@ -86,11 +82,9 @@ index e42d308b8dc2..4dd9508a60b5 100644
|
||||||
value = mtu3_readl(ibase, SSUSB_U3_CTRL(i));
|
value = mtu3_readl(ibase, SSUSB_U3_CTRL(i));
|
||||||
value |= SSUSB_U3_PORT_PDN;
|
value |= SSUSB_U3_PORT_PDN;
|
||||||
value |= suspend ? 0 : SSUSB_U3_PORT_DIS;
|
value |= suspend ? 0 : SSUSB_U3_PORT_DIS;
|
||||||
diff --git a/drivers/usb/mtu3/mtu3_plat.c b/drivers/usb/mtu3/mtu3_plat.c
|
|
||||||
index 088e3e685c4f..9edad30c8ae5 100644
|
|
||||||
--- a/drivers/usb/mtu3/mtu3_plat.c
|
--- a/drivers/usb/mtu3/mtu3_plat.c
|
||||||
+++ b/drivers/usb/mtu3/mtu3_plat.c
|
+++ b/drivers/usb/mtu3/mtu3_plat.c
|
||||||
@@ -276,6 +276,10 @@ static int get_ssusb_rscs(struct platform_device *pdev, struct ssusb_mtk *ssusb)
|
@@ -276,6 +276,10 @@ static int get_ssusb_rscs(struct platfor
|
||||||
if (ret)
|
if (ret)
|
||||||
return ret;
|
return ret;
|
||||||
|
|
||||||
|
@ -101,7 +95,7 @@ index 088e3e685c4f..9edad30c8ae5 100644
|
||||||
if (ssusb->dr_mode != USB_DR_MODE_OTG)
|
if (ssusb->dr_mode != USB_DR_MODE_OTG)
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
@@ -304,8 +308,8 @@ static int get_ssusb_rscs(struct platform_device *pdev, struct ssusb_mtk *ssusb)
|
@@ -304,8 +308,8 @@ static int get_ssusb_rscs(struct platfor
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -112,6 +106,3 @@ index 088e3e685c4f..9edad30c8ae5 100644
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
--
|
|
||||||
2.11.0
|
|
||||||
|
|
||||||
|
|
|
@ -13,8 +13,6 @@ Signed-off-by: Felipe Balbi <felipe.balbi@linux.intel.com>
|
||||||
drivers/usb/mtu3/mtu3_host.c | 57 ++++----------------------------------------
|
drivers/usb/mtu3/mtu3_host.c | 57 ++++----------------------------------------
|
||||||
2 files changed, 4 insertions(+), 57 deletions(-)
|
2 files changed, 4 insertions(+), 57 deletions(-)
|
||||||
|
|
||||||
diff --git a/drivers/usb/mtu3/mtu3.h b/drivers/usb/mtu3/mtu3.h
|
|
||||||
index 112723d6e7bc..6d3278e46431 100644
|
|
||||||
--- a/drivers/usb/mtu3/mtu3.h
|
--- a/drivers/usb/mtu3/mtu3.h
|
||||||
+++ b/drivers/usb/mtu3/mtu3.h
|
+++ b/drivers/usb/mtu3/mtu3.h
|
||||||
@@ -214,8 +214,6 @@ struct otg_switch_mtk {
|
@@ -214,8 +214,6 @@ struct otg_switch_mtk {
|
||||||
|
@ -35,11 +33,9 @@ index 112723d6e7bc..6d3278e46431 100644
|
||||||
struct regmap *pericfg;
|
struct regmap *pericfg;
|
||||||
};
|
};
|
||||||
|
|
||||||
diff --git a/drivers/usb/mtu3/mtu3_host.c b/drivers/usb/mtu3/mtu3_host.c
|
|
||||||
index 4dd9508a60b5..edcc59148171 100644
|
|
||||||
--- a/drivers/usb/mtu3/mtu3_host.c
|
--- a/drivers/usb/mtu3/mtu3_host.c
|
||||||
+++ b/drivers/usb/mtu3/mtu3_host.c
|
+++ b/drivers/usb/mtu3/mtu3_host.c
|
||||||
@@ -79,20 +79,6 @@ int ssusb_wakeup_of_property_parse(struct ssusb_mtk *ssusb,
|
@@ -79,20 +79,6 @@ int ssusb_wakeup_of_property_parse(struc
|
||||||
if (!ssusb->wakeup_en)
|
if (!ssusb->wakeup_en)
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
|
@ -60,7 +56,7 @@ index 4dd9508a60b5..edcc59148171 100644
|
||||||
ssusb->pericfg = syscon_regmap_lookup_by_phandle(dn,
|
ssusb->pericfg = syscon_regmap_lookup_by_phandle(dn,
|
||||||
"mediatek,syscon-wakeup");
|
"mediatek,syscon-wakeup");
|
||||||
if (IS_ERR(ssusb->pericfg)) {
|
if (IS_ERR(ssusb->pericfg)) {
|
||||||
@@ -103,36 +89,6 @@ int ssusb_wakeup_of_property_parse(struct ssusb_mtk *ssusb,
|
@@ -103,36 +89,6 @@ int ssusb_wakeup_of_property_parse(struc
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -97,7 +93,7 @@ index 4dd9508a60b5..edcc59148171 100644
|
||||||
static void host_ports_num_get(struct ssusb_mtk *ssusb)
|
static void host_ports_num_get(struct ssusb_mtk *ssusb)
|
||||||
{
|
{
|
||||||
u32 xhci_cap;
|
u32 xhci_cap;
|
||||||
@@ -286,19 +242,14 @@ void ssusb_host_exit(struct ssusb_mtk *ssusb)
|
@@ -286,19 +242,14 @@ void ssusb_host_exit(struct ssusb_mtk *s
|
||||||
|
|
||||||
int ssusb_wakeup_enable(struct ssusb_mtk *ssusb)
|
int ssusb_wakeup_enable(struct ssusb_mtk *ssusb)
|
||||||
{
|
{
|
||||||
|
@ -121,6 +117,3 @@ index 4dd9508a60b5..edcc59148171 100644
|
||||||
- ssusb_wakeup_clks_disable(ssusb);
|
- ssusb_wakeup_clks_disable(ssusb);
|
||||||
- }
|
- }
|
||||||
}
|
}
|
||||||
--
|
|
||||||
2.11.0
|
|
||||||
|
|
||||||
|
|
|
@ -13,8 +13,6 @@ Signed-off-by: Felipe Balbi <felipe.balbi@linux.intel.com>
|
||||||
drivers/usb/mtu3/mtu3_plat.c | 121 +++++++++++++++++++++++++++++--------------
|
drivers/usb/mtu3/mtu3_plat.c | 121 +++++++++++++++++++++++++++++--------------
|
||||||
2 files changed, 86 insertions(+), 40 deletions(-)
|
2 files changed, 86 insertions(+), 40 deletions(-)
|
||||||
|
|
||||||
diff --git a/drivers/usb/mtu3/mtu3.h b/drivers/usb/mtu3/mtu3.h
|
|
||||||
index 6d3278e46431..2795294ec92a 100644
|
|
||||||
--- a/drivers/usb/mtu3/mtu3.h
|
--- a/drivers/usb/mtu3/mtu3.h
|
||||||
+++ b/drivers/usb/mtu3/mtu3.h
|
+++ b/drivers/usb/mtu3/mtu3.h
|
||||||
@@ -206,6 +206,9 @@ struct otg_switch_mtk {
|
@@ -206,6 +206,9 @@ struct otg_switch_mtk {
|
||||||
|
@ -36,11 +34,9 @@ index 6d3278e46431..2795294ec92a 100644
|
||||||
/* otg */
|
/* otg */
|
||||||
struct otg_switch_mtk otg_switch;
|
struct otg_switch_mtk otg_switch;
|
||||||
enum usb_dr_mode dr_mode;
|
enum usb_dr_mode dr_mode;
|
||||||
diff --git a/drivers/usb/mtu3/mtu3_plat.c b/drivers/usb/mtu3/mtu3_plat.c
|
|
||||||
index 9edad30c8ae5..fb8992011bde 100644
|
|
||||||
--- a/drivers/usb/mtu3/mtu3_plat.c
|
--- a/drivers/usb/mtu3/mtu3_plat.c
|
||||||
+++ b/drivers/usb/mtu3/mtu3_plat.c
|
+++ b/drivers/usb/mtu3/mtu3_plat.c
|
||||||
@@ -110,15 +110,9 @@ static void ssusb_phy_power_off(struct ssusb_mtk *ssusb)
|
@@ -110,15 +110,9 @@ static void ssusb_phy_power_off(struct s
|
||||||
phy_power_off(ssusb->phys[i]);
|
phy_power_off(ssusb->phys[i]);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -58,7 +54,7 @@ index 9edad30c8ae5..fb8992011bde 100644
|
||||||
|
|
||||||
ret = clk_prepare_enable(ssusb->sys_clk);
|
ret = clk_prepare_enable(ssusb->sys_clk);
|
||||||
if (ret) {
|
if (ret) {
|
||||||
@@ -132,6 +126,52 @@ static int ssusb_rscs_init(struct ssusb_mtk *ssusb)
|
@@ -132,6 +126,52 @@ static int ssusb_rscs_init(struct ssusb_
|
||||||
goto ref_clk_err;
|
goto ref_clk_err;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -111,7 +107,7 @@ index 9edad30c8ae5..fb8992011bde 100644
|
||||||
ret = ssusb_phy_init(ssusb);
|
ret = ssusb_phy_init(ssusb);
|
||||||
if (ret) {
|
if (ret) {
|
||||||
dev_err(ssusb->dev, "failed to init phy\n");
|
dev_err(ssusb->dev, "failed to init phy\n");
|
||||||
@@ -149,20 +189,16 @@ static int ssusb_rscs_init(struct ssusb_mtk *ssusb)
|
@@ -149,20 +189,16 @@ static int ssusb_rscs_init(struct ssusb_
|
||||||
phy_err:
|
phy_err:
|
||||||
ssusb_phy_exit(ssusb);
|
ssusb_phy_exit(ssusb);
|
||||||
phy_init_err:
|
phy_init_err:
|
||||||
|
@ -135,7 +131,7 @@ index 9edad30c8ae5..fb8992011bde 100644
|
||||||
regulator_disable(ssusb->vusb33);
|
regulator_disable(ssusb->vusb33);
|
||||||
ssusb_phy_power_off(ssusb);
|
ssusb_phy_power_off(ssusb);
|
||||||
ssusb_phy_exit(ssusb);
|
ssusb_phy_exit(ssusb);
|
||||||
@@ -203,6 +239,19 @@ static int get_iddig_pinctrl(struct ssusb_mtk *ssusb)
|
@@ -203,6 +239,19 @@ static int get_iddig_pinctrl(struct ssus
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -155,7 +151,7 @@ index 9edad30c8ae5..fb8992011bde 100644
|
||||||
static int get_ssusb_rscs(struct platform_device *pdev, struct ssusb_mtk *ssusb)
|
static int get_ssusb_rscs(struct platform_device *pdev, struct ssusb_mtk *ssusb)
|
||||||
{
|
{
|
||||||
struct device_node *node = pdev->dev.of_node;
|
struct device_node *node = pdev->dev.of_node;
|
||||||
@@ -225,18 +274,17 @@ static int get_ssusb_rscs(struct platform_device *pdev, struct ssusb_mtk *ssusb)
|
@@ -225,18 +274,17 @@ static int get_ssusb_rscs(struct platfor
|
||||||
return PTR_ERR(ssusb->sys_clk);
|
return PTR_ERR(ssusb->sys_clk);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -168,12 +164,13 @@ index 9edad30c8ae5..fb8992011bde 100644
|
||||||
- if (IS_ERR(ssusb->ref_clk)) {
|
- if (IS_ERR(ssusb->ref_clk)) {
|
||||||
- if (PTR_ERR(ssusb->ref_clk) == -EPROBE_DEFER)
|
- if (PTR_ERR(ssusb->ref_clk) == -EPROBE_DEFER)
|
||||||
- return -EPROBE_DEFER;
|
- return -EPROBE_DEFER;
|
||||||
|
-
|
||||||
|
- ssusb->ref_clk = NULL;
|
||||||
|
- }
|
||||||
+ ssusb->ref_clk = get_optional_clk(dev, "ref_ck");
|
+ ssusb->ref_clk = get_optional_clk(dev, "ref_ck");
|
||||||
+ if (IS_ERR(ssusb->ref_clk))
|
+ if (IS_ERR(ssusb->ref_clk))
|
||||||
+ return PTR_ERR(ssusb->ref_clk);
|
+ return PTR_ERR(ssusb->ref_clk);
|
||||||
|
+
|
||||||
- ssusb->ref_clk = NULL;
|
|
||||||
- }
|
|
||||||
+ ssusb->mcu_clk = get_optional_clk(dev, "mcu_ck");
|
+ ssusb->mcu_clk = get_optional_clk(dev, "mcu_ck");
|
||||||
+ if (IS_ERR(ssusb->mcu_clk))
|
+ if (IS_ERR(ssusb->mcu_clk))
|
||||||
+ return PTR_ERR(ssusb->mcu_clk);
|
+ return PTR_ERR(ssusb->mcu_clk);
|
||||||
|
@ -184,7 +181,7 @@ index 9edad30c8ae5..fb8992011bde 100644
|
||||||
|
|
||||||
ssusb->num_phys = of_count_phandle_with_args(node,
|
ssusb->num_phys = of_count_phandle_with_args(node,
|
||||||
"phys", "#phy-cells");
|
"phys", "#phy-cells");
|
||||||
@@ -451,8 +499,7 @@ static int __maybe_unused mtu3_suspend(struct device *dev)
|
@@ -451,8 +499,7 @@ static int __maybe_unused mtu3_suspend(s
|
||||||
|
|
||||||
ssusb_host_disable(ssusb, true);
|
ssusb_host_disable(ssusb, true);
|
||||||
ssusb_phy_power_off(ssusb);
|
ssusb_phy_power_off(ssusb);
|
||||||
|
@ -194,7 +191,7 @@ index 9edad30c8ae5..fb8992011bde 100644
|
||||||
ssusb_wakeup_enable(ssusb);
|
ssusb_wakeup_enable(ssusb);
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
@@ -470,27 +517,21 @@ static int __maybe_unused mtu3_resume(struct device *dev)
|
@@ -470,27 +517,21 @@ static int __maybe_unused mtu3_resume(st
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
ssusb_wakeup_disable(ssusb);
|
ssusb_wakeup_disable(ssusb);
|
||||||
|
@ -228,6 +225,3 @@ index 9edad30c8ae5..fb8992011bde 100644
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
--
|
|
||||||
2.11.0
|
|
||||||
|
|
||||||
|
|
|
@ -16,8 +16,6 @@ Signed-off-by: Felipe Balbi <felipe.balbi@linux.intel.com>
|
||||||
drivers/usb/mtu3/mtu3_qmu.c | 102 +++++++++++++++++++++++++++++++++-------
|
drivers/usb/mtu3/mtu3_qmu.c | 102 +++++++++++++++++++++++++++++++++-------
|
||||||
4 files changed, 142 insertions(+), 21 deletions(-)
|
4 files changed, 142 insertions(+), 21 deletions(-)
|
||||||
|
|
||||||
diff --git a/drivers/usb/mtu3/mtu3.h b/drivers/usb/mtu3/mtu3.h
|
|
||||||
index 2795294ec92a..ef2dc92a2109 100644
|
|
||||||
--- a/drivers/usb/mtu3/mtu3.h
|
--- a/drivers/usb/mtu3/mtu3.h
|
||||||
+++ b/drivers/usb/mtu3/mtu3.h
|
+++ b/drivers/usb/mtu3/mtu3.h
|
||||||
@@ -46,6 +46,9 @@ struct mtu3_request;
|
@@ -46,6 +46,9 @@ struct mtu3_request;
|
||||||
|
@ -66,8 +64,6 @@ index 2795294ec92a..ef2dc92a2109 100644
|
||||||
__u8 ext_flag;
|
__u8 ext_flag;
|
||||||
} __packed;
|
} __packed;
|
||||||
|
|
||||||
diff --git a/drivers/usb/mtu3/mtu3_core.c b/drivers/usb/mtu3/mtu3_core.c
|
|
||||||
index 947579842ad7..cd4528f5f337 100644
|
|
||||||
--- a/drivers/usb/mtu3/mtu3_core.c
|
--- a/drivers/usb/mtu3/mtu3_core.c
|
||||||
+++ b/drivers/usb/mtu3/mtu3_core.c
|
+++ b/drivers/usb/mtu3/mtu3_core.c
|
||||||
@@ -17,6 +17,7 @@
|
@@ -17,6 +17,7 @@
|
||||||
|
@ -78,7 +74,7 @@ index 947579842ad7..cd4528f5f337 100644
|
||||||
#include <linux/kernel.h>
|
#include <linux/kernel.h>
|
||||||
#include <linux/module.h>
|
#include <linux/module.h>
|
||||||
#include <linux/of_address.h>
|
#include <linux/of_address.h>
|
||||||
@@ -759,7 +760,31 @@ static void mtu3_hw_exit(struct mtu3 *mtu)
|
@@ -759,7 +760,31 @@ static void mtu3_hw_exit(struct mtu3 *mt
|
||||||
mtu3_mem_free(mtu);
|
mtu3_mem_free(mtu);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -111,7 +107,7 @@ index 947579842ad7..cd4528f5f337 100644
|
||||||
|
|
||||||
int ssusb_gadget_init(struct ssusb_mtk *ssusb)
|
int ssusb_gadget_init(struct ssusb_mtk *ssusb)
|
||||||
{
|
{
|
||||||
@@ -820,6 +845,12 @@ int ssusb_gadget_init(struct ssusb_mtk *ssusb)
|
@@ -820,6 +845,12 @@ int ssusb_gadget_init(struct ssusb_mtk *
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -124,7 +120,7 @@ index 947579842ad7..cd4528f5f337 100644
|
||||||
ret = devm_request_irq(dev, mtu->irq, mtu3_irq, 0, dev_name(dev), mtu);
|
ret = devm_request_irq(dev, mtu->irq, mtu3_irq, 0, dev_name(dev), mtu);
|
||||||
if (ret) {
|
if (ret) {
|
||||||
dev_err(dev, "request irq %d failed!\n", mtu->irq);
|
dev_err(dev, "request irq %d failed!\n", mtu->irq);
|
||||||
@@ -845,6 +876,7 @@ int ssusb_gadget_init(struct ssusb_mtk *ssusb)
|
@@ -845,6 +876,7 @@ int ssusb_gadget_init(struct ssusb_mtk *
|
||||||
gadget_err:
|
gadget_err:
|
||||||
device_init_wakeup(dev, false);
|
device_init_wakeup(dev, false);
|
||||||
|
|
||||||
|
@ -132,8 +128,6 @@ index 947579842ad7..cd4528f5f337 100644
|
||||||
irq_err:
|
irq_err:
|
||||||
mtu3_hw_exit(mtu);
|
mtu3_hw_exit(mtu);
|
||||||
ssusb->u3d = NULL;
|
ssusb->u3d = NULL;
|
||||||
diff --git a/drivers/usb/mtu3/mtu3_hw_regs.h b/drivers/usb/mtu3/mtu3_hw_regs.h
|
|
||||||
index 06b29664470f..b6059752dc12 100644
|
|
||||||
--- a/drivers/usb/mtu3/mtu3_hw_regs.h
|
--- a/drivers/usb/mtu3/mtu3_hw_regs.h
|
||||||
+++ b/drivers/usb/mtu3/mtu3_hw_regs.h
|
+++ b/drivers/usb/mtu3/mtu3_hw_regs.h
|
||||||
@@ -58,6 +58,8 @@
|
@@ -58,6 +58,8 @@
|
||||||
|
@ -167,8 +161,6 @@ index 06b29664470f..b6059752dc12 100644
|
||||||
#define VBUS_ON BIT(1)
|
#define VBUS_ON BIT(1)
|
||||||
#define VBUS_FRC_EN BIT(0)
|
#define VBUS_FRC_EN BIT(0)
|
||||||
|
|
||||||
diff --git a/drivers/usb/mtu3/mtu3_qmu.c b/drivers/usb/mtu3/mtu3_qmu.c
|
|
||||||
index 7d9ba8a52368..42145a3f1422 100644
|
|
||||||
--- a/drivers/usb/mtu3/mtu3_qmu.c
|
--- a/drivers/usb/mtu3/mtu3_qmu.c
|
||||||
+++ b/drivers/usb/mtu3/mtu3_qmu.c
|
+++ b/drivers/usb/mtu3/mtu3_qmu.c
|
||||||
@@ -40,7 +40,58 @@
|
@@ -40,7 +40,58 @@
|
||||||
|
@ -230,7 +222,7 @@ index 7d9ba8a52368..42145a3f1422 100644
|
||||||
|
|
||||||
static struct qmu_gpd *gpd_dma_to_virt(struct mtu3_gpd_ring *ring,
|
static struct qmu_gpd *gpd_dma_to_virt(struct mtu3_gpd_ring *ring,
|
||||||
dma_addr_t dma_addr)
|
dma_addr_t dma_addr)
|
||||||
@@ -193,21 +244,27 @@ static int mtu3_prepare_tx_gpd(struct mtu3_ep *mep, struct mtu3_request *mreq)
|
@@ -193,21 +244,27 @@ static int mtu3_prepare_tx_gpd(struct mt
|
||||||
struct mtu3_gpd_ring *ring = &mep->gpd_ring;
|
struct mtu3_gpd_ring *ring = &mep->gpd_ring;
|
||||||
struct qmu_gpd *gpd = ring->enqueue;
|
struct qmu_gpd *gpd = ring->enqueue;
|
||||||
struct usb_request *req = &mreq->request;
|
struct usb_request *req = &mreq->request;
|
||||||
|
@ -262,7 +254,7 @@ index 7d9ba8a52368..42145a3f1422 100644
|
||||||
|
|
||||||
if (req->zero)
|
if (req->zero)
|
||||||
gpd->ext_flag |= GPD_EXT_FLAG_ZLP;
|
gpd->ext_flag |= GPD_EXT_FLAG_ZLP;
|
||||||
@@ -226,21 +283,27 @@ static int mtu3_prepare_rx_gpd(struct mtu3_ep *mep, struct mtu3_request *mreq)
|
@@ -226,21 +283,27 @@ static int mtu3_prepare_rx_gpd(struct mt
|
||||||
struct mtu3_gpd_ring *ring = &mep->gpd_ring;
|
struct mtu3_gpd_ring *ring = &mep->gpd_ring;
|
||||||
struct qmu_gpd *gpd = ring->enqueue;
|
struct qmu_gpd *gpd = ring->enqueue;
|
||||||
struct usb_request *req = &mreq->request;
|
struct usb_request *req = &mreq->request;
|
||||||
|
@ -316,7 +308,7 @@ index 7d9ba8a52368..42145a3f1422 100644
|
||||||
mtu3_setbits(mbase, U3D_QCR0, QMU_RX_CS_EN(epnum));
|
mtu3_setbits(mbase, U3D_QCR0, QMU_RX_CS_EN(epnum));
|
||||||
/* don't expect ZLP */
|
/* don't expect ZLP */
|
||||||
mtu3_clrbits(mbase, U3D_QCR3, QMU_RX_ZLP(epnum));
|
mtu3_clrbits(mbase, U3D_QCR3, QMU_RX_ZLP(epnum));
|
||||||
@@ -353,9 +416,9 @@ static void qmu_tx_zlp_error_handler(struct mtu3 *mtu, u8 epnum)
|
@@ -353,9 +416,9 @@ static void qmu_tx_zlp_error_handler(str
|
||||||
struct mtu3_gpd_ring *ring = &mep->gpd_ring;
|
struct mtu3_gpd_ring *ring = &mep->gpd_ring;
|
||||||
void __iomem *mbase = mtu->mac_base;
|
void __iomem *mbase = mtu->mac_base;
|
||||||
struct qmu_gpd *gpd_current = NULL;
|
struct qmu_gpd *gpd_current = NULL;
|
||||||
|
@ -327,7 +319,7 @@ index 7d9ba8a52368..42145a3f1422 100644
|
||||||
u32 txcsr = 0;
|
u32 txcsr = 0;
|
||||||
int ret;
|
int ret;
|
||||||
|
|
||||||
@@ -365,7 +428,8 @@ static void qmu_tx_zlp_error_handler(struct mtu3 *mtu, u8 epnum)
|
@@ -365,7 +428,8 @@ static void qmu_tx_zlp_error_handler(str
|
||||||
else
|
else
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
@ -337,7 +329,7 @@ index 7d9ba8a52368..42145a3f1422 100644
|
||||||
|
|
||||||
if (le16_to_cpu(gpd_current->buf_len) != 0) {
|
if (le16_to_cpu(gpd_current->buf_len) != 0) {
|
||||||
dev_err(mtu->dev, "TX EP%d buffer length error(!=0)\n", epnum);
|
dev_err(mtu->dev, "TX EP%d buffer length error(!=0)\n", epnum);
|
||||||
@@ -408,12 +472,13 @@ static void qmu_done_tx(struct mtu3 *mtu, u8 epnum)
|
@@ -408,12 +472,13 @@ static void qmu_done_tx(struct mtu3 *mtu
|
||||||
void __iomem *mbase = mtu->mac_base;
|
void __iomem *mbase = mtu->mac_base;
|
||||||
struct qmu_gpd *gpd = ring->dequeue;
|
struct qmu_gpd *gpd = ring->dequeue;
|
||||||
struct qmu_gpd *gpd_current = NULL;
|
struct qmu_gpd *gpd_current = NULL;
|
||||||
|
@ -353,7 +345,7 @@ index 7d9ba8a52368..42145a3f1422 100644
|
||||||
|
|
||||||
dev_dbg(mtu->dev, "%s EP%d, last=%p, current=%p, enq=%p\n",
|
dev_dbg(mtu->dev, "%s EP%d, last=%p, current=%p, enq=%p\n",
|
||||||
__func__, epnum, gpd, gpd_current, ring->enqueue);
|
__func__, epnum, gpd, gpd_current, ring->enqueue);
|
||||||
@@ -446,11 +511,12 @@ static void qmu_done_rx(struct mtu3 *mtu, u8 epnum)
|
@@ -446,11 +511,12 @@ static void qmu_done_rx(struct mtu3 *mtu
|
||||||
void __iomem *mbase = mtu->mac_base;
|
void __iomem *mbase = mtu->mac_base;
|
||||||
struct qmu_gpd *gpd = ring->dequeue;
|
struct qmu_gpd *gpd = ring->dequeue;
|
||||||
struct qmu_gpd *gpd_current = NULL;
|
struct qmu_gpd *gpd_current = NULL;
|
||||||
|
@ -368,6 +360,3 @@ index 7d9ba8a52368..42145a3f1422 100644
|
||||||
|
|
||||||
dev_dbg(mtu->dev, "%s EP%d, last=%p, current=%p, enq=%p\n",
|
dev_dbg(mtu->dev, "%s EP%d, last=%p, current=%p, enq=%p\n",
|
||||||
__func__, epnum, gpd, gpd_current, ring->enqueue);
|
__func__, epnum, gpd, gpd_current, ring->enqueue);
|
||||||
--
|
|
||||||
2.11.0
|
|
||||||
|
|
||||||
|
|
|
@ -19,8 +19,6 @@ Signed-off-by: Felipe Balbi <felipe.balbi@linux.intel.com>
|
||||||
drivers/usb/mtu3/mtu3_plat.c | 38 ++-----------------------
|
drivers/usb/mtu3/mtu3_plat.c | 38 ++-----------------------
|
||||||
6 files changed, 74 insertions(+), 56 deletions(-)
|
6 files changed, 74 insertions(+), 56 deletions(-)
|
||||||
|
|
||||||
diff --git a/drivers/usb/mtu3/mtu3.h b/drivers/usb/mtu3/mtu3.h
|
|
||||||
index ef2dc92a2109..b0c2b5dca045 100644
|
|
||||||
--- a/drivers/usb/mtu3/mtu3.h
|
--- a/drivers/usb/mtu3/mtu3.h
|
||||||
+++ b/drivers/usb/mtu3/mtu3.h
|
+++ b/drivers/usb/mtu3/mtu3.h
|
||||||
@@ -115,6 +115,19 @@ enum mtu3_g_ep0_state {
|
@@ -115,6 +115,19 @@ enum mtu3_g_ep0_state {
|
||||||
|
@ -62,11 +60,9 @@ index ef2dc92a2109..b0c2b5dca045 100644
|
||||||
bool manual_drd_enabled;
|
bool manual_drd_enabled;
|
||||||
};
|
};
|
||||||
|
|
||||||
diff --git a/drivers/usb/mtu3/mtu3_dr.c b/drivers/usb/mtu3/mtu3_dr.c
|
|
||||||
index 560256115b23..ec442cd5a1ad 100644
|
|
||||||
--- a/drivers/usb/mtu3/mtu3_dr.c
|
--- a/drivers/usb/mtu3/mtu3_dr.c
|
||||||
+++ b/drivers/usb/mtu3/mtu3_dr.c
|
+++ b/drivers/usb/mtu3/mtu3_dr.c
|
||||||
@@ -261,21 +261,22 @@ static void extcon_register_dwork(struct work_struct *work)
|
@@ -261,21 +261,22 @@ static void extcon_register_dwork(struct
|
||||||
* depending on user input.
|
* depending on user input.
|
||||||
* This is useful in special cases, such as uses TYPE-A receptacle but also
|
* This is useful in special cases, such as uses TYPE-A receptacle but also
|
||||||
* wants to support dual-role mode.
|
* wants to support dual-role mode.
|
||||||
|
@ -97,7 +93,7 @@ index 560256115b23..ec442cd5a1ad 100644
|
||||||
static int ssusb_mode_show(struct seq_file *sf, void *unused)
|
static int ssusb_mode_show(struct seq_file *sf, void *unused)
|
||||||
{
|
{
|
||||||
struct ssusb_mtk *ssusb = sf->private;
|
struct ssusb_mtk *ssusb = sf->private;
|
||||||
@@ -388,17 +389,45 @@ static void ssusb_debugfs_exit(struct ssusb_mtk *ssusb)
|
@@ -388,17 +389,45 @@ static void ssusb_debugfs_exit(struct ss
|
||||||
debugfs_remove_recursive(ssusb->dbgfs_root);
|
debugfs_remove_recursive(ssusb->dbgfs_root);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -133,13 +129,12 @@ index 560256115b23..ec442cd5a1ad 100644
|
||||||
- if (otg_sx->manual_drd_enabled)
|
- if (otg_sx->manual_drd_enabled)
|
||||||
+ if (otg_sx->manual_drd_enabled) {
|
+ if (otg_sx->manual_drd_enabled) {
|
||||||
ssusb_debugfs_init(ssusb);
|
ssusb_debugfs_init(ssusb);
|
||||||
-
|
|
||||||
- /* It is enough to delay 1s for waiting for host initialization */
|
|
||||||
- schedule_delayed_work(&otg_sx->extcon_reg_dwork, HZ);
|
|
||||||
+ } else {
|
+ } else {
|
||||||
+ INIT_DELAYED_WORK(&otg_sx->extcon_reg_dwork,
|
+ INIT_DELAYED_WORK(&otg_sx->extcon_reg_dwork,
|
||||||
+ extcon_register_dwork);
|
+ extcon_register_dwork);
|
||||||
+
|
|
||||||
|
- /* It is enough to delay 1s for waiting for host initialization */
|
||||||
|
- schedule_delayed_work(&otg_sx->extcon_reg_dwork, HZ);
|
||||||
+ /*
|
+ /*
|
||||||
+ * It is enough to delay 1s for waiting for
|
+ * It is enough to delay 1s for waiting for
|
||||||
+ * host initialization
|
+ * host initialization
|
||||||
|
@ -149,7 +144,7 @@ index 560256115b23..ec442cd5a1ad 100644
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
@@ -407,8 +436,8 @@ void ssusb_otg_switch_exit(struct ssusb_mtk *ssusb)
|
@@ -407,8 +436,8 @@ void ssusb_otg_switch_exit(struct ssusb_
|
||||||
{
|
{
|
||||||
struct otg_switch_mtk *otg_sx = &ssusb->otg_switch;
|
struct otg_switch_mtk *otg_sx = &ssusb->otg_switch;
|
||||||
|
|
||||||
|
@ -160,11 +155,9 @@ index 560256115b23..ec442cd5a1ad 100644
|
||||||
+ else
|
+ else
|
||||||
+ cancel_delayed_work(&otg_sx->extcon_reg_dwork);
|
+ cancel_delayed_work(&otg_sx->extcon_reg_dwork);
|
||||||
}
|
}
|
||||||
diff --git a/drivers/usb/mtu3/mtu3_dr.h b/drivers/usb/mtu3/mtu3_dr.h
|
|
||||||
index 9b228b5811b0..0f0cbac00192 100644
|
|
||||||
--- a/drivers/usb/mtu3/mtu3_dr.h
|
--- a/drivers/usb/mtu3/mtu3_dr.h
|
||||||
+++ b/drivers/usb/mtu3/mtu3_dr.h
|
+++ b/drivers/usb/mtu3/mtu3_dr.h
|
||||||
@@ -87,6 +87,8 @@ static inline void ssusb_gadget_exit(struct ssusb_mtk *ssusb)
|
@@ -87,6 +87,8 @@ static inline void ssusb_gadget_exit(str
|
||||||
int ssusb_otg_switch_init(struct ssusb_mtk *ssusb);
|
int ssusb_otg_switch_init(struct ssusb_mtk *ssusb);
|
||||||
void ssusb_otg_switch_exit(struct ssusb_mtk *ssusb);
|
void ssusb_otg_switch_exit(struct ssusb_mtk *ssusb);
|
||||||
int ssusb_set_vbus(struct otg_switch_mtk *otg_sx, int is_on);
|
int ssusb_set_vbus(struct otg_switch_mtk *otg_sx, int is_on);
|
||||||
|
@ -173,7 +166,7 @@ index 9b228b5811b0..0f0cbac00192 100644
|
||||||
|
|
||||||
#else
|
#else
|
||||||
|
|
||||||
@@ -103,6 +105,10 @@ static inline int ssusb_set_vbus(struct otg_switch_mtk *otg_sx, int is_on)
|
@@ -103,6 +105,10 @@ static inline int ssusb_set_vbus(struct
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -184,11 +177,9 @@ index 9b228b5811b0..0f0cbac00192 100644
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#endif /* _MTU3_DR_H_ */
|
#endif /* _MTU3_DR_H_ */
|
||||||
diff --git a/drivers/usb/mtu3/mtu3_host.c b/drivers/usb/mtu3/mtu3_host.c
|
|
||||||
index edcc59148171..ec76b86dd887 100644
|
|
||||||
--- a/drivers/usb/mtu3/mtu3_host.c
|
--- a/drivers/usb/mtu3/mtu3_host.c
|
||||||
+++ b/drivers/usb/mtu3/mtu3_host.c
|
+++ b/drivers/usb/mtu3/mtu3_host.c
|
||||||
@@ -189,6 +189,8 @@ int ssusb_host_disable(struct ssusb_mtk *ssusb, bool suspend)
|
@@ -189,6 +189,8 @@ int ssusb_host_disable(struct ssusb_mtk
|
||||||
|
|
||||||
static void ssusb_host_setup(struct ssusb_mtk *ssusb)
|
static void ssusb_host_setup(struct ssusb_mtk *ssusb)
|
||||||
{
|
{
|
||||||
|
@ -197,7 +188,7 @@ index edcc59148171..ec76b86dd887 100644
|
||||||
host_ports_num_get(ssusb);
|
host_ports_num_get(ssusb);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@@ -197,6 +199,9 @@ static void ssusb_host_setup(struct ssusb_mtk *ssusb)
|
@@ -197,6 +199,9 @@ static void ssusb_host_setup(struct ssus
|
||||||
*/
|
*/
|
||||||
ssusb_host_enable(ssusb);
|
ssusb_host_enable(ssusb);
|
||||||
|
|
||||||
|
@ -207,8 +198,6 @@ index edcc59148171..ec76b86dd887 100644
|
||||||
/* if port0 supports dual-role, works as host mode by default */
|
/* if port0 supports dual-role, works as host mode by default */
|
||||||
ssusb_set_vbus(&ssusb->otg_switch, 1);
|
ssusb_set_vbus(&ssusb->otg_switch, 1);
|
||||||
}
|
}
|
||||||
diff --git a/drivers/usb/mtu3/mtu3_hw_regs.h b/drivers/usb/mtu3/mtu3_hw_regs.h
|
|
||||||
index b6059752dc12..a7e35f6ad90a 100644
|
|
||||||
--- a/drivers/usb/mtu3/mtu3_hw_regs.h
|
--- a/drivers/usb/mtu3/mtu3_hw_regs.h
|
||||||
+++ b/drivers/usb/mtu3/mtu3_hw_regs.h
|
+++ b/drivers/usb/mtu3/mtu3_hw_regs.h
|
||||||
@@ -472,6 +472,8 @@
|
@@ -472,6 +472,8 @@
|
||||||
|
@ -220,8 +209,6 @@ index b6059752dc12..a7e35f6ad90a 100644
|
||||||
#define SSUSB_U2_PORT_VBUSVALID BIT(9)
|
#define SSUSB_U2_PORT_VBUSVALID BIT(9)
|
||||||
#define SSUSB_U2_PORT_OTG_SEL BIT(7)
|
#define SSUSB_U2_PORT_OTG_SEL BIT(7)
|
||||||
#define SSUSB_U2_PORT_HOST BIT(2)
|
#define SSUSB_U2_PORT_HOST BIT(2)
|
||||||
diff --git a/drivers/usb/mtu3/mtu3_plat.c b/drivers/usb/mtu3/mtu3_plat.c
|
|
||||||
index fb8992011bde..1e473b068650 100644
|
|
||||||
--- a/drivers/usb/mtu3/mtu3_plat.c
|
--- a/drivers/usb/mtu3/mtu3_plat.c
|
||||||
+++ b/drivers/usb/mtu3/mtu3_plat.c
|
+++ b/drivers/usb/mtu3/mtu3_plat.c
|
||||||
@@ -21,7 +21,6 @@
|
@@ -21,7 +21,6 @@
|
||||||
|
@ -232,7 +219,7 @@ index fb8992011bde..1e473b068650 100644
|
||||||
#include <linux/platform_device.h>
|
#include <linux/platform_device.h>
|
||||||
|
|
||||||
#include "mtu3.h"
|
#include "mtu3.h"
|
||||||
@@ -212,33 +211,6 @@ static void ssusb_ip_sw_reset(struct ssusb_mtk *ssusb)
|
@@ -212,33 +211,6 @@ static void ssusb_ip_sw_reset(struct ssu
|
||||||
mtu3_clrbits(ssusb->ippc_base, U3D_SSUSB_IP_PW_CTRL0, SSUSB_IP_SW_RST);
|
mtu3_clrbits(ssusb->ippc_base, U3D_SSUSB_IP_PW_CTRL0, SSUSB_IP_SW_RST);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -266,7 +253,7 @@ index fb8992011bde..1e473b068650 100644
|
||||||
/* ignore the error if the clock does not exist */
|
/* ignore the error if the clock does not exist */
|
||||||
static struct clk *get_optional_clk(struct device *dev, const char *id)
|
static struct clk *get_optional_clk(struct device *dev, const char *id)
|
||||||
{
|
{
|
||||||
@@ -349,15 +321,11 @@ static int get_ssusb_rscs(struct platform_device *pdev, struct ssusb_mtk *ssusb)
|
@@ -349,15 +321,11 @@ static int get_ssusb_rscs(struct platfor
|
||||||
dev_err(ssusb->dev, "couldn't get extcon device\n");
|
dev_err(ssusb->dev, "couldn't get extcon device\n");
|
||||||
return -EPROBE_DEFER;
|
return -EPROBE_DEFER;
|
||||||
}
|
}
|
||||||
|
@ -285,6 +272,3 @@ index fb8992011bde..1e473b068650 100644
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
--
|
|
||||||
2.11.0
|
|
||||||
|
|
||||||
|
|
|
@ -15,8 +15,6 @@ Signed-off-by: Felipe Balbi <felipe.balbi@linux.intel.com>
|
||||||
drivers/usb/mtu3/mtu3_hw_regs.h | 1 +
|
drivers/usb/mtu3/mtu3_hw_regs.h | 1 +
|
||||||
5 files changed, 23 insertions(+), 12 deletions(-)
|
5 files changed, 23 insertions(+), 12 deletions(-)
|
||||||
|
|
||||||
diff --git a/drivers/usb/mtu3/mtu3.h b/drivers/usb/mtu3/mtu3.h
|
|
||||||
index b0c2b5dca045..d80e4e813248 100644
|
|
||||||
--- a/drivers/usb/mtu3/mtu3.h
|
--- a/drivers/usb/mtu3/mtu3.h
|
||||||
+++ b/drivers/usb/mtu3/mtu3.h
|
+++ b/drivers/usb/mtu3/mtu3.h
|
||||||
@@ -94,6 +94,7 @@ enum mtu3_speed {
|
@@ -94,6 +94,7 @@ enum mtu3_speed {
|
||||||
|
@ -27,11 +25,9 @@ index b0c2b5dca045..d80e4e813248 100644
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
diff --git a/drivers/usb/mtu3/mtu3_core.c b/drivers/usb/mtu3/mtu3_core.c
|
|
||||||
index cd4528f5f337..67f7a309aba7 100644
|
|
||||||
--- a/drivers/usb/mtu3/mtu3_core.c
|
--- a/drivers/usb/mtu3/mtu3_core.c
|
||||||
+++ b/drivers/usb/mtu3/mtu3_core.c
|
+++ b/drivers/usb/mtu3/mtu3_core.c
|
||||||
@@ -237,7 +237,7 @@ void mtu3_ep_stall_set(struct mtu3_ep *mep, bool set)
|
@@ -237,7 +237,7 @@ void mtu3_ep_stall_set(struct mtu3_ep *m
|
||||||
|
|
||||||
void mtu3_dev_on_off(struct mtu3 *mtu, int is_on)
|
void mtu3_dev_on_off(struct mtu3 *mtu, int is_on)
|
||||||
{
|
{
|
||||||
|
@ -40,7 +36,7 @@ index cd4528f5f337..67f7a309aba7 100644
|
||||||
mtu3_ss_func_set(mtu, is_on);
|
mtu3_ss_func_set(mtu, is_on);
|
||||||
else
|
else
|
||||||
mtu3_hs_softconn_set(mtu, is_on);
|
mtu3_hs_softconn_set(mtu, is_on);
|
||||||
@@ -547,6 +547,9 @@ static void mtu3_set_speed(struct mtu3 *mtu)
|
@@ -547,6 +547,9 @@ static void mtu3_set_speed(struct mtu3 *
|
||||||
mtu3_clrbits(mbase, U3D_USB3_CONFIG, USB3_EN);
|
mtu3_clrbits(mbase, U3D_USB3_CONFIG, USB3_EN);
|
||||||
/* HS/FS detected by HW */
|
/* HS/FS detected by HW */
|
||||||
mtu3_setbits(mbase, U3D_POWER_MANAGEMENT, HS_ENABLE);
|
mtu3_setbits(mbase, U3D_POWER_MANAGEMENT, HS_ENABLE);
|
||||||
|
@ -50,7 +46,7 @@ index cd4528f5f337..67f7a309aba7 100644
|
||||||
}
|
}
|
||||||
|
|
||||||
dev_info(mtu->dev, "max_speed: %s\n",
|
dev_info(mtu->dev, "max_speed: %s\n",
|
||||||
@@ -624,6 +627,10 @@ static irqreturn_t mtu3_link_isr(struct mtu3 *mtu)
|
@@ -624,6 +627,10 @@ static irqreturn_t mtu3_link_isr(struct
|
||||||
udev_speed = USB_SPEED_SUPER;
|
udev_speed = USB_SPEED_SUPER;
|
||||||
maxpkt = 512;
|
maxpkt = 512;
|
||||||
break;
|
break;
|
||||||
|
@ -61,7 +57,7 @@ index cd4528f5f337..67f7a309aba7 100644
|
||||||
default:
|
default:
|
||||||
udev_speed = USB_SPEED_UNKNOWN;
|
udev_speed = USB_SPEED_UNKNOWN;
|
||||||
break;
|
break;
|
||||||
@@ -825,14 +832,15 @@ int ssusb_gadget_init(struct ssusb_mtk *ssusb)
|
@@ -825,14 +832,15 @@ int ssusb_gadget_init(struct ssusb_mtk *
|
||||||
case USB_SPEED_FULL:
|
case USB_SPEED_FULL:
|
||||||
case USB_SPEED_HIGH:
|
case USB_SPEED_HIGH:
|
||||||
case USB_SPEED_SUPER:
|
case USB_SPEED_SUPER:
|
||||||
|
@ -79,11 +75,9 @@ index cd4528f5f337..67f7a309aba7 100644
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
diff --git a/drivers/usb/mtu3/mtu3_gadget.c b/drivers/usb/mtu3/mtu3_gadget.c
|
|
||||||
index 434fca58143c..b495471f689f 100644
|
|
||||||
--- a/drivers/usb/mtu3/mtu3_gadget.c
|
--- a/drivers/usb/mtu3/mtu3_gadget.c
|
||||||
+++ b/drivers/usb/mtu3/mtu3_gadget.c
|
+++ b/drivers/usb/mtu3/mtu3_gadget.c
|
||||||
@@ -89,6 +89,7 @@ static int mtu3_ep_enable(struct mtu3_ep *mep)
|
@@ -89,6 +89,7 @@ static int mtu3_ep_enable(struct mtu3_ep
|
||||||
|
|
||||||
switch (mtu->g.speed) {
|
switch (mtu->g.speed) {
|
||||||
case USB_SPEED_SUPER:
|
case USB_SPEED_SUPER:
|
||||||
|
@ -91,7 +85,7 @@ index 434fca58143c..b495471f689f 100644
|
||||||
if (usb_endpoint_xfer_int(desc) ||
|
if (usb_endpoint_xfer_int(desc) ||
|
||||||
usb_endpoint_xfer_isoc(desc)) {
|
usb_endpoint_xfer_isoc(desc)) {
|
||||||
interval = desc->bInterval;
|
interval = desc->bInterval;
|
||||||
@@ -456,7 +457,7 @@ static int mtu3_gadget_wakeup(struct usb_gadget *gadget)
|
@@ -456,7 +457,7 @@ static int mtu3_gadget_wakeup(struct usb
|
||||||
return -EOPNOTSUPP;
|
return -EOPNOTSUPP;
|
||||||
|
|
||||||
spin_lock_irqsave(&mtu->lock, flags);
|
spin_lock_irqsave(&mtu->lock, flags);
|
||||||
|
@ -100,11 +94,9 @@ index 434fca58143c..b495471f689f 100644
|
||||||
mtu3_setbits(mtu->mac_base, U3D_LINK_POWER_CONTROL, UX_EXIT);
|
mtu3_setbits(mtu->mac_base, U3D_LINK_POWER_CONTROL, UX_EXIT);
|
||||||
} else {
|
} else {
|
||||||
mtu3_setbits(mtu->mac_base, U3D_POWER_MANAGEMENT, RESUME);
|
mtu3_setbits(mtu->mac_base, U3D_POWER_MANAGEMENT, RESUME);
|
||||||
diff --git a/drivers/usb/mtu3/mtu3_gadget_ep0.c b/drivers/usb/mtu3/mtu3_gadget_ep0.c
|
|
||||||
index 958d74dd2b78..020b25314a68 100644
|
|
||||||
--- a/drivers/usb/mtu3/mtu3_gadget_ep0.c
|
--- a/drivers/usb/mtu3/mtu3_gadget_ep0.c
|
||||||
+++ b/drivers/usb/mtu3/mtu3_gadget_ep0.c
|
+++ b/drivers/usb/mtu3/mtu3_gadget_ep0.c
|
||||||
@@ -212,8 +212,8 @@ ep0_get_status(struct mtu3 *mtu, const struct usb_ctrlrequest *setup)
|
@@ -212,8 +212,8 @@ ep0_get_status(struct mtu3 *mtu, const s
|
||||||
case USB_RECIP_DEVICE:
|
case USB_RECIP_DEVICE:
|
||||||
result[0] = mtu->is_self_powered << USB_DEVICE_SELF_POWERED;
|
result[0] = mtu->is_self_powered << USB_DEVICE_SELF_POWERED;
|
||||||
result[0] |= mtu->may_wakeup << USB_DEVICE_REMOTE_WAKEUP;
|
result[0] |= mtu->may_wakeup << USB_DEVICE_REMOTE_WAKEUP;
|
||||||
|
@ -115,7 +107,7 @@ index 958d74dd2b78..020b25314a68 100644
|
||||||
result[0] |= mtu->u1_enable << USB_DEV_STAT_U1_ENABLED;
|
result[0] |= mtu->u1_enable << USB_DEV_STAT_U1_ENABLED;
|
||||||
result[0] |= mtu->u2_enable << USB_DEV_STAT_U2_ENABLED;
|
result[0] |= mtu->u2_enable << USB_DEV_STAT_U2_ENABLED;
|
||||||
}
|
}
|
||||||
@@ -329,8 +329,8 @@ static int ep0_handle_feature_dev(struct mtu3 *mtu,
|
@@ -329,8 +329,8 @@ static int ep0_handle_feature_dev(struct
|
||||||
handled = handle_test_mode(mtu, setup);
|
handled = handle_test_mode(mtu, setup);
|
||||||
break;
|
break;
|
||||||
case USB_DEVICE_U1_ENABLE:
|
case USB_DEVICE_U1_ENABLE:
|
||||||
|
@ -126,7 +118,7 @@ index 958d74dd2b78..020b25314a68 100644
|
||||||
break;
|
break;
|
||||||
|
|
||||||
lpc = mtu3_readl(mbase, U3D_LINK_POWER_CONTROL);
|
lpc = mtu3_readl(mbase, U3D_LINK_POWER_CONTROL);
|
||||||
@@ -344,8 +344,8 @@ static int ep0_handle_feature_dev(struct mtu3 *mtu,
|
@@ -344,8 +344,8 @@ static int ep0_handle_feature_dev(struct
|
||||||
handled = 1;
|
handled = 1;
|
||||||
break;
|
break;
|
||||||
case USB_DEVICE_U2_ENABLE:
|
case USB_DEVICE_U2_ENABLE:
|
||||||
|
@ -137,7 +129,7 @@ index 958d74dd2b78..020b25314a68 100644
|
||||||
break;
|
break;
|
||||||
|
|
||||||
lpc = mtu3_readl(mbase, U3D_LINK_POWER_CONTROL);
|
lpc = mtu3_readl(mbase, U3D_LINK_POWER_CONTROL);
|
||||||
@@ -384,8 +384,8 @@ static int ep0_handle_feature(struct mtu3 *mtu,
|
@@ -384,8 +384,8 @@ static int ep0_handle_feature(struct mtu
|
||||||
break;
|
break;
|
||||||
case USB_RECIP_INTERFACE:
|
case USB_RECIP_INTERFACE:
|
||||||
/* superspeed only */
|
/* superspeed only */
|
||||||
|
@ -148,8 +140,6 @@ index 958d74dd2b78..020b25314a68 100644
|
||||||
/*
|
/*
|
||||||
* forward the request because function drivers
|
* forward the request because function drivers
|
||||||
* should handle it
|
* should handle it
|
||||||
diff --git a/drivers/usb/mtu3/mtu3_hw_regs.h b/drivers/usb/mtu3/mtu3_hw_regs.h
|
|
||||||
index a7e35f6ad90a..6953436a1688 100644
|
|
||||||
--- a/drivers/usb/mtu3/mtu3_hw_regs.h
|
--- a/drivers/usb/mtu3/mtu3_hw_regs.h
|
||||||
+++ b/drivers/usb/mtu3/mtu3_hw_regs.h
|
+++ b/drivers/usb/mtu3/mtu3_hw_regs.h
|
||||||
@@ -467,6 +467,7 @@
|
@@ -467,6 +467,7 @@
|
||||||
|
@ -160,6 +150,3 @@ index a7e35f6ad90a..6953436a1688 100644
|
||||||
#define SSUSB_U3_PORT_HOST_SEL BIT(2)
|
#define SSUSB_U3_PORT_HOST_SEL BIT(2)
|
||||||
#define SSUSB_U3_PORT_PDN BIT(1)
|
#define SSUSB_U3_PORT_PDN BIT(1)
|
||||||
#define SSUSB_U3_PORT_DIS BIT(0)
|
#define SSUSB_U3_PORT_DIS BIT(0)
|
||||||
--
|
|
||||||
2.11.0
|
|
||||||
|
|
||||||
|
|
|
@ -14,11 +14,9 @@ Signed-off-by: Felipe Balbi <felipe.balbi@linux.intel.com>
|
||||||
drivers/usb/mtu3/mtu3_plat.c | 8 ++++----
|
drivers/usb/mtu3/mtu3_plat.c | 8 ++++----
|
||||||
1 file changed, 4 insertions(+), 4 deletions(-)
|
1 file changed, 4 insertions(+), 4 deletions(-)
|
||||||
|
|
||||||
diff --git a/drivers/usb/mtu3/mtu3_plat.c b/drivers/usb/mtu3/mtu3_plat.c
|
|
||||||
index 1e473b068650..7ca81f4e78a3 100644
|
|
||||||
--- a/drivers/usb/mtu3/mtu3_plat.c
|
--- a/drivers/usb/mtu3/mtu3_plat.c
|
||||||
+++ b/drivers/usb/mtu3/mtu3_plat.c
|
+++ b/drivers/usb/mtu3/mtu3_plat.c
|
||||||
@@ -300,10 +300,6 @@ static int get_ssusb_rscs(struct platform_device *pdev, struct ssusb_mtk *ssusb)
|
@@ -300,10 +300,6 @@ static int get_ssusb_rscs(struct platfor
|
||||||
of_property_read_u32(node, "mediatek,u3p-dis-msk",
|
of_property_read_u32(node, "mediatek,u3p-dis-msk",
|
||||||
&ssusb->u3p_dis_msk);
|
&ssusb->u3p_dis_msk);
|
||||||
|
|
||||||
|
@ -29,7 +27,7 @@ index 1e473b068650..7ca81f4e78a3 100644
|
||||||
vbus = devm_regulator_get(&pdev->dev, "vbus");
|
vbus = devm_regulator_get(&pdev->dev, "vbus");
|
||||||
if (IS_ERR(vbus)) {
|
if (IS_ERR(vbus)) {
|
||||||
dev_err(dev, "failed to get vbus\n");
|
dev_err(dev, "failed to get vbus\n");
|
||||||
@@ -311,6 +307,10 @@ static int get_ssusb_rscs(struct platform_device *pdev, struct ssusb_mtk *ssusb)
|
@@ -311,6 +307,10 @@ static int get_ssusb_rscs(struct platfor
|
||||||
}
|
}
|
||||||
otg_sx->vbus = vbus;
|
otg_sx->vbus = vbus;
|
||||||
|
|
||||||
|
@ -40,6 +38,3 @@ index 1e473b068650..7ca81f4e78a3 100644
|
||||||
otg_sx->is_u3_drd = of_property_read_bool(node, "mediatek,usb3-drd");
|
otg_sx->is_u3_drd = of_property_read_bool(node, "mediatek,usb3-drd");
|
||||||
otg_sx->manual_drd_enabled =
|
otg_sx->manual_drd_enabled =
|
||||||
of_property_read_bool(node, "enable-manual-drd");
|
of_property_read_bool(node, "enable-manual-drd");
|
||||||
--
|
|
||||||
2.11.0
|
|
||||||
|
|
||||||
|
|
|
@ -12,11 +12,9 @@ Signed-off-by: Felipe Balbi <felipe.balbi@linux.intel.com>
|
||||||
drivers/usb/mtu3/mtu3_plat.c | 6 ++----
|
drivers/usb/mtu3/mtu3_plat.c | 6 ++----
|
||||||
1 file changed, 2 insertions(+), 4 deletions(-)
|
1 file changed, 2 insertions(+), 4 deletions(-)
|
||||||
|
|
||||||
diff --git a/drivers/usb/mtu3/mtu3_plat.c b/drivers/usb/mtu3/mtu3_plat.c
|
|
||||||
index 7ca81f4e78a3..9ff33579b42e 100644
|
|
||||||
--- a/drivers/usb/mtu3/mtu3_plat.c
|
--- a/drivers/usb/mtu3/mtu3_plat.c
|
||||||
+++ b/drivers/usb/mtu3/mtu3_plat.c
|
+++ b/drivers/usb/mtu3/mtu3_plat.c
|
||||||
@@ -283,10 +283,8 @@ static int get_ssusb_rscs(struct platform_device *pdev, struct ssusb_mtk *ssusb)
|
@@ -283,10 +283,8 @@ static int get_ssusb_rscs(struct platfor
|
||||||
return PTR_ERR(ssusb->ippc_base);
|
return PTR_ERR(ssusb->ippc_base);
|
||||||
|
|
||||||
ssusb->dr_mode = usb_get_dr_mode(dev);
|
ssusb->dr_mode = usb_get_dr_mode(dev);
|
||||||
|
@ -29,6 +27,3 @@ index 7ca81f4e78a3..9ff33579b42e 100644
|
||||||
|
|
||||||
if (ssusb->dr_mode == USB_DR_MODE_PERIPHERAL)
|
if (ssusb->dr_mode == USB_DR_MODE_PERIPHERAL)
|
||||||
return 0;
|
return 0;
|
||||||
--
|
|
||||||
2.11.0
|
|
||||||
|
|
||||||
|
|
|
@ -17,11 +17,9 @@ Signed-off-by: Felipe Balbi <felipe.balbi@linux.intel.com>
|
||||||
drivers/usb/mtu3/mtu3_core.c | 9 +++++++--
|
drivers/usb/mtu3/mtu3_core.c | 9 +++++++--
|
||||||
1 file changed, 7 insertions(+), 2 deletions(-)
|
1 file changed, 7 insertions(+), 2 deletions(-)
|
||||||
|
|
||||||
diff --git a/drivers/usb/mtu3/mtu3_core.c b/drivers/usb/mtu3/mtu3_core.c
|
|
||||||
index 67f7a309aba7..7c149a7da14e 100644
|
|
||||||
--- a/drivers/usb/mtu3/mtu3_core.c
|
--- a/drivers/usb/mtu3/mtu3_core.c
|
||||||
+++ b/drivers/usb/mtu3/mtu3_core.c
|
+++ b/drivers/usb/mtu3/mtu3_core.c
|
||||||
@@ -115,7 +115,9 @@ static int mtu3_device_enable(struct mtu3 *mtu)
|
@@ -115,7 +115,9 @@ static int mtu3_device_enable(struct mtu
|
||||||
mtu3_clrbits(ibase, SSUSB_U2_CTRL(0),
|
mtu3_clrbits(ibase, SSUSB_U2_CTRL(0),
|
||||||
(SSUSB_U2_PORT_DIS | SSUSB_U2_PORT_PDN |
|
(SSUSB_U2_PORT_DIS | SSUSB_U2_PORT_PDN |
|
||||||
SSUSB_U2_PORT_HOST_SEL));
|
SSUSB_U2_PORT_HOST_SEL));
|
||||||
|
@ -32,7 +30,7 @@ index 67f7a309aba7..7c149a7da14e 100644
|
||||||
|
|
||||||
return ssusb_check_clocks(mtu->ssusb, check_clk);
|
return ssusb_check_clocks(mtu->ssusb, check_clk);
|
||||||
}
|
}
|
||||||
@@ -130,7 +132,10 @@ static void mtu3_device_disable(struct mtu3 *mtu)
|
@@ -130,7 +132,10 @@ static void mtu3_device_disable(struct m
|
||||||
|
|
||||||
mtu3_setbits(ibase, SSUSB_U2_CTRL(0),
|
mtu3_setbits(ibase, SSUSB_U2_CTRL(0),
|
||||||
SSUSB_U2_PORT_DIS | SSUSB_U2_PORT_PDN);
|
SSUSB_U2_PORT_DIS | SSUSB_U2_PORT_PDN);
|
||||||
|
@ -44,6 +42,3 @@ index 67f7a309aba7..7c149a7da14e 100644
|
||||||
mtu3_setbits(ibase, U3D_SSUSB_IP_PW_CTRL2, SSUSB_IP_DEV_PDN);
|
mtu3_setbits(ibase, U3D_SSUSB_IP_PW_CTRL2, SSUSB_IP_DEV_PDN);
|
||||||
}
|
}
|
||||||
|
|
||||||
--
|
|
||||||
2.11.0
|
|
||||||
|
|
||||||
|
|
|
@ -12,8 +12,6 @@ Signed-off-by: Felipe Balbi <felipe.balbi@linux.intel.com>
|
||||||
Documentation/devicetree/bindings/usb/mediatek,mtu3.txt | 2 ++
|
Documentation/devicetree/bindings/usb/mediatek,mtu3.txt | 2 ++
|
||||||
1 file changed, 2 insertions(+)
|
1 file changed, 2 insertions(+)
|
||||||
|
|
||||||
diff --git a/Documentation/devicetree/bindings/usb/mediatek,mtu3.txt b/Documentation/devicetree/bindings/usb/mediatek,mtu3.txt
|
|
||||||
index 49f54767cd21..7c611d14a0a0 100644
|
|
||||||
--- a/Documentation/devicetree/bindings/usb/mediatek,mtu3.txt
|
--- a/Documentation/devicetree/bindings/usb/mediatek,mtu3.txt
|
||||||
+++ b/Documentation/devicetree/bindings/usb/mediatek,mtu3.txt
|
+++ b/Documentation/devicetree/bindings/usb/mediatek,mtu3.txt
|
||||||
@@ -44,6 +44,8 @@ Optional properties:
|
@@ -44,6 +44,8 @@ Optional properties:
|
||||||
|
@ -25,6 +23,3 @@ index 49f54767cd21..7c611d14a0a0 100644
|
||||||
|
|
||||||
Sub-nodes:
|
Sub-nodes:
|
||||||
The xhci should be added as subnode to mtu3 as shown in the following example
|
The xhci should be added as subnode to mtu3 as shown in the following example
|
||||||
--
|
|
||||||
2.11.0
|
|
||||||
|
|
||||||
|
|
|
@ -13,8 +13,6 @@ Signed-off-by: Felipe Balbi <felipe.balbi@linux.intel.com>
|
||||||
Documentation/devicetree/bindings/usb/mediatek,mtu3.txt | 10 ++++------
|
Documentation/devicetree/bindings/usb/mediatek,mtu3.txt | 10 ++++------
|
||||||
1 file changed, 4 insertions(+), 6 deletions(-)
|
1 file changed, 4 insertions(+), 6 deletions(-)
|
||||||
|
|
||||||
diff --git a/Documentation/devicetree/bindings/usb/mediatek,mtu3.txt b/Documentation/devicetree/bindings/usb/mediatek,mtu3.txt
|
|
||||||
index 7c611d14a0a0..49c982bb5bfc 100644
|
|
||||||
--- a/Documentation/devicetree/bindings/usb/mediatek,mtu3.txt
|
--- a/Documentation/devicetree/bindings/usb/mediatek,mtu3.txt
|
||||||
+++ b/Documentation/devicetree/bindings/usb/mediatek,mtu3.txt
|
+++ b/Documentation/devicetree/bindings/usb/mediatek,mtu3.txt
|
||||||
@@ -14,9 +14,9 @@ Required properties:
|
@@ -14,9 +14,9 @@ Required properties:
|
||||||
|
@ -41,6 +39,3 @@ index 7c611d14a0a0..49c982bb5bfc 100644
|
||||||
vusb33-supply = <&mt6397_vusb_reg>;
|
vusb33-supply = <&mt6397_vusb_reg>;
|
||||||
vbus-supply = <&usb_p0_vbus>;
|
vbus-supply = <&usb_p0_vbus>;
|
||||||
extcon = <&extcon_usb>;
|
extcon = <&extcon_usb>;
|
||||||
--
|
|
||||||
2.11.0
|
|
||||||
|
|
||||||
|
|
|
@ -12,8 +12,6 @@ Signed-off-by: Felipe Balbi <felipe.balbi@linux.intel.com>
|
||||||
Documentation/devicetree/bindings/usb/mediatek,mtu3.txt | 7 ++++---
|
Documentation/devicetree/bindings/usb/mediatek,mtu3.txt | 7 ++++---
|
||||||
1 file changed, 4 insertions(+), 3 deletions(-)
|
1 file changed, 4 insertions(+), 3 deletions(-)
|
||||||
|
|
||||||
diff --git a/Documentation/devicetree/bindings/usb/mediatek,mtu3.txt b/Documentation/devicetree/bindings/usb/mediatek,mtu3.txt
|
|
||||||
index 49c982bb5bfc..b2271d8e6b50 100644
|
|
||||||
--- a/Documentation/devicetree/bindings/usb/mediatek,mtu3.txt
|
--- a/Documentation/devicetree/bindings/usb/mediatek,mtu3.txt
|
||||||
+++ b/Documentation/devicetree/bindings/usb/mediatek,mtu3.txt
|
+++ b/Documentation/devicetree/bindings/usb/mediatek,mtu3.txt
|
||||||
@@ -30,9 +30,10 @@ Optional properties:
|
@@ -30,9 +30,10 @@ Optional properties:
|
||||||
|
@ -30,6 +28,3 @@ index 49c982bb5bfc..b2271d8e6b50 100644
|
||||||
- pinctrl-0 : pin control group
|
- pinctrl-0 : pin control group
|
||||||
See: Documentation/devicetree/bindings/pinctrl/pinctrl-bindings.txt
|
See: Documentation/devicetree/bindings/pinctrl/pinctrl-bindings.txt
|
||||||
|
|
||||||
--
|
|
||||||
2.11.0
|
|
||||||
|
|
||||||
|
|
|
@ -12,8 +12,6 @@ Signed-off-by: Matthias Brugger <matthias.bgg@gmail.com>
|
||||||
Documentation/devicetree/bindings/soc/mediatek/pwrap.txt | 6 +++++-
|
Documentation/devicetree/bindings/soc/mediatek/pwrap.txt | 6 +++++-
|
||||||
1 file changed, 5 insertions(+), 1 deletion(-)
|
1 file changed, 5 insertions(+), 1 deletion(-)
|
||||||
|
|
||||||
diff --git a/Documentation/devicetree/bindings/soc/mediatek/pwrap.txt b/Documentation/devicetree/bindings/soc/mediatek/pwrap.txt
|
|
||||||
index 107700d00df4..bf80e3f96f8c 100644
|
|
||||||
--- a/Documentation/devicetree/bindings/soc/mediatek/pwrap.txt
|
--- a/Documentation/devicetree/bindings/soc/mediatek/pwrap.txt
|
||||||
+++ b/Documentation/devicetree/bindings/soc/mediatek/pwrap.txt
|
+++ b/Documentation/devicetree/bindings/soc/mediatek/pwrap.txt
|
||||||
@@ -19,6 +19,7 @@ IP Pairing
|
@@ -19,6 +19,7 @@ IP Pairing
|
||||||
|
@ -24,7 +22,7 @@ index 107700d00df4..bf80e3f96f8c 100644
|
||||||
"mediatek,mt8135-pwrap" for MT8135 SoCs
|
"mediatek,mt8135-pwrap" for MT8135 SoCs
|
||||||
"mediatek,mt8173-pwrap" for MT8173 SoCs
|
"mediatek,mt8173-pwrap" for MT8173 SoCs
|
||||||
- interrupts: IRQ for pwrap in SOC
|
- interrupts: IRQ for pwrap in SOC
|
||||||
@@ -36,9 +37,12 @@ Required properties in pwrap device node.
|
@@ -36,9 +37,12 @@ Required properties in pwrap device node
|
||||||
- clocks: Must contain an entry for each entry in clock-names.
|
- clocks: Must contain an entry for each entry in clock-names.
|
||||||
|
|
||||||
Optional properities:
|
Optional properities:
|
||||||
|
@ -38,6 +36,3 @@ index 107700d00df4..bf80e3f96f8c 100644
|
||||||
|
|
||||||
Example:
|
Example:
|
||||||
pwrap: pwrap@1000f000 {
|
pwrap: pwrap@1000f000 {
|
||||||
--
|
|
||||||
2.11.0
|
|
||||||
|
|
||||||
|
|
|
@ -18,8 +18,6 @@ Signed-off-by: Matthias Brugger <matthias.bgg@gmail.com>
|
||||||
drivers/soc/mediatek/mtk-pmic-wrap.c | 55 +++++++++++++++++++++++++++++++++++-
|
drivers/soc/mediatek/mtk-pmic-wrap.c | 55 +++++++++++++++++++++++++++++++++++-
|
||||||
1 file changed, 54 insertions(+), 1 deletion(-)
|
1 file changed, 54 insertions(+), 1 deletion(-)
|
||||||
|
|
||||||
diff --git a/drivers/soc/mediatek/mtk-pmic-wrap.c b/drivers/soc/mediatek/mtk-pmic-wrap.c
|
|
||||||
index f095faac1e04..06930e2ebe4c 100644
|
|
||||||
--- a/drivers/soc/mediatek/mtk-pmic-wrap.c
|
--- a/drivers/soc/mediatek/mtk-pmic-wrap.c
|
||||||
+++ b/drivers/soc/mediatek/mtk-pmic-wrap.c
|
+++ b/drivers/soc/mediatek/mtk-pmic-wrap.c
|
||||||
@@ -487,6 +487,7 @@ static int mt8135_regs[] = {
|
@@ -487,6 +487,7 @@ static int mt8135_regs[] = {
|
||||||
|
@ -47,7 +45,7 @@ index f095faac1e04..06930e2ebe4c 100644
|
||||||
};
|
};
|
||||||
|
|
||||||
struct pmic_wrapper {
|
struct pmic_wrapper {
|
||||||
@@ -609,7 +617,7 @@ static int pwrap_write(struct pmic_wrapper *wrp, u32 adr, u32 wdata)
|
@@ -609,7 +617,7 @@ static int pwrap_write(struct pmic_wrapp
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -56,7 +54,7 @@ index f095faac1e04..06930e2ebe4c 100644
|
||||||
{
|
{
|
||||||
int ret;
|
int ret;
|
||||||
|
|
||||||
@@ -632,6 +640,39 @@ static int pwrap_read(struct pmic_wrapper *wrp, u32 adr, u32 *rdata)
|
@@ -632,6 +640,39 @@ static int pwrap_read(struct pmic_wrappe
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -96,7 +94,7 @@ index f095faac1e04..06930e2ebe4c 100644
|
||||||
static int pwrap_regmap_read(void *context, u32 adr, u32 *rdata)
|
static int pwrap_regmap_read(void *context, u32 adr, u32 *rdata)
|
||||||
{
|
{
|
||||||
return pwrap_read(context, adr, rdata);
|
return pwrap_read(context, adr, rdata);
|
||||||
@@ -752,6 +793,8 @@ static int pwrap_mt2701_init_reg_clock(struct pmic_wrapper *wrp)
|
@@ -752,6 +793,8 @@ static int pwrap_mt2701_init_reg_clock(s
|
||||||
pwrap_writel(wrp, 0x2, PWRAP_CSLEXT_START);
|
pwrap_writel(wrp, 0x2, PWRAP_CSLEXT_START);
|
||||||
pwrap_writel(wrp, 0x2, PWRAP_CSLEXT_END);
|
pwrap_writel(wrp, 0x2, PWRAP_CSLEXT_END);
|
||||||
break;
|
break;
|
||||||
|
@ -105,7 +103,7 @@ index f095faac1e04..06930e2ebe4c 100644
|
||||||
}
|
}
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
@@ -815,6 +858,8 @@ static int pwrap_init_cipher(struct pmic_wrapper *wrp)
|
@@ -815,6 +858,8 @@ static int pwrap_init_cipher(struct pmic
|
||||||
pwrap_write(wrp, wrp->slave->dew_regs[PWRAP_DEW_CIPHER_EN],
|
pwrap_write(wrp, wrp->slave->dew_regs[PWRAP_DEW_CIPHER_EN],
|
||||||
0x1);
|
0x1);
|
||||||
break;
|
break;
|
||||||
|
@ -114,7 +112,7 @@ index f095faac1e04..06930e2ebe4c 100644
|
||||||
}
|
}
|
||||||
|
|
||||||
/* wait for cipher data ready@AP */
|
/* wait for cipher data ready@AP */
|
||||||
@@ -1036,11 +1081,19 @@ static const struct regmap_config pwrap_regmap_config = {
|
@@ -1036,11 +1081,19 @@ static const struct regmap_config pwrap_
|
||||||
static const struct pwrap_slv_type pmic_mt6323 = {
|
static const struct pwrap_slv_type pmic_mt6323 = {
|
||||||
.dew_regs = mt6323_regs,
|
.dew_regs = mt6323_regs,
|
||||||
.type = PMIC_MT6323,
|
.type = PMIC_MT6323,
|
||||||
|
@ -134,6 +132,3 @@ index f095faac1e04..06930e2ebe4c 100644
|
||||||
};
|
};
|
||||||
|
|
||||||
static const struct of_device_id of_slave_match_tbl[] = {
|
static const struct of_device_id of_slave_match_tbl[] = {
|
||||||
--
|
|
||||||
2.11.0
|
|
||||||
|
|
||||||
|
|
|
@ -18,8 +18,6 @@ Signed-off-by: Matthias Brugger <matthias.bgg@gmail.com>
|
||||||
drivers/soc/mediatek/mtk-pmic-wrap.c | 70 +++++++++++++++++++++++++++---------
|
drivers/soc/mediatek/mtk-pmic-wrap.c | 70 +++++++++++++++++++++++++++---------
|
||||||
1 file changed, 54 insertions(+), 16 deletions(-)
|
1 file changed, 54 insertions(+), 16 deletions(-)
|
||||||
|
|
||||||
diff --git a/drivers/soc/mediatek/mtk-pmic-wrap.c b/drivers/soc/mediatek/mtk-pmic-wrap.c
|
|
||||||
index 06930e2ebe4c..2d3a8faae124 100644
|
|
||||||
--- a/drivers/soc/mediatek/mtk-pmic-wrap.c
|
--- a/drivers/soc/mediatek/mtk-pmic-wrap.c
|
||||||
+++ b/drivers/soc/mediatek/mtk-pmic-wrap.c
|
+++ b/drivers/soc/mediatek/mtk-pmic-wrap.c
|
||||||
@@ -507,6 +507,7 @@ struct pwrap_slv_type {
|
@@ -507,6 +507,7 @@ struct pwrap_slv_type {
|
||||||
|
@ -30,7 +28,7 @@ index 06930e2ebe4c..2d3a8faae124 100644
|
||||||
};
|
};
|
||||||
|
|
||||||
struct pmic_wrapper {
|
struct pmic_wrapper {
|
||||||
@@ -601,22 +602,6 @@ static int pwrap_wait_for_state(struct pmic_wrapper *wrp,
|
@@ -601,22 +602,6 @@ static int pwrap_wait_for_state(struct p
|
||||||
} while (1);
|
} while (1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -53,7 +51,7 @@ index 06930e2ebe4c..2d3a8faae124 100644
|
||||||
static int pwrap_read16(struct pmic_wrapper *wrp, u32 adr, u32 *rdata)
|
static int pwrap_read16(struct pmic_wrapper *wrp, u32 adr, u32 *rdata)
|
||||||
{
|
{
|
||||||
int ret;
|
int ret;
|
||||||
@@ -673,6 +658,56 @@ static int pwrap_read(struct pmic_wrapper *wrp, u32 adr, u32 *rdata)
|
@@ -673,6 +658,56 @@ static int pwrap_read(struct pmic_wrappe
|
||||||
return wrp->slave->pwrap_read(wrp, adr, rdata);
|
return wrp->slave->pwrap_read(wrp, adr, rdata);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -110,7 +108,7 @@ index 06930e2ebe4c..2d3a8faae124 100644
|
||||||
static int pwrap_regmap_read(void *context, u32 adr, u32 *rdata)
|
static int pwrap_regmap_read(void *context, u32 adr, u32 *rdata)
|
||||||
{
|
{
|
||||||
return pwrap_read(context, adr, rdata);
|
return pwrap_read(context, adr, rdata);
|
||||||
@@ -1082,18 +1117,21 @@ static const struct pwrap_slv_type pmic_mt6323 = {
|
@@ -1082,18 +1117,21 @@ static const struct pwrap_slv_type pmic_
|
||||||
.dew_regs = mt6323_regs,
|
.dew_regs = mt6323_regs,
|
||||||
.type = PMIC_MT6323,
|
.type = PMIC_MT6323,
|
||||||
.pwrap_read = pwrap_read16,
|
.pwrap_read = pwrap_read16,
|
||||||
|
@ -132,6 +130,3 @@ index 06930e2ebe4c..2d3a8faae124 100644
|
||||||
};
|
};
|
||||||
|
|
||||||
static const struct of_device_id of_slave_match_tbl[] = {
|
static const struct of_device_id of_slave_match_tbl[] = {
|
||||||
--
|
|
||||||
2.11.0
|
|
||||||
|
|
||||||
|
|
|
@ -19,8 +19,6 @@ Signed-off-by: Matthias Brugger <matthias.bgg@gmail.com>
|
||||||
drivers/soc/mediatek/mtk-pmic-wrap.c | 130 ++++++++++++++++++++++++-----------
|
drivers/soc/mediatek/mtk-pmic-wrap.c | 130 ++++++++++++++++++++++++-----------
|
||||||
1 file changed, 90 insertions(+), 40 deletions(-)
|
1 file changed, 90 insertions(+), 40 deletions(-)
|
||||||
|
|
||||||
diff --git a/drivers/soc/mediatek/mtk-pmic-wrap.c b/drivers/soc/mediatek/mtk-pmic-wrap.c
|
|
||||||
index 2d3a8faae124..e3398e37a7a6 100644
|
|
||||||
--- a/drivers/soc/mediatek/mtk-pmic-wrap.c
|
--- a/drivers/soc/mediatek/mtk-pmic-wrap.c
|
||||||
+++ b/drivers/soc/mediatek/mtk-pmic-wrap.c
|
+++ b/drivers/soc/mediatek/mtk-pmic-wrap.c
|
||||||
@@ -70,6 +70,12 @@
|
@@ -70,6 +70,12 @@
|
||||||
|
@ -45,7 +43,7 @@ index 2d3a8faae124..e3398e37a7a6 100644
|
||||||
/*
|
/*
|
||||||
* pwrap operations are highly associated with the PMIC types,
|
* pwrap operations are highly associated with the PMIC types,
|
||||||
* so the pointers added increases flexibility allowing determination
|
* so the pointers added increases flexibility allowing determination
|
||||||
@@ -787,6 +795,37 @@ static int pwrap_init_sidly(struct pmic_wrapper *wrp)
|
@@ -787,6 +795,37 @@ static int pwrap_init_sidly(struct pmic_
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -83,7 +81,7 @@ index 2d3a8faae124..e3398e37a7a6 100644
|
||||||
static int pwrap_mt8135_init_reg_clock(struct pmic_wrapper *wrp)
|
static int pwrap_mt8135_init_reg_clock(struct pmic_wrapper *wrp)
|
||||||
{
|
{
|
||||||
pwrap_writel(wrp, 0x4, PWRAP_CSHEXT);
|
pwrap_writel(wrp, 0x4, PWRAP_CSHEXT);
|
||||||
@@ -935,6 +974,30 @@ static int pwrap_init_cipher(struct pmic_wrapper *wrp)
|
@@ -935,6 +974,30 @@ static int pwrap_init_cipher(struct pmic
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -114,7 +112,7 @@ index 2d3a8faae124..e3398e37a7a6 100644
|
||||||
static int pwrap_mt8135_init_soc_specific(struct pmic_wrapper *wrp)
|
static int pwrap_mt8135_init_soc_specific(struct pmic_wrapper *wrp)
|
||||||
{
|
{
|
||||||
/* enable pwrap events and pwrap bridge in AP side */
|
/* enable pwrap events and pwrap bridge in AP side */
|
||||||
@@ -995,7 +1058,6 @@ static int pwrap_mt2701_init_soc_specific(struct pmic_wrapper *wrp)
|
@@ -995,7 +1058,6 @@ static int pwrap_mt2701_init_soc_specifi
|
||||||
static int pwrap_init(struct pmic_wrapper *wrp)
|
static int pwrap_init(struct pmic_wrapper *wrp)
|
||||||
{
|
{
|
||||||
int ret;
|
int ret;
|
||||||
|
@ -122,7 +120,7 @@ index 2d3a8faae124..e3398e37a7a6 100644
|
||||||
|
|
||||||
reset_control_reset(wrp->rstc);
|
reset_control_reset(wrp->rstc);
|
||||||
if (wrp->rstc_bridge)
|
if (wrp->rstc_bridge)
|
||||||
@@ -1007,10 +1069,12 @@ static int pwrap_init(struct pmic_wrapper *wrp)
|
@@ -1007,10 +1069,12 @@ static int pwrap_init(struct pmic_wrappe
|
||||||
pwrap_writel(wrp, 0, PWRAP_DCM_DBC_PRD);
|
pwrap_writel(wrp, 0, PWRAP_DCM_DBC_PRD);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -139,7 +137,7 @@ index 2d3a8faae124..e3398e37a7a6 100644
|
||||||
|
|
||||||
pwrap_writel(wrp, 1, PWRAP_WRAP_EN);
|
pwrap_writel(wrp, 1, PWRAP_WRAP_EN);
|
||||||
|
|
||||||
@@ -1022,45 +1086,26 @@ static int pwrap_init(struct pmic_wrapper *wrp)
|
@@ -1022,45 +1086,26 @@ static int pwrap_init(struct pmic_wrappe
|
||||||
if (ret)
|
if (ret)
|
||||||
return ret;
|
return ret;
|
||||||
|
|
||||||
|
@ -201,7 +199,7 @@ index 2d3a8faae124..e3398e37a7a6 100644
|
||||||
|
|
||||||
if (wrp->master->type == PWRAP_MT8135)
|
if (wrp->master->type == PWRAP_MT8135)
|
||||||
pwrap_writel(wrp, 0x7, PWRAP_RRARB_EN);
|
pwrap_writel(wrp, 0x7, PWRAP_RRARB_EN);
|
||||||
@@ -1116,6 +1161,8 @@ static const struct regmap_config pwrap_regmap_config = {
|
@@ -1116,6 +1161,8 @@ static const struct regmap_config pwrap_
|
||||||
static const struct pwrap_slv_type pmic_mt6323 = {
|
static const struct pwrap_slv_type pmic_mt6323 = {
|
||||||
.dew_regs = mt6323_regs,
|
.dew_regs = mt6323_regs,
|
||||||
.type = PMIC_MT6323,
|
.type = PMIC_MT6323,
|
||||||
|
@ -210,7 +208,7 @@ index 2d3a8faae124..e3398e37a7a6 100644
|
||||||
.pwrap_read = pwrap_read16,
|
.pwrap_read = pwrap_read16,
|
||||||
.pwrap_write = pwrap_write16,
|
.pwrap_write = pwrap_write16,
|
||||||
};
|
};
|
||||||
@@ -1123,6 +1170,7 @@ static const struct pwrap_slv_type pmic_mt6323 = {
|
@@ -1123,6 +1170,7 @@ static const struct pwrap_slv_type pmic_
|
||||||
static const struct pwrap_slv_type pmic_mt6380 = {
|
static const struct pwrap_slv_type pmic_mt6380 = {
|
||||||
.dew_regs = NULL,
|
.dew_regs = NULL,
|
||||||
.type = PMIC_MT6380,
|
.type = PMIC_MT6380,
|
||||||
|
@ -218,7 +216,7 @@ index 2d3a8faae124..e3398e37a7a6 100644
|
||||||
.pwrap_read = pwrap_read32,
|
.pwrap_read = pwrap_read32,
|
||||||
.pwrap_write = pwrap_write32,
|
.pwrap_write = pwrap_write32,
|
||||||
};
|
};
|
||||||
@@ -1130,6 +1178,8 @@ static const struct pwrap_slv_type pmic_mt6380 = {
|
@@ -1130,6 +1178,8 @@ static const struct pwrap_slv_type pmic_
|
||||||
static const struct pwrap_slv_type pmic_mt6397 = {
|
static const struct pwrap_slv_type pmic_mt6397 = {
|
||||||
.dew_regs = mt6397_regs,
|
.dew_regs = mt6397_regs,
|
||||||
.type = PMIC_MT6397,
|
.type = PMIC_MT6397,
|
||||||
|
@ -227,6 +225,3 @@ index 2d3a8faae124..e3398e37a7a6 100644
|
||||||
.pwrap_read = pwrap_read16,
|
.pwrap_read = pwrap_read16,
|
||||||
.pwrap_write = pwrap_write16,
|
.pwrap_write = pwrap_write16,
|
||||||
};
|
};
|
||||||
--
|
|
||||||
2.11.0
|
|
||||||
|
|
||||||
|
|
|
@ -16,8 +16,6 @@ Signed-off-by: Matthias Brugger <matthias.bgg@gmail.com>
|
||||||
drivers/soc/mediatek/mtk-pmic-wrap.c | 24 +++++++++++++++++++++---
|
drivers/soc/mediatek/mtk-pmic-wrap.c | 24 +++++++++++++++++++++---
|
||||||
1 file changed, 21 insertions(+), 3 deletions(-)
|
1 file changed, 21 insertions(+), 3 deletions(-)
|
||||||
|
|
||||||
diff --git a/drivers/soc/mediatek/mtk-pmic-wrap.c b/drivers/soc/mediatek/mtk-pmic-wrap.c
|
|
||||||
index e3398e37a7a6..45c3e44d8f40 100644
|
|
||||||
--- a/drivers/soc/mediatek/mtk-pmic-wrap.c
|
--- a/drivers/soc/mediatek/mtk-pmic-wrap.c
|
||||||
+++ b/drivers/soc/mediatek/mtk-pmic-wrap.c
|
+++ b/drivers/soc/mediatek/mtk-pmic-wrap.c
|
||||||
@@ -507,6 +507,7 @@ struct pmic_wrapper;
|
@@ -507,6 +507,7 @@ struct pmic_wrapper;
|
||||||
|
@ -28,7 +26,7 @@ index e3398e37a7a6..45c3e44d8f40 100644
|
||||||
/* Flags indicating the capability for the target slave */
|
/* Flags indicating the capability for the target slave */
|
||||||
u32 caps;
|
u32 caps;
|
||||||
/*
|
/*
|
||||||
@@ -1149,7 +1150,7 @@ static irqreturn_t pwrap_interrupt(int irqno, void *dev_id)
|
@@ -1149,7 +1150,7 @@ static irqreturn_t pwrap_interrupt(int i
|
||||||
return IRQ_HANDLED;
|
return IRQ_HANDLED;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -37,7 +35,7 @@ index e3398e37a7a6..45c3e44d8f40 100644
|
||||||
.reg_bits = 16,
|
.reg_bits = 16,
|
||||||
.val_bits = 16,
|
.val_bits = 16,
|
||||||
.reg_stride = 2,
|
.reg_stride = 2,
|
||||||
@@ -1158,9 +1159,19 @@ static const struct regmap_config pwrap_regmap_config = {
|
@@ -1158,9 +1159,19 @@ static const struct regmap_config pwrap_
|
||||||
.max_register = 0xffff,
|
.max_register = 0xffff,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -57,7 +55,7 @@ index e3398e37a7a6..45c3e44d8f40 100644
|
||||||
.caps = PWRAP_SLV_CAP_SPI | PWRAP_SLV_CAP_DUALIO |
|
.caps = PWRAP_SLV_CAP_SPI | PWRAP_SLV_CAP_DUALIO |
|
||||||
PWRAP_SLV_CAP_SECURITY,
|
PWRAP_SLV_CAP_SECURITY,
|
||||||
.pwrap_read = pwrap_read16,
|
.pwrap_read = pwrap_read16,
|
||||||
@@ -1170,6 +1181,7 @@ static const struct pwrap_slv_type pmic_mt6323 = {
|
@@ -1170,6 +1181,7 @@ static const struct pwrap_slv_type pmic_
|
||||||
static const struct pwrap_slv_type pmic_mt6380 = {
|
static const struct pwrap_slv_type pmic_mt6380 = {
|
||||||
.dew_regs = NULL,
|
.dew_regs = NULL,
|
||||||
.type = PMIC_MT6380,
|
.type = PMIC_MT6380,
|
||||||
|
@ -65,7 +63,7 @@ index e3398e37a7a6..45c3e44d8f40 100644
|
||||||
.caps = 0,
|
.caps = 0,
|
||||||
.pwrap_read = pwrap_read32,
|
.pwrap_read = pwrap_read32,
|
||||||
.pwrap_write = pwrap_write32,
|
.pwrap_write = pwrap_write32,
|
||||||
@@ -1178,6 +1190,7 @@ static const struct pwrap_slv_type pmic_mt6380 = {
|
@@ -1178,6 +1190,7 @@ static const struct pwrap_slv_type pmic_
|
||||||
static const struct pwrap_slv_type pmic_mt6397 = {
|
static const struct pwrap_slv_type pmic_mt6397 = {
|
||||||
.dew_regs = mt6397_regs,
|
.dew_regs = mt6397_regs,
|
||||||
.type = PMIC_MT6397,
|
.type = PMIC_MT6397,
|
||||||
|
@ -73,7 +71,7 @@ index e3398e37a7a6..45c3e44d8f40 100644
|
||||||
.caps = PWRAP_SLV_CAP_SPI | PWRAP_SLV_CAP_DUALIO |
|
.caps = PWRAP_SLV_CAP_SPI | PWRAP_SLV_CAP_DUALIO |
|
||||||
PWRAP_SLV_CAP_SECURITY,
|
PWRAP_SLV_CAP_SECURITY,
|
||||||
.pwrap_read = pwrap_read16,
|
.pwrap_read = pwrap_read16,
|
||||||
@@ -1189,9 +1202,14 @@ static const struct of_device_id of_slave_match_tbl[] = {
|
@@ -1189,9 +1202,14 @@ static const struct of_device_id of_slav
|
||||||
.compatible = "mediatek,mt6323",
|
.compatible = "mediatek,mt6323",
|
||||||
.data = &pmic_mt6323,
|
.data = &pmic_mt6323,
|
||||||
}, {
|
}, {
|
||||||
|
@ -89,7 +87,7 @@ index e3398e37a7a6..45c3e44d8f40 100644
|
||||||
/* sentinel */
|
/* sentinel */
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
@@ -1372,7 +1390,7 @@ static int pwrap_probe(struct platform_device *pdev)
|
@@ -1372,7 +1390,7 @@ static int pwrap_probe(struct platform_d
|
||||||
if (ret)
|
if (ret)
|
||||||
goto err_out2;
|
goto err_out2;
|
||||||
|
|
||||||
|
@ -98,6 +96,3 @@ index e3398e37a7a6..45c3e44d8f40 100644
|
||||||
if (IS_ERR(wrp->regmap)) {
|
if (IS_ERR(wrp->regmap)) {
|
||||||
ret = PTR_ERR(wrp->regmap);
|
ret = PTR_ERR(wrp->regmap);
|
||||||
goto err_out2;
|
goto err_out2;
|
||||||
--
|
|
||||||
2.11.0
|
|
||||||
|
|
||||||
|
|
|
@ -17,15 +17,21 @@ Signed-off-by: Matthias Brugger <matthias.bgg@gmail.com>
|
||||||
drivers/soc/mediatek/mtk-pmic-wrap.c | 59 ++++++++++++++++++++++--------------
|
drivers/soc/mediatek/mtk-pmic-wrap.c | 59 ++++++++++++++++++++++--------------
|
||||||
1 file changed, 37 insertions(+), 22 deletions(-)
|
1 file changed, 37 insertions(+), 22 deletions(-)
|
||||||
|
|
||||||
diff --git a/drivers/soc/mediatek/mtk-pmic-wrap.c b/drivers/soc/mediatek/mtk-pmic-wrap.c
|
|
||||||
index 45c3e44d8f40..cbc3f0e82337 100644
|
|
||||||
--- a/drivers/soc/mediatek/mtk-pmic-wrap.c
|
--- a/drivers/soc/mediatek/mtk-pmic-wrap.c
|
||||||
+++ b/drivers/soc/mediatek/mtk-pmic-wrap.c
|
+++ b/drivers/soc/mediatek/mtk-pmic-wrap.c
|
||||||
@@ -827,23 +827,44 @@ static int pwrap_init_dual_io(struct pmic_wrapper *wrp)
|
@@ -827,23 +827,44 @@ static int pwrap_init_dual_io(struct pmi
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
-static int pwrap_mt8135_init_reg_clock(struct pmic_wrapper *wrp)
|
-static int pwrap_mt8135_init_reg_clock(struct pmic_wrapper *wrp)
|
||||||
|
-{
|
||||||
|
- pwrap_writel(wrp, 0x4, PWRAP_CSHEXT);
|
||||||
|
- pwrap_writel(wrp, 0x0, PWRAP_CSHEXT_WRITE);
|
||||||
|
- pwrap_writel(wrp, 0x4, PWRAP_CSHEXT_READ);
|
||||||
|
- pwrap_writel(wrp, 0x0, PWRAP_CSLEXT_START);
|
||||||
|
- pwrap_writel(wrp, 0x0, PWRAP_CSLEXT_END);
|
||||||
|
-
|
||||||
|
- return 0;
|
||||||
+/*
|
+/*
|
||||||
+ * pwrap_init_chip_select_ext is used to configure CS extension time for each
|
+ * pwrap_init_chip_select_ext is used to configure CS extension time for each
|
||||||
+ * phase during data transactions on the pwrap bus.
|
+ * phase during data transactions on the pwrap bus.
|
||||||
|
@ -33,12 +39,7 @@ index 45c3e44d8f40..cbc3f0e82337 100644
|
||||||
+static void pwrap_init_chip_select_ext(struct pmic_wrapper *wrp, u8 hext_write,
|
+static void pwrap_init_chip_select_ext(struct pmic_wrapper *wrp, u8 hext_write,
|
||||||
+ u8 hext_read, u8 lext_start,
|
+ u8 hext_read, u8 lext_start,
|
||||||
+ u8 lext_end)
|
+ u8 lext_end)
|
||||||
{
|
+{
|
||||||
- pwrap_writel(wrp, 0x4, PWRAP_CSHEXT);
|
|
||||||
- pwrap_writel(wrp, 0x0, PWRAP_CSHEXT_WRITE);
|
|
||||||
- pwrap_writel(wrp, 0x4, PWRAP_CSHEXT_READ);
|
|
||||||
- pwrap_writel(wrp, 0x0, PWRAP_CSLEXT_START);
|
|
||||||
- pwrap_writel(wrp, 0x0, PWRAP_CSLEXT_END);
|
|
||||||
+ /*
|
+ /*
|
||||||
+ * After finishing a write and read transaction, extends CS high time
|
+ * After finishing a write and read transaction, extends CS high time
|
||||||
+ * to be at least xT of BUS CLK as hext_write and hext_read specifies
|
+ * to be at least xT of BUS CLK as hext_write and hext_read specifies
|
||||||
|
@ -46,8 +47,7 @@ index 45c3e44d8f40..cbc3f0e82337 100644
|
||||||
+ */
|
+ */
|
||||||
+ pwrap_writel(wrp, hext_write, PWRAP_CSHEXT_WRITE);
|
+ pwrap_writel(wrp, hext_write, PWRAP_CSHEXT_WRITE);
|
||||||
+ pwrap_writel(wrp, hext_read, PWRAP_CSHEXT_READ);
|
+ pwrap_writel(wrp, hext_read, PWRAP_CSHEXT_READ);
|
||||||
|
+
|
||||||
- return 0;
|
|
||||||
+ /*
|
+ /*
|
||||||
+ * Extends CS low time after CSL and before CSH command to be at
|
+ * Extends CS low time after CSL and before CSH command to be at
|
||||||
+ * least xT of BUS CLK as lext_start and lext_end specifies
|
+ * least xT of BUS CLK as lext_start and lext_end specifies
|
||||||
|
@ -78,7 +78,7 @@ index 45c3e44d8f40..cbc3f0e82337 100644
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
@@ -853,20 +874,14 @@ static int pwrap_mt2701_init_reg_clock(struct pmic_wrapper *wrp)
|
@@ -853,20 +874,14 @@ static int pwrap_mt2701_init_reg_clock(s
|
||||||
switch (wrp->slave->type) {
|
switch (wrp->slave->type) {
|
||||||
case PMIC_MT6397:
|
case PMIC_MT6397:
|
||||||
pwrap_writel(wrp, 0xc, PWRAP_RDDMY);
|
pwrap_writel(wrp, 0xc, PWRAP_RDDMY);
|
||||||
|
@ -101,7 +101,7 @@ index 45c3e44d8f40..cbc3f0e82337 100644
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
@@ -1235,7 +1250,7 @@ static const struct pmic_wrapper_type pwrap_mt8135 = {
|
@@ -1235,7 +1250,7 @@ static const struct pmic_wrapper_type pw
|
||||||
.spi_w = PWRAP_MAN_CMD_SPI_WRITE,
|
.spi_w = PWRAP_MAN_CMD_SPI_WRITE,
|
||||||
.wdt_src = PWRAP_WDT_SRC_MASK_ALL,
|
.wdt_src = PWRAP_WDT_SRC_MASK_ALL,
|
||||||
.has_bridge = 1,
|
.has_bridge = 1,
|
||||||
|
@ -110,7 +110,7 @@ index 45c3e44d8f40..cbc3f0e82337 100644
|
||||||
.init_soc_specific = pwrap_mt8135_init_soc_specific,
|
.init_soc_specific = pwrap_mt8135_init_soc_specific,
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -1247,7 +1262,7 @@ static const struct pmic_wrapper_type pwrap_mt8173 = {
|
@@ -1247,7 +1262,7 @@ static const struct pmic_wrapper_type pw
|
||||||
.spi_w = PWRAP_MAN_CMD_SPI_WRITE,
|
.spi_w = PWRAP_MAN_CMD_SPI_WRITE,
|
||||||
.wdt_src = PWRAP_WDT_SRC_MASK_NO_STAUPD,
|
.wdt_src = PWRAP_WDT_SRC_MASK_NO_STAUPD,
|
||||||
.has_bridge = 0,
|
.has_bridge = 0,
|
||||||
|
@ -119,6 +119,3 @@ index 45c3e44d8f40..cbc3f0e82337 100644
|
||||||
.init_soc_specific = pwrap_mt8173_init_soc_specific,
|
.init_soc_specific = pwrap_mt8173_init_soc_specific,
|
||||||
};
|
};
|
||||||
|
|
||||||
--
|
|
||||||
2.11.0
|
|
||||||
|
|
||||||
|
|
|
@ -14,8 +14,6 @@ Signed-off-by: Matthias Brugger <matthias.bgg@gmail.com>
|
||||||
drivers/soc/mediatek/mtk-pmic-wrap.c | 170 +++++++++++++++++++++++++++++++++++
|
drivers/soc/mediatek/mtk-pmic-wrap.c | 170 +++++++++++++++++++++++++++++++++++
|
||||||
1 file changed, 170 insertions(+)
|
1 file changed, 170 insertions(+)
|
||||||
|
|
||||||
diff --git a/drivers/soc/mediatek/mtk-pmic-wrap.c b/drivers/soc/mediatek/mtk-pmic-wrap.c
|
|
||||||
index cbc3f0e82337..5d61d127e1d7 100644
|
|
||||||
--- a/drivers/soc/mediatek/mtk-pmic-wrap.c
|
--- a/drivers/soc/mediatek/mtk-pmic-wrap.c
|
||||||
+++ b/drivers/soc/mediatek/mtk-pmic-wrap.c
|
+++ b/drivers/soc/mediatek/mtk-pmic-wrap.c
|
||||||
@@ -214,6 +214,36 @@ enum pwrap_regs {
|
@@ -214,6 +214,36 @@ enum pwrap_regs {
|
||||||
|
@ -182,7 +180,7 @@ index cbc3f0e82337..5d61d127e1d7 100644
|
||||||
PWRAP_MT8135,
|
PWRAP_MT8135,
|
||||||
PWRAP_MT8173,
|
PWRAP_MT8173,
|
||||||
};
|
};
|
||||||
@@ -927,6 +1070,9 @@ static int pwrap_init_cipher(struct pmic_wrapper *wrp)
|
@@ -927,6 +1070,9 @@ static int pwrap_init_cipher(struct pmic
|
||||||
case PWRAP_MT8173:
|
case PWRAP_MT8173:
|
||||||
pwrap_writel(wrp, 1, PWRAP_CIPHER_EN);
|
pwrap_writel(wrp, 1, PWRAP_CIPHER_EN);
|
||||||
break;
|
break;
|
||||||
|
@ -192,7 +190,7 @@ index cbc3f0e82337..5d61d127e1d7 100644
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Config cipher mode @PMIC */
|
/* Config cipher mode @PMIC */
|
||||||
@@ -1071,6 +1217,15 @@ static int pwrap_mt2701_init_soc_specific(struct pmic_wrapper *wrp)
|
@@ -1071,6 +1217,15 @@ static int pwrap_mt2701_init_soc_specifi
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -208,7 +206,7 @@ index cbc3f0e82337..5d61d127e1d7 100644
|
||||||
static int pwrap_init(struct pmic_wrapper *wrp)
|
static int pwrap_init(struct pmic_wrapper *wrp)
|
||||||
{
|
{
|
||||||
int ret;
|
int ret;
|
||||||
@@ -1242,6 +1397,18 @@ static const struct pmic_wrapper_type pwrap_mt2701 = {
|
@@ -1242,6 +1397,18 @@ static const struct pmic_wrapper_type pw
|
||||||
.init_soc_specific = pwrap_mt2701_init_soc_specific,
|
.init_soc_specific = pwrap_mt2701_init_soc_specific,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -227,7 +225,7 @@ index cbc3f0e82337..5d61d127e1d7 100644
|
||||||
static const struct pmic_wrapper_type pwrap_mt8135 = {
|
static const struct pmic_wrapper_type pwrap_mt8135 = {
|
||||||
.regs = mt8135_regs,
|
.regs = mt8135_regs,
|
||||||
.type = PWRAP_MT8135,
|
.type = PWRAP_MT8135,
|
||||||
@@ -1271,6 +1438,9 @@ static const struct of_device_id of_pwrap_match_tbl[] = {
|
@@ -1271,6 +1438,9 @@ static const struct of_device_id of_pwra
|
||||||
.compatible = "mediatek,mt2701-pwrap",
|
.compatible = "mediatek,mt2701-pwrap",
|
||||||
.data = &pwrap_mt2701,
|
.data = &pwrap_mt2701,
|
||||||
}, {
|
}, {
|
||||||
|
@ -237,6 +235,3 @@ index cbc3f0e82337..5d61d127e1d7 100644
|
||||||
.compatible = "mediatek,mt8135-pwrap",
|
.compatible = "mediatek,mt8135-pwrap",
|
||||||
.data = &pwrap_mt8135,
|
.data = &pwrap_mt8135,
|
||||||
}, {
|
}, {
|
||||||
--
|
|
||||||
2.11.0
|
|
||||||
|
|
||||||
|
|
|
@ -18,8 +18,6 @@ Signed-off-by: Matthias Brugger <matthias.bgg@gmail.com>
|
||||||
drivers/soc/mediatek/Kconfig | 8 +++++---
|
drivers/soc/mediatek/Kconfig | 8 +++++---
|
||||||
1 file changed, 5 insertions(+), 3 deletions(-)
|
1 file changed, 5 insertions(+), 3 deletions(-)
|
||||||
|
|
||||||
diff --git a/drivers/soc/mediatek/Kconfig b/drivers/soc/mediatek/Kconfig
|
|
||||||
index 609bb3424c14..a7d0667338f2 100644
|
|
||||||
--- a/drivers/soc/mediatek/Kconfig
|
--- a/drivers/soc/mediatek/Kconfig
|
||||||
+++ b/drivers/soc/mediatek/Kconfig
|
+++ b/drivers/soc/mediatek/Kconfig
|
||||||
@@ -1,9 +1,11 @@
|
@@ -1,9 +1,11 @@
|
||||||
|
@ -57,6 +55,3 @@ index 609bb3424c14..a7d0667338f2 100644
|
||||||
driver.
|
driver.
|
||||||
+
|
+
|
||||||
+endmenu
|
+endmenu
|
||||||
--
|
|
||||||
2.11.0
|
|
||||||
|
|
||||||
|
|
|
@ -14,8 +14,6 @@ Signed-off-by: Matthias Brugger <matthias.bgg@gmail.com>
|
||||||
arch/arm64/Kconfig.platforms | 5 +++--
|
arch/arm64/Kconfig.platforms | 5 +++--
|
||||||
1 file changed, 3 insertions(+), 2 deletions(-)
|
1 file changed, 3 insertions(+), 2 deletions(-)
|
||||||
|
|
||||||
diff --git a/arch/arm64/Kconfig.platforms b/arch/arm64/Kconfig.platforms
|
|
||||||
index 6b54ee8c1262..ab69f5fce261 100644
|
|
||||||
--- a/arch/arm64/Kconfig.platforms
|
--- a/arch/arm64/Kconfig.platforms
|
||||||
+++ b/arch/arm64/Kconfig.platforms
|
+++ b/arch/arm64/Kconfig.platforms
|
||||||
@@ -91,12 +91,13 @@ config ARCH_HISI
|
@@ -91,12 +91,13 @@ config ARCH_HISI
|
||||||
|
@ -34,6 +32,3 @@ index 6b54ee8c1262..ab69f5fce261 100644
|
||||||
|
|
||||||
config ARCH_MESON
|
config ARCH_MESON
|
||||||
bool "Amlogic Platforms"
|
bool "Amlogic Platforms"
|
||||||
--
|
|
||||||
2.11.0
|
|
||||||
|
|
||||||
|
|
|
@ -12,8 +12,6 @@ Signed-off-by: Kishon Vijay Abraham I <kishon@ti.com>
|
||||||
drivers/phy/mediatek/phy-mtk-tphy.c | 39 +++++++++++++++++++++++++++++++++++++
|
drivers/phy/mediatek/phy-mtk-tphy.c | 39 +++++++++++++++++++++++++++++++++++++
|
||||||
1 file changed, 39 insertions(+)
|
1 file changed, 39 insertions(+)
|
||||||
|
|
||||||
diff --git a/drivers/phy/mediatek/phy-mtk-tphy.c b/drivers/phy/mediatek/phy-mtk-tphy.c
|
|
||||||
index 721a2a1c97ef..402385f2562a 100644
|
|
||||||
--- a/drivers/phy/mediatek/phy-mtk-tphy.c
|
--- a/drivers/phy/mediatek/phy-mtk-tphy.c
|
||||||
+++ b/drivers/phy/mediatek/phy-mtk-tphy.c
|
+++ b/drivers/phy/mediatek/phy-mtk-tphy.c
|
||||||
@@ -96,9 +96,11 @@
|
@@ -96,9 +96,11 @@
|
||||||
|
@ -28,7 +26,7 @@ index 721a2a1c97ef..402385f2562a 100644
|
||||||
|
|
||||||
#define U3P_U3_CHIP_GPIO_CTLD 0x0c
|
#define U3P_U3_CHIP_GPIO_CTLD 0x0c
|
||||||
#define P3C_REG_IP_SW_RST BIT(31)
|
#define P3C_REG_IP_SW_RST BIT(31)
|
||||||
@@ -585,6 +587,31 @@ static void u2_phy_instance_exit(struct mtk_tphy *tphy,
|
@@ -585,6 +587,31 @@ static void u2_phy_instance_exit(struct
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -78,7 +76,7 @@ index 721a2a1c97ef..402385f2562a 100644
|
||||||
static struct phy *mtk_phy_xlate(struct device *dev,
|
static struct phy *mtk_phy_xlate(struct device *dev,
|
||||||
struct of_phandle_args *args)
|
struct of_phandle_args *args)
|
||||||
{
|
{
|
||||||
@@ -931,6 +969,7 @@ static const struct phy_ops mtk_tphy_ops = {
|
@@ -931,6 +969,7 @@ static const struct phy_ops mtk_tphy_ops
|
||||||
.exit = mtk_phy_exit,
|
.exit = mtk_phy_exit,
|
||||||
.power_on = mtk_phy_power_on,
|
.power_on = mtk_phy_power_on,
|
||||||
.power_off = mtk_phy_power_off,
|
.power_off = mtk_phy_power_off,
|
||||||
|
@ -86,6 +84,3 @@ index 721a2a1c97ef..402385f2562a 100644
|
||||||
.owner = THIS_MODULE,
|
.owner = THIS_MODULE,
|
||||||
};
|
};
|
||||||
|
|
||||||
--
|
|
||||||
2.11.0
|
|
||||||
|
|
||||||
|
|
|
@ -14,11 +14,9 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
|
||||||
drivers/usb/host/xhci-mtk.c | 7 +------
|
drivers/usb/host/xhci-mtk.c | 7 +------
|
||||||
1 file changed, 1 insertion(+), 6 deletions(-)
|
1 file changed, 1 insertion(+), 6 deletions(-)
|
||||||
|
|
||||||
diff --git a/drivers/usb/host/xhci-mtk.c b/drivers/usb/host/xhci-mtk.c
|
|
||||||
index 8fb60657ed4f..c197a6d9e157 100644
|
|
||||||
--- a/drivers/usb/host/xhci-mtk.c
|
--- a/drivers/usb/host/xhci-mtk.c
|
||||||
+++ b/drivers/usb/host/xhci-mtk.c
|
+++ b/drivers/usb/host/xhci-mtk.c
|
||||||
@@ -606,15 +606,10 @@ static int xhci_mtk_probe(struct platform_device *pdev)
|
@@ -606,15 +606,10 @@ static int xhci_mtk_probe(struct platfor
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Initialize dma_mask and coherent_dma_mask to 32-bits */
|
/* Initialize dma_mask and coherent_dma_mask to 32-bits */
|
||||||
|
@ -35,6 +33,3 @@ index 8fb60657ed4f..c197a6d9e157 100644
|
||||||
hcd = usb_create_hcd(driver, dev, dev_name(dev));
|
hcd = usb_create_hcd(driver, dev, dev_name(dev));
|
||||||
if (!hcd) {
|
if (!hcd) {
|
||||||
ret = -ENOMEM;
|
ret = -ENOMEM;
|
||||||
--
|
|
||||||
2.11.0
|
|
||||||
|
|
||||||
|
|
|
@ -15,11 +15,9 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
|
||||||
drivers/usb/host/xhci-mtk.c | 3 ---
|
drivers/usb/host/xhci-mtk.c | 3 ---
|
||||||
2 files changed, 2 insertions(+), 4 deletions(-)
|
2 files changed, 2 insertions(+), 4 deletions(-)
|
||||||
|
|
||||||
diff --git a/drivers/usb/host/xhci-mtk-sch.c b/drivers/usb/host/xhci-mtk-sch.c
|
|
||||||
index 6e7ddf6cafae..bfc51bc902b8 100644
|
|
||||||
--- a/drivers/usb/host/xhci-mtk-sch.c
|
--- a/drivers/usb/host/xhci-mtk-sch.c
|
||||||
+++ b/drivers/usb/host/xhci-mtk-sch.c
|
+++ b/drivers/usb/host/xhci-mtk-sch.c
|
||||||
@@ -287,12 +287,13 @@ static bool need_bw_sch(struct usb_host_endpoint *ep,
|
@@ -287,12 +287,13 @@ static bool need_bw_sch(struct usb_host_
|
||||||
|
|
||||||
int xhci_mtk_sch_init(struct xhci_hcd_mtk *mtk)
|
int xhci_mtk_sch_init(struct xhci_hcd_mtk *mtk)
|
||||||
{
|
{
|
||||||
|
@ -34,11 +32,9 @@ index 6e7ddf6cafae..bfc51bc902b8 100644
|
||||||
|
|
||||||
sch_array = kcalloc(num_usb_bus, sizeof(*sch_array), GFP_KERNEL);
|
sch_array = kcalloc(num_usb_bus, sizeof(*sch_array), GFP_KERNEL);
|
||||||
if (sch_array == NULL)
|
if (sch_array == NULL)
|
||||||
diff --git a/drivers/usb/host/xhci-mtk.c b/drivers/usb/host/xhci-mtk.c
|
|
||||||
index c197a6d9e157..9502ca408f01 100644
|
|
||||||
--- a/drivers/usb/host/xhci-mtk.c
|
--- a/drivers/usb/host/xhci-mtk.c
|
||||||
+++ b/drivers/usb/host/xhci-mtk.c
|
+++ b/drivers/usb/host/xhci-mtk.c
|
||||||
@@ -492,7 +492,6 @@ static void xhci_mtk_quirks(struct device *dev, struct xhci_hcd *xhci)
|
@@ -492,7 +492,6 @@ static void xhci_mtk_quirks(struct devic
|
||||||
/* called during probe() after chip reset completes */
|
/* called during probe() after chip reset completes */
|
||||||
static int xhci_mtk_setup(struct usb_hcd *hcd)
|
static int xhci_mtk_setup(struct usb_hcd *hcd)
|
||||||
{
|
{
|
||||||
|
@ -46,7 +42,7 @@ index c197a6d9e157..9502ca408f01 100644
|
||||||
struct xhci_hcd_mtk *mtk = hcd_to_mtk(hcd);
|
struct xhci_hcd_mtk *mtk = hcd_to_mtk(hcd);
|
||||||
int ret;
|
int ret;
|
||||||
|
|
||||||
@@ -507,8 +506,6 @@ static int xhci_mtk_setup(struct usb_hcd *hcd)
|
@@ -507,8 +506,6 @@ static int xhci_mtk_setup(struct usb_hcd
|
||||||
return ret;
|
return ret;
|
||||||
|
|
||||||
if (usb_hcd_is_primary_hcd(hcd)) {
|
if (usb_hcd_is_primary_hcd(hcd)) {
|
||||||
|
@ -55,6 +51,3 @@ index c197a6d9e157..9502ca408f01 100644
|
||||||
ret = xhci_mtk_sch_init(mtk);
|
ret = xhci_mtk_sch_init(mtk);
|
||||||
if (ret)
|
if (ret)
|
||||||
return ret;
|
return ret;
|
||||||
--
|
|
||||||
2.11.0
|
|
||||||
|
|
||||||
|
|
|
@ -14,8 +14,6 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
|
||||||
drivers/usb/host/xhci-mtk.c | 4 ++++
|
drivers/usb/host/xhci-mtk.c | 4 ++++
|
||||||
1 file changed, 4 insertions(+)
|
1 file changed, 4 insertions(+)
|
||||||
|
|
||||||
diff --git a/drivers/usb/host/xhci-mtk.c b/drivers/usb/host/xhci-mtk.c
|
|
||||||
index 9502ca408f01..7a92bb782e5c 100644
|
|
||||||
--- a/drivers/usb/host/xhci-mtk.c
|
--- a/drivers/usb/host/xhci-mtk.c
|
||||||
+++ b/drivers/usb/host/xhci-mtk.c
|
+++ b/drivers/usb/host/xhci-mtk.c
|
||||||
@@ -43,6 +43,7 @@
|
@@ -43,6 +43,7 @@
|
||||||
|
@ -26,7 +24,7 @@ index 9502ca408f01..7a92bb782e5c 100644
|
||||||
#define STS1_XHCI_RST BIT(11)
|
#define STS1_XHCI_RST BIT(11)
|
||||||
#define STS1_SYS125_RST BIT(10)
|
#define STS1_SYS125_RST BIT(10)
|
||||||
#define STS1_REF_RST BIT(8)
|
#define STS1_REF_RST BIT(8)
|
||||||
@@ -125,6 +126,9 @@ static int xhci_mtk_host_enable(struct xhci_hcd_mtk *mtk)
|
@@ -125,6 +126,9 @@ static int xhci_mtk_host_enable(struct x
|
||||||
check_val = STS1_SYSPLL_STABLE | STS1_REF_RST |
|
check_val = STS1_SYSPLL_STABLE | STS1_REF_RST |
|
||||||
STS1_SYS125_RST | STS1_XHCI_RST;
|
STS1_SYS125_RST | STS1_XHCI_RST;
|
||||||
|
|
||||||
|
@ -36,6 +34,3 @@ index 9502ca408f01..7a92bb782e5c 100644
|
||||||
ret = readl_poll_timeout(&ippc->ip_pw_sts1, value,
|
ret = readl_poll_timeout(&ippc->ip_pw_sts1, value,
|
||||||
(check_val == (value & check_val)), 100, 20000);
|
(check_val == (value & check_val)), 100, 20000);
|
||||||
if (ret) {
|
if (ret) {
|
||||||
--
|
|
||||||
2.11.0
|
|
||||||
|
|
||||||
|
|
|
@ -16,11 +16,9 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
|
||||||
drivers/usb/host/xhci-mtk.h | 1 +
|
drivers/usb/host/xhci-mtk.h | 1 +
|
||||||
2 files changed, 16 insertions(+), 3 deletions(-)
|
2 files changed, 16 insertions(+), 3 deletions(-)
|
||||||
|
|
||||||
diff --git a/drivers/usb/host/xhci-mtk.c b/drivers/usb/host/xhci-mtk.c
|
|
||||||
index 7a92bb782e5c..97ba51e4e149 100644
|
|
||||||
--- a/drivers/usb/host/xhci-mtk.c
|
--- a/drivers/usb/host/xhci-mtk.c
|
||||||
+++ b/drivers/usb/host/xhci-mtk.c
|
+++ b/drivers/usb/host/xhci-mtk.c
|
||||||
@@ -92,6 +92,7 @@ static int xhci_mtk_host_enable(struct xhci_hcd_mtk *mtk)
|
@@ -92,6 +92,7 @@ static int xhci_mtk_host_enable(struct x
|
||||||
{
|
{
|
||||||
struct mu3c_ippc_regs __iomem *ippc = mtk->ippc_regs;
|
struct mu3c_ippc_regs __iomem *ippc = mtk->ippc_regs;
|
||||||
u32 value, check_val;
|
u32 value, check_val;
|
||||||
|
@ -28,7 +26,7 @@ index 7a92bb782e5c..97ba51e4e149 100644
|
||||||
int ret;
|
int ret;
|
||||||
int i;
|
int i;
|
||||||
|
|
||||||
@@ -103,8 +104,13 @@ static int xhci_mtk_host_enable(struct xhci_hcd_mtk *mtk)
|
@@ -103,8 +104,13 @@ static int xhci_mtk_host_enable(struct x
|
||||||
value &= ~CTRL1_IP_HOST_PDN;
|
value &= ~CTRL1_IP_HOST_PDN;
|
||||||
writel(value, &ippc->ip_pw_ctr1);
|
writel(value, &ippc->ip_pw_ctr1);
|
||||||
|
|
||||||
|
@ -43,7 +41,7 @@ index 7a92bb782e5c..97ba51e4e149 100644
|
||||||
value = readl(&ippc->u3_ctrl_p[i]);
|
value = readl(&ippc->u3_ctrl_p[i]);
|
||||||
value &= ~(CTRL_U3_PORT_PDN | CTRL_U3_PORT_DIS);
|
value &= ~(CTRL_U3_PORT_PDN | CTRL_U3_PORT_DIS);
|
||||||
value |= CTRL_U3_PORT_HOST_SEL;
|
value |= CTRL_U3_PORT_HOST_SEL;
|
||||||
@@ -126,7 +132,7 @@ static int xhci_mtk_host_enable(struct xhci_hcd_mtk *mtk)
|
@@ -126,7 +132,7 @@ static int xhci_mtk_host_enable(struct x
|
||||||
check_val = STS1_SYSPLL_STABLE | STS1_REF_RST |
|
check_val = STS1_SYSPLL_STABLE | STS1_REF_RST |
|
||||||
STS1_SYS125_RST | STS1_XHCI_RST;
|
STS1_SYS125_RST | STS1_XHCI_RST;
|
||||||
|
|
||||||
|
@ -52,7 +50,7 @@ index 7a92bb782e5c..97ba51e4e149 100644
|
||||||
check_val |= STS1_U3_MAC_RST;
|
check_val |= STS1_U3_MAC_RST;
|
||||||
|
|
||||||
ret = readl_poll_timeout(&ippc->ip_pw_sts1, value,
|
ret = readl_poll_timeout(&ippc->ip_pw_sts1, value,
|
||||||
@@ -149,8 +155,11 @@ static int xhci_mtk_host_disable(struct xhci_hcd_mtk *mtk)
|
@@ -149,8 +155,11 @@ static int xhci_mtk_host_disable(struct
|
||||||
if (!mtk->has_ippc)
|
if (!mtk->has_ippc)
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
|
@ -65,7 +63,7 @@ index 7a92bb782e5c..97ba51e4e149 100644
|
||||||
value = readl(&ippc->u3_ctrl_p[i]);
|
value = readl(&ippc->u3_ctrl_p[i]);
|
||||||
value |= CTRL_U3_PORT_PDN;
|
value |= CTRL_U3_PORT_PDN;
|
||||||
writel(value, &ippc->u3_ctrl_p[i]);
|
writel(value, &ippc->u3_ctrl_p[i]);
|
||||||
@@ -573,6 +582,9 @@ static int xhci_mtk_probe(struct platform_device *pdev)
|
@@ -573,6 +582,9 @@ static int xhci_mtk_probe(struct platfor
|
||||||
}
|
}
|
||||||
|
|
||||||
mtk->lpm_support = of_property_read_bool(node, "usb3-lpm-capable");
|
mtk->lpm_support = of_property_read_bool(node, "usb3-lpm-capable");
|
||||||
|
@ -75,8 +73,6 @@ index 7a92bb782e5c..97ba51e4e149 100644
|
||||||
|
|
||||||
ret = usb_wakeup_of_property_parse(mtk, node);
|
ret = usb_wakeup_of_property_parse(mtk, node);
|
||||||
if (ret)
|
if (ret)
|
||||||
diff --git a/drivers/usb/host/xhci-mtk.h b/drivers/usb/host/xhci-mtk.h
|
|
||||||
index 3aa5e1d25064..db55a12f1585 100644
|
|
||||||
--- a/drivers/usb/host/xhci-mtk.h
|
--- a/drivers/usb/host/xhci-mtk.h
|
||||||
+++ b/drivers/usb/host/xhci-mtk.h
|
+++ b/drivers/usb/host/xhci-mtk.h
|
||||||
@@ -121,6 +121,7 @@ struct xhci_hcd_mtk {
|
@@ -121,6 +121,7 @@ struct xhci_hcd_mtk {
|
||||||
|
@ -87,6 +83,3 @@ index 3aa5e1d25064..db55a12f1585 100644
|
||||||
struct regulator *vusb33;
|
struct regulator *vusb33;
|
||||||
struct regulator *vbus;
|
struct regulator *vbus;
|
||||||
struct clk *sys_clk; /* sys and mac clock */
|
struct clk *sys_clk; /* sys and mac clock */
|
||||||
--
|
|
||||||
2.11.0
|
|
||||||
|
|
||||||
|
|
|
@ -15,11 +15,9 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
|
||||||
drivers/usb/host/xhci-mtk.h | 2 --
|
drivers/usb/host/xhci-mtk.h | 2 --
|
||||||
2 files changed, 35 deletions(-)
|
2 files changed, 35 deletions(-)
|
||||||
|
|
||||||
diff --git a/drivers/usb/host/xhci-mtk.c b/drivers/usb/host/xhci-mtk.c
|
|
||||||
index 97ba51e4e149..d60463c07c54 100644
|
|
||||||
--- a/drivers/usb/host/xhci-mtk.c
|
--- a/drivers/usb/host/xhci-mtk.c
|
||||||
+++ b/drivers/usb/host/xhci-mtk.c
|
+++ b/drivers/usb/host/xhci-mtk.c
|
||||||
@@ -237,25 +237,8 @@ static int xhci_mtk_clks_enable(struct xhci_hcd_mtk *mtk)
|
@@ -237,25 +237,8 @@ static int xhci_mtk_clks_enable(struct x
|
||||||
goto sys_clk_err;
|
goto sys_clk_err;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -45,7 +43,7 @@ index 97ba51e4e149..d60463c07c54 100644
|
||||||
sys_clk_err:
|
sys_clk_err:
|
||||||
clk_disable_unprepare(mtk->ref_clk);
|
clk_disable_unprepare(mtk->ref_clk);
|
||||||
ref_clk_err:
|
ref_clk_err:
|
||||||
@@ -264,10 +247,6 @@ static int xhci_mtk_clks_enable(struct xhci_hcd_mtk *mtk)
|
@@ -264,10 +247,6 @@ ref_clk_err:
|
||||||
|
|
||||||
static void xhci_mtk_clks_disable(struct xhci_hcd_mtk *mtk)
|
static void xhci_mtk_clks_disable(struct xhci_hcd_mtk *mtk)
|
||||||
{
|
{
|
||||||
|
@ -56,7 +54,7 @@ index 97ba51e4e149..d60463c07c54 100644
|
||||||
clk_disable_unprepare(mtk->sys_clk);
|
clk_disable_unprepare(mtk->sys_clk);
|
||||||
clk_disable_unprepare(mtk->ref_clk);
|
clk_disable_unprepare(mtk->ref_clk);
|
||||||
}
|
}
|
||||||
@@ -371,18 +350,6 @@ static int usb_wakeup_of_property_parse(struct xhci_hcd_mtk *mtk,
|
@@ -371,18 +350,6 @@ static int usb_wakeup_of_property_parse(
|
||||||
if (!mtk->wakeup_src)
|
if (!mtk->wakeup_src)
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
|
@ -75,8 +73,6 @@ index 97ba51e4e149..d60463c07c54 100644
|
||||||
mtk->pericfg = syscon_regmap_lookup_by_phandle(dn,
|
mtk->pericfg = syscon_regmap_lookup_by_phandle(dn,
|
||||||
"mediatek,syscon-wakeup");
|
"mediatek,syscon-wakeup");
|
||||||
if (IS_ERR(mtk->pericfg)) {
|
if (IS_ERR(mtk->pericfg)) {
|
||||||
diff --git a/drivers/usb/host/xhci-mtk.h b/drivers/usb/host/xhci-mtk.h
|
|
||||||
index db55a12f1585..67783a7af509 100644
|
|
||||||
--- a/drivers/usb/host/xhci-mtk.h
|
--- a/drivers/usb/host/xhci-mtk.h
|
||||||
+++ b/drivers/usb/host/xhci-mtk.h
|
+++ b/drivers/usb/host/xhci-mtk.h
|
||||||
@@ -126,8 +126,6 @@ struct xhci_hcd_mtk {
|
@@ -126,8 +126,6 @@ struct xhci_hcd_mtk {
|
||||||
|
@ -88,6 +84,3 @@ index db55a12f1585..67783a7af509 100644
|
||||||
struct regmap *pericfg;
|
struct regmap *pericfg;
|
||||||
struct phy **phys;
|
struct phy **phys;
|
||||||
int num_phys;
|
int num_phys;
|
||||||
--
|
|
||||||
2.11.0
|
|
||||||
|
|
||||||
|
|
|
@ -15,11 +15,9 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
|
||||||
drivers/usb/host/xhci-mtk.h | 2 ++
|
drivers/usb/host/xhci-mtk.h | 2 ++
|
||||||
2 files changed, 62 insertions(+), 19 deletions(-)
|
2 files changed, 62 insertions(+), 19 deletions(-)
|
||||||
|
|
||||||
diff --git a/drivers/usb/host/xhci-mtk.c b/drivers/usb/host/xhci-mtk.c
|
|
||||||
index d60463c07c54..e5caabe7eebe 100644
|
|
||||||
--- a/drivers/usb/host/xhci-mtk.c
|
--- a/drivers/usb/host/xhci-mtk.c
|
||||||
+++ b/drivers/usb/host/xhci-mtk.c
|
+++ b/drivers/usb/host/xhci-mtk.c
|
||||||
@@ -221,6 +221,44 @@ static int xhci_mtk_ssusb_config(struct xhci_hcd_mtk *mtk)
|
@@ -221,6 +221,44 @@ static int xhci_mtk_ssusb_config(struct
|
||||||
return xhci_mtk_host_enable(mtk);
|
return xhci_mtk_host_enable(mtk);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -64,7 +62,7 @@ index d60463c07c54..e5caabe7eebe 100644
|
||||||
static int xhci_mtk_clks_enable(struct xhci_hcd_mtk *mtk)
|
static int xhci_mtk_clks_enable(struct xhci_hcd_mtk *mtk)
|
||||||
{
|
{
|
||||||
int ret;
|
int ret;
|
||||||
@@ -237,16 +275,34 @@ static int xhci_mtk_clks_enable(struct xhci_hcd_mtk *mtk)
|
@@ -237,16 +275,34 @@ static int xhci_mtk_clks_enable(struct x
|
||||||
goto sys_clk_err;
|
goto sys_clk_err;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -100,7 +98,7 @@ index d60463c07c54..e5caabe7eebe 100644
|
||||||
clk_disable_unprepare(mtk->sys_clk);
|
clk_disable_unprepare(mtk->sys_clk);
|
||||||
clk_disable_unprepare(mtk->ref_clk);
|
clk_disable_unprepare(mtk->ref_clk);
|
||||||
}
|
}
|
||||||
@@ -529,24 +585,9 @@ static int xhci_mtk_probe(struct platform_device *pdev)
|
@@ -529,24 +585,9 @@ static int xhci_mtk_probe(struct platfor
|
||||||
return PTR_ERR(mtk->vusb33);
|
return PTR_ERR(mtk->vusb33);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -128,8 +126,6 @@ index d60463c07c54..e5caabe7eebe 100644
|
||||||
|
|
||||||
mtk->lpm_support = of_property_read_bool(node, "usb3-lpm-capable");
|
mtk->lpm_support = of_property_read_bool(node, "usb3-lpm-capable");
|
||||||
/* optional property, ignore the error if it does not exist */
|
/* optional property, ignore the error if it does not exist */
|
||||||
diff --git a/drivers/usb/host/xhci-mtk.h b/drivers/usb/host/xhci-mtk.h
|
|
||||||
index 67783a7af509..45ff5c67efb5 100644
|
|
||||||
--- a/drivers/usb/host/xhci-mtk.h
|
--- a/drivers/usb/host/xhci-mtk.h
|
||||||
+++ b/drivers/usb/host/xhci-mtk.h
|
+++ b/drivers/usb/host/xhci-mtk.h
|
||||||
@@ -126,6 +126,8 @@ struct xhci_hcd_mtk {
|
@@ -126,6 +126,8 @@ struct xhci_hcd_mtk {
|
||||||
|
@ -141,6 +137,3 @@ index 67783a7af509..45ff5c67efb5 100644
|
||||||
struct regmap *pericfg;
|
struct regmap *pericfg;
|
||||||
struct phy **phys;
|
struct phy **phys;
|
||||||
int num_phys;
|
int num_phys;
|
||||||
--
|
|
||||||
2.11.0
|
|
||||||
|
|
||||||
|
|
|
@ -13,8 +13,6 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
|
||||||
drivers/usb/host/Kconfig | 4 ++--
|
drivers/usb/host/Kconfig | 4 ++--
|
||||||
1 file changed, 2 insertions(+), 2 deletions(-)
|
1 file changed, 2 insertions(+), 2 deletions(-)
|
||||||
|
|
||||||
diff --git a/drivers/usb/host/Kconfig b/drivers/usb/host/Kconfig
|
|
||||||
index fa5692dec832..bc09a2e4faeb 100644
|
|
||||||
--- a/drivers/usb/host/Kconfig
|
--- a/drivers/usb/host/Kconfig
|
||||||
+++ b/drivers/usb/host/Kconfig
|
+++ b/drivers/usb/host/Kconfig
|
||||||
@@ -45,12 +45,12 @@ config USB_XHCI_PLATFORM
|
@@ -45,12 +45,12 @@ config USB_XHCI_PLATFORM
|
||||||
|
@ -32,6 +30,3 @@ index fa5692dec832..bc09a2e4faeb 100644
|
||||||
If unsure, say N.
|
If unsure, say N.
|
||||||
|
|
||||||
config USB_XHCI_MVEBU
|
config USB_XHCI_MVEBU
|
||||||
--
|
|
||||||
2.11.0
|
|
||||||
|
|
||||||
|
|
|
@ -12,8 +12,6 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
|
||||||
Documentation/devicetree/bindings/usb/mediatek,mtk-xhci.txt | 2 ++
|
Documentation/devicetree/bindings/usb/mediatek,mtk-xhci.txt | 2 ++
|
||||||
1 file changed, 2 insertions(+)
|
1 file changed, 2 insertions(+)
|
||||||
|
|
||||||
diff --git a/Documentation/devicetree/bindings/usb/mediatek,mtk-xhci.txt b/Documentation/devicetree/bindings/usb/mediatek,mtk-xhci.txt
|
|
||||||
index 5611a2e4ddf0..2d9b459bd890 100644
|
|
||||||
--- a/Documentation/devicetree/bindings/usb/mediatek,mtk-xhci.txt
|
--- a/Documentation/devicetree/bindings/usb/mediatek,mtk-xhci.txt
|
||||||
+++ b/Documentation/devicetree/bindings/usb/mediatek,mtk-xhci.txt
|
+++ b/Documentation/devicetree/bindings/usb/mediatek,mtk-xhci.txt
|
||||||
@@ -38,6 +38,8 @@ Optional properties:
|
@@ -38,6 +38,8 @@ Optional properties:
|
||||||
|
@ -25,6 +23,3 @@ index 5611a2e4ddf0..2d9b459bd890 100644
|
||||||
- vbus-supply : reference to the VBUS regulator;
|
- vbus-supply : reference to the VBUS regulator;
|
||||||
- usb3-lpm-capable : supports USB3.0 LPM
|
- usb3-lpm-capable : supports USB3.0 LPM
|
||||||
- pinctrl-names : a pinctrl state named "default" must be defined
|
- pinctrl-names : a pinctrl state named "default" must be defined
|
||||||
--
|
|
||||||
2.11.0
|
|
||||||
|
|
||||||
|
|
|
@ -15,8 +15,6 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
|
||||||
.../devicetree/bindings/usb/mediatek,mtk-xhci.txt | 18 ++++++++----------
|
.../devicetree/bindings/usb/mediatek,mtk-xhci.txt | 18 ++++++++----------
|
||||||
1 file changed, 8 insertions(+), 10 deletions(-)
|
1 file changed, 8 insertions(+), 10 deletions(-)
|
||||||
|
|
||||||
diff --git a/Documentation/devicetree/bindings/usb/mediatek,mtk-xhci.txt b/Documentation/devicetree/bindings/usb/mediatek,mtk-xhci.txt
|
|
||||||
index 2d9b459bd890..30595964876a 100644
|
|
||||||
--- a/Documentation/devicetree/bindings/usb/mediatek,mtk-xhci.txt
|
--- a/Documentation/devicetree/bindings/usb/mediatek,mtk-xhci.txt
|
||||||
+++ b/Documentation/devicetree/bindings/usb/mediatek,mtk-xhci.txt
|
+++ b/Documentation/devicetree/bindings/usb/mediatek,mtk-xhci.txt
|
||||||
@@ -26,10 +26,11 @@ Required properties:
|
@@ -26,10 +26,11 @@ Required properties:
|
||||||
|
@ -58,6 +56,3 @@ index 2d9b459bd890..30595964876a 100644
|
||||||
|
|
||||||
Optional properties:
|
Optional properties:
|
||||||
- vbus-supply : reference to the VBUS regulator;
|
- vbus-supply : reference to the VBUS regulator;
|
||||||
--
|
|
||||||
2.11.0
|
|
||||||
|
|
||||||
|
|
|
@ -15,8 +15,6 @@ Signed-off-by: Cyrille Pitchen <cyrille.pitchen@wedev4u.fr>
|
||||||
Documentation/devicetree/bindings/mtd/mtk-quadspi.txt | 15 +++++++++------
|
Documentation/devicetree/bindings/mtd/mtk-quadspi.txt | 15 +++++++++------
|
||||||
1 file changed, 9 insertions(+), 6 deletions(-)
|
1 file changed, 9 insertions(+), 6 deletions(-)
|
||||||
|
|
||||||
diff --git a/Documentation/devicetree/bindings/mtd/mtk-quadspi.txt b/Documentation/devicetree/bindings/mtd/mtk-quadspi.txt
|
|
||||||
index 840f9405dcf0..56d3668e2c50 100644
|
|
||||||
--- a/Documentation/devicetree/bindings/mtd/mtk-quadspi.txt
|
--- a/Documentation/devicetree/bindings/mtd/mtk-quadspi.txt
|
||||||
+++ b/Documentation/devicetree/bindings/mtd/mtk-quadspi.txt
|
+++ b/Documentation/devicetree/bindings/mtd/mtk-quadspi.txt
|
||||||
@@ -1,13 +1,16 @@
|
@@ -1,13 +1,16 @@
|
||||||
|
@ -42,6 +40,3 @@ index 840f9405dcf0..56d3668e2c50 100644
|
||||||
- reg: physical base address and length of the controller's register
|
- reg: physical base address and length of the controller's register
|
||||||
- clocks: the phandle of the clocks needed by the nor controller
|
- clocks: the phandle of the clocks needed by the nor controller
|
||||||
- clock-names: the names of the clocks
|
- clock-names: the names of the clocks
|
||||||
--
|
|
||||||
2.11.0
|
|
||||||
|
|
||||||
|
|
|
@ -13,11 +13,9 @@ Signed-off-by: Cyrille Pitchen <cyrille.pitchen@wedev4u.fr>
|
||||||
drivers/mtd/spi-nor/mtk-quadspi.c | 70 ++++++++++++++++++++++++++++++++-------
|
drivers/mtd/spi-nor/mtk-quadspi.c | 70 ++++++++++++++++++++++++++++++++-------
|
||||||
1 file changed, 58 insertions(+), 12 deletions(-)
|
1 file changed, 58 insertions(+), 12 deletions(-)
|
||||||
|
|
||||||
diff --git a/drivers/mtd/spi-nor/mtk-quadspi.c b/drivers/mtd/spi-nor/mtk-quadspi.c
|
|
||||||
index c258c7adf1c5..abe455ccd68b 100644
|
|
||||||
--- a/drivers/mtd/spi-nor/mtk-quadspi.c
|
--- a/drivers/mtd/spi-nor/mtk-quadspi.c
|
||||||
+++ b/drivers/mtd/spi-nor/mtk-quadspi.c
|
+++ b/drivers/mtd/spi-nor/mtk-quadspi.c
|
||||||
@@ -404,6 +404,29 @@ static int mt8173_nor_write_reg(struct spi_nor *nor, u8 opcode, u8 *buf,
|
@@ -404,6 +404,29 @@ static int mt8173_nor_write_reg(struct s
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -47,7 +45,7 @@ index c258c7adf1c5..abe455ccd68b 100644
|
||||||
static int mtk_nor_init(struct mt8173_nor *mt8173_nor,
|
static int mtk_nor_init(struct mt8173_nor *mt8173_nor,
|
||||||
struct device_node *flash_node)
|
struct device_node *flash_node)
|
||||||
{
|
{
|
||||||
@@ -468,15 +491,11 @@ static int mtk_nor_drv_probe(struct platform_device *pdev)
|
@@ -468,15 +491,11 @@ static int mtk_nor_drv_probe(struct plat
|
||||||
return PTR_ERR(mt8173_nor->nor_clk);
|
return PTR_ERR(mt8173_nor->nor_clk);
|
||||||
|
|
||||||
mt8173_nor->dev = &pdev->dev;
|
mt8173_nor->dev = &pdev->dev;
|
||||||
|
@ -65,7 +63,7 @@ index c258c7adf1c5..abe455ccd68b 100644
|
||||||
/* only support one attached flash */
|
/* only support one attached flash */
|
||||||
flash_np = of_get_next_available_child(pdev->dev.of_node, NULL);
|
flash_np = of_get_next_available_child(pdev->dev.of_node, NULL);
|
||||||
if (!flash_np) {
|
if (!flash_np) {
|
||||||
@@ -487,10 +506,9 @@ static int mtk_nor_drv_probe(struct platform_device *pdev)
|
@@ -487,10 +506,9 @@ static int mtk_nor_drv_probe(struct plat
|
||||||
ret = mtk_nor_init(mt8173_nor, flash_np);
|
ret = mtk_nor_init(mt8173_nor, flash_np);
|
||||||
|
|
||||||
nor_free:
|
nor_free:
|
||||||
|
@ -79,7 +77,7 @@ index c258c7adf1c5..abe455ccd68b 100644
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -498,11 +516,38 @@ static int mtk_nor_drv_remove(struct platform_device *pdev)
|
@@ -498,11 +516,38 @@ static int mtk_nor_drv_remove(struct pla
|
||||||
{
|
{
|
||||||
struct mt8173_nor *mt8173_nor = platform_get_drvdata(pdev);
|
struct mt8173_nor *mt8173_nor = platform_get_drvdata(pdev);
|
||||||
|
|
||||||
|
@ -120,7 +118,7 @@ index c258c7adf1c5..abe455ccd68b 100644
|
||||||
static const struct of_device_id mtk_nor_of_ids[] = {
|
static const struct of_device_id mtk_nor_of_ids[] = {
|
||||||
{ .compatible = "mediatek,mt8173-nor"},
|
{ .compatible = "mediatek,mt8173-nor"},
|
||||||
{ /* sentinel */ }
|
{ /* sentinel */ }
|
||||||
@@ -514,6 +559,7 @@ static struct platform_driver mtk_nor_driver = {
|
@@ -514,6 +559,7 @@ static struct platform_driver mtk_nor_dr
|
||||||
.remove = mtk_nor_drv_remove,
|
.remove = mtk_nor_drv_remove,
|
||||||
.driver = {
|
.driver = {
|
||||||
.name = "mtk-nor",
|
.name = "mtk-nor",
|
||||||
|
@ -128,6 +126,3 @@ index c258c7adf1c5..abe455ccd68b 100644
|
||||||
.of_match_table = mtk_nor_of_ids,
|
.of_match_table = mtk_nor_of_ids,
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
--
|
|
||||||
2.11.0
|
|
||||||
|
|
||||||
|
|
|
@ -15,9 +15,6 @@ Signed-off-by: Alexandre Belloni <alexandre.belloni@free-electrons.com>
|
||||||
1 file changed, 21 insertions(+)
|
1 file changed, 21 insertions(+)
|
||||||
create mode 100644 Documentation/devicetree/bindings/rtc/rtc-mt7622.txt
|
create mode 100644 Documentation/devicetree/bindings/rtc/rtc-mt7622.txt
|
||||||
|
|
||||||
diff --git a/Documentation/devicetree/bindings/rtc/rtc-mt7622.txt b/Documentation/devicetree/bindings/rtc/rtc-mt7622.txt
|
|
||||||
new file mode 100644
|
|
||||||
index 000000000000..09fe8f51476f
|
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ b/Documentation/devicetree/bindings/rtc/rtc-mt7622.txt
|
+++ b/Documentation/devicetree/bindings/rtc/rtc-mt7622.txt
|
||||||
@@ -0,0 +1,21 @@
|
@@ -0,0 +1,21 @@
|
||||||
|
@ -42,6 +39,3 @@ index 000000000000..09fe8f51476f
|
||||||
+ clocks = <&topckgen CLK_TOP_RTC>;
|
+ clocks = <&topckgen CLK_TOP_RTC>;
|
||||||
+ clock-names = "rtc";
|
+ clock-names = "rtc";
|
||||||
+};
|
+};
|
||||||
--
|
|
||||||
2.11.0
|
|
||||||
|
|
||||||
|
|
|
@ -15,8 +15,6 @@ Signed-off-by: Alexandre Belloni <alexandre.belloni@free-electrons.com>
|
||||||
3 files changed, 433 insertions(+)
|
3 files changed, 433 insertions(+)
|
||||||
create mode 100644 drivers/rtc/rtc-mt7622.c
|
create mode 100644 drivers/rtc/rtc-mt7622.c
|
||||||
|
|
||||||
diff --git a/drivers/rtc/Kconfig b/drivers/rtc/Kconfig
|
|
||||||
index e0e58f3b1420..322752ebc5a7 100644
|
|
||||||
--- a/drivers/rtc/Kconfig
|
--- a/drivers/rtc/Kconfig
|
||||||
+++ b/drivers/rtc/Kconfig
|
+++ b/drivers/rtc/Kconfig
|
||||||
@@ -1715,6 +1715,16 @@ config RTC_DRV_MT6397
|
@@ -1715,6 +1715,16 @@ config RTC_DRV_MT6397
|
||||||
|
@ -36,11 +34,9 @@ index e0e58f3b1420..322752ebc5a7 100644
|
||||||
config RTC_DRV_XGENE
|
config RTC_DRV_XGENE
|
||||||
tristate "APM X-Gene RTC"
|
tristate "APM X-Gene RTC"
|
||||||
depends on HAS_IOMEM
|
depends on HAS_IOMEM
|
||||||
diff --git a/drivers/rtc/Makefile b/drivers/rtc/Makefile
|
|
||||||
index 7230014c92af..5ec891a81f4f 100644
|
|
||||||
--- a/drivers/rtc/Makefile
|
--- a/drivers/rtc/Makefile
|
||||||
+++ b/drivers/rtc/Makefile
|
+++ b/drivers/rtc/Makefile
|
||||||
@@ -102,6 +102,7 @@ obj-$(CONFIG_RTC_DRV_MPC5121) += rtc-mpc5121.o
|
@@ -103,6 +103,7 @@ obj-$(CONFIG_RTC_DRV_MPC5121) += rtc-mpc
|
||||||
obj-$(CONFIG_RTC_DRV_VRTC) += rtc-mrst.o
|
obj-$(CONFIG_RTC_DRV_VRTC) += rtc-mrst.o
|
||||||
obj-$(CONFIG_RTC_DRV_MSM6242) += rtc-msm6242.o
|
obj-$(CONFIG_RTC_DRV_MSM6242) += rtc-msm6242.o
|
||||||
obj-$(CONFIG_RTC_DRV_MT6397) += rtc-mt6397.o
|
obj-$(CONFIG_RTC_DRV_MT6397) += rtc-mt6397.o
|
||||||
|
@ -48,9 +44,6 @@ index 7230014c92af..5ec891a81f4f 100644
|
||||||
obj-$(CONFIG_RTC_DRV_MV) += rtc-mv.o
|
obj-$(CONFIG_RTC_DRV_MV) += rtc-mv.o
|
||||||
obj-$(CONFIG_RTC_DRV_MXC) += rtc-mxc.o
|
obj-$(CONFIG_RTC_DRV_MXC) += rtc-mxc.o
|
||||||
obj-$(CONFIG_RTC_DRV_NUC900) += rtc-nuc900.o
|
obj-$(CONFIG_RTC_DRV_NUC900) += rtc-nuc900.o
|
||||||
diff --git a/drivers/rtc/rtc-mt7622.c b/drivers/rtc/rtc-mt7622.c
|
|
||||||
new file mode 100644
|
|
||||||
index 000000000000..d79b9ae4d237
|
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ b/drivers/rtc/rtc-mt7622.c
|
+++ b/drivers/rtc/rtc-mt7622.c
|
||||||
@@ -0,0 +1,422 @@
|
@@ -0,0 +1,422 @@
|
||||||
|
@ -476,6 +469,3 @@ index 000000000000..d79b9ae4d237
|
||||||
+MODULE_DESCRIPTION("MediaTek SoC based RTC Driver");
|
+MODULE_DESCRIPTION("MediaTek SoC based RTC Driver");
|
||||||
+MODULE_AUTHOR("Sean Wang <sean.wang@mediatek.com>");
|
+MODULE_AUTHOR("Sean Wang <sean.wang@mediatek.com>");
|
||||||
+MODULE_LICENSE("GPL");
|
+MODULE_LICENSE("GPL");
|
||||||
--
|
|
||||||
2.11.0
|
|
||||||
|
|
||||||
|
|
|
@ -16,8 +16,6 @@ Signed-off-by: Alexandre Belloni <alexandre.belloni@free-electrons.com>
|
||||||
drivers/rtc/Kconfig | 8 ++++----
|
drivers/rtc/Kconfig | 8 ++++----
|
||||||
1 file changed, 4 insertions(+), 4 deletions(-)
|
1 file changed, 4 insertions(+), 4 deletions(-)
|
||||||
|
|
||||||
diff --git a/drivers/rtc/Kconfig b/drivers/rtc/Kconfig
|
|
||||||
index 322752ebc5a7..616fe53c788e 100644
|
|
||||||
--- a/drivers/rtc/Kconfig
|
--- a/drivers/rtc/Kconfig
|
||||||
+++ b/drivers/rtc/Kconfig
|
+++ b/drivers/rtc/Kconfig
|
||||||
@@ -1706,14 +1706,14 @@ config RTC_DRV_MOXART
|
@@ -1706,14 +1706,14 @@ config RTC_DRV_MOXART
|
||||||
|
@ -39,6 +37,3 @@ index 322752ebc5a7..616fe53c788e 100644
|
||||||
|
|
||||||
config RTC_DRV_MT7622
|
config RTC_DRV_MT7622
|
||||||
tristate "MediaTek SoC based RTC"
|
tristate "MediaTek SoC based RTC"
|
||||||
--
|
|
||||||
2.11.0
|
|
||||||
|
|
||||||
|
|
|
@ -18,11 +18,9 @@ Signed-off-by: Boris Brezillon <boris.brezillon@free-electrons.com>
|
||||||
drivers/mtd/nand/Makefile | 2 +-
|
drivers/mtd/nand/Makefile | 2 +-
|
||||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||||
|
|
||||||
diff --git a/drivers/mtd/nand/Makefile b/drivers/mtd/nand/Makefile
|
|
||||||
index ade5fc4c3819..57f4cdedf137 100644
|
|
||||||
--- a/drivers/mtd/nand/Makefile
|
--- a/drivers/mtd/nand/Makefile
|
||||||
+++ b/drivers/mtd/nand/Makefile
|
+++ b/drivers/mtd/nand/Makefile
|
||||||
@@ -58,7 +58,7 @@ obj-$(CONFIG_MTD_NAND_SUNXI) += sunxi_nand.o
|
@@ -59,7 +59,7 @@ obj-$(CONFIG_MTD_NAND_SUNXI) += sunxi_n
|
||||||
obj-$(CONFIG_MTD_NAND_HISI504) += hisi504_nand.o
|
obj-$(CONFIG_MTD_NAND_HISI504) += hisi504_nand.o
|
||||||
obj-$(CONFIG_MTD_NAND_BRCMNAND) += brcmnand/
|
obj-$(CONFIG_MTD_NAND_BRCMNAND) += brcmnand/
|
||||||
obj-$(CONFIG_MTD_NAND_QCOM) += qcom_nandc.o
|
obj-$(CONFIG_MTD_NAND_QCOM) += qcom_nandc.o
|
||||||
|
@ -31,6 +29,3 @@ index ade5fc4c3819..57f4cdedf137 100644
|
||||||
|
|
||||||
nand-objs := nand_base.o nand_bbt.o nand_timings.o nand_ids.o
|
nand-objs := nand_base.o nand_bbt.o nand_timings.o nand_ids.o
|
||||||
nand-objs += nand_amd.o
|
nand-objs += nand_amd.o
|
||||||
--
|
|
||||||
2.11.0
|
|
||||||
|
|
||||||
|
|
|
@ -23,11 +23,9 @@ Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
|
||||||
Documentation/devicetree/bindings/mmc/mtk-sd.txt | 18 +++++++++++++++---
|
Documentation/devicetree/bindings/mmc/mtk-sd.txt | 18 +++++++++++++++---
|
||||||
1 file changed, 15 insertions(+), 3 deletions(-)
|
1 file changed, 15 insertions(+), 3 deletions(-)
|
||||||
|
|
||||||
diff --git a/Documentation/devicetree/bindings/mmc/mtk-sd.txt b/Documentation/devicetree/bindings/mmc/mtk-sd.txt
|
|
||||||
index 4182ea36ca5b..72d2a734ab85 100644
|
|
||||||
--- a/Documentation/devicetree/bindings/mmc/mtk-sd.txt
|
--- a/Documentation/devicetree/bindings/mmc/mtk-sd.txt
|
||||||
+++ b/Documentation/devicetree/bindings/mmc/mtk-sd.txt
|
+++ b/Documentation/devicetree/bindings/mmc/mtk-sd.txt
|
||||||
@@ -7,10 +7,18 @@ This file documents differences between the core properties in mmc.txt
|
@@ -7,10 +7,18 @@ This file documents differences between
|
||||||
and the properties used by the msdc driver.
|
and the properties used by the msdc driver.
|
||||||
|
|
||||||
Required properties:
|
Required properties:
|
||||||
|
@ -60,6 +58,3 @@ index 4182ea36ca5b..72d2a734ab85 100644
|
||||||
|
|
||||||
Examples:
|
Examples:
|
||||||
mmc0: mmc@11230000 {
|
mmc0: mmc@11230000 {
|
||||||
--
|
|
||||||
2.11.0
|
|
||||||
|
|
||||||
|
|
|
@ -14,8 +14,6 @@ Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
|
||||||
drivers/mmc/host/mtk-sd.c | 82 +++++++++++++++++++++++++++++++++++++++--------
|
drivers/mmc/host/mtk-sd.c | 82 +++++++++++++++++++++++++++++++++++++++--------
|
||||||
1 file changed, 69 insertions(+), 13 deletions(-)
|
1 file changed, 69 insertions(+), 13 deletions(-)
|
||||||
|
|
||||||
diff --git a/drivers/mmc/host/mtk-sd.c b/drivers/mmc/host/mtk-sd.c
|
|
||||||
index 267f7ab08420..643c795f1bdd 100644
|
|
||||||
--- a/drivers/mmc/host/mtk-sd.c
|
--- a/drivers/mmc/host/mtk-sd.c
|
||||||
+++ b/drivers/mmc/host/mtk-sd.c
|
+++ b/drivers/mmc/host/mtk-sd.c
|
||||||
@@ -95,6 +95,9 @@
|
@@ -95,6 +95,9 @@
|
||||||
|
@ -79,7 +77,7 @@ index 267f7ab08420..643c795f1bdd 100644
|
||||||
static void sdr_set_bits(void __iomem *reg, u32 bs)
|
static void sdr_set_bits(void __iomem *reg, u32 bs)
|
||||||
{
|
{
|
||||||
u32 val = readl(reg);
|
u32 val = readl(reg);
|
||||||
@@ -509,7 +542,12 @@ static void msdc_set_timeout(struct msdc_host *host, u32 ns, u32 clks)
|
@@ -509,7 +542,12 @@ static void msdc_set_timeout(struct msdc
|
||||||
timeout = (ns + clk_ns - 1) / clk_ns + clks;
|
timeout = (ns + clk_ns - 1) / clk_ns + clks;
|
||||||
/* in 1048576 sclk cycle unit */
|
/* in 1048576 sclk cycle unit */
|
||||||
timeout = (timeout + (0x1 << 20) - 1) >> 20;
|
timeout = (timeout + (0x1 << 20) - 1) >> 20;
|
||||||
|
@ -93,7 +91,7 @@ index 267f7ab08420..643c795f1bdd 100644
|
||||||
/*DDR mode will double the clk cycles for data timeout */
|
/*DDR mode will double the clk cycles for data timeout */
|
||||||
timeout = mode >= 2 ? timeout * 2 : timeout;
|
timeout = mode >= 2 ? timeout * 2 : timeout;
|
||||||
timeout = timeout > 1 ? timeout - 1 : 0;
|
timeout = timeout > 1 ? timeout - 1 : 0;
|
||||||
@@ -548,7 +586,11 @@ static void msdc_set_mclk(struct msdc_host *host, unsigned char timing, u32 hz)
|
@@ -548,7 +586,11 @@ static void msdc_set_mclk(struct msdc_ho
|
||||||
|
|
||||||
flags = readl(host->base + MSDC_INTEN);
|
flags = readl(host->base + MSDC_INTEN);
|
||||||
sdr_clr_bits(host->base + MSDC_INTEN, flags);
|
sdr_clr_bits(host->base + MSDC_INTEN, flags);
|
||||||
|
@ -106,7 +104,7 @@ index 267f7ab08420..643c795f1bdd 100644
|
||||||
if (timing == MMC_TIMING_UHS_DDR50 ||
|
if (timing == MMC_TIMING_UHS_DDR50 ||
|
||||||
timing == MMC_TIMING_MMC_DDR52 ||
|
timing == MMC_TIMING_MMC_DDR52 ||
|
||||||
timing == MMC_TIMING_MMC_HS400) {
|
timing == MMC_TIMING_MMC_HS400) {
|
||||||
@@ -568,8 +610,12 @@ static void msdc_set_mclk(struct msdc_host *host, unsigned char timing, u32 hz)
|
@@ -568,8 +610,12 @@ static void msdc_set_mclk(struct msdc_ho
|
||||||
|
|
||||||
if (timing == MMC_TIMING_MMC_HS400 &&
|
if (timing == MMC_TIMING_MMC_HS400 &&
|
||||||
hz >= (host->src_clk_freq >> 1)) {
|
hz >= (host->src_clk_freq >> 1)) {
|
||||||
|
@ -121,7 +119,7 @@ index 267f7ab08420..643c795f1bdd 100644
|
||||||
sclk = host->src_clk_freq >> 1;
|
sclk = host->src_clk_freq >> 1;
|
||||||
div = 0; /* div is ignore when bit18 is set */
|
div = 0; /* div is ignore when bit18 is set */
|
||||||
}
|
}
|
||||||
@@ -587,8 +633,15 @@ static void msdc_set_mclk(struct msdc_host *host, unsigned char timing, u32 hz)
|
@@ -587,8 +633,15 @@ static void msdc_set_mclk(struct msdc_ho
|
||||||
sclk = (host->src_clk_freq >> 2) / div;
|
sclk = (host->src_clk_freq >> 2) / div;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -139,7 +137,7 @@ index 267f7ab08420..643c795f1bdd 100644
|
||||||
sdr_set_bits(host->base + MSDC_CFG, MSDC_CFG_CKPDN);
|
sdr_set_bits(host->base + MSDC_CFG, MSDC_CFG_CKPDN);
|
||||||
while (!(readl(host->base + MSDC_CFG) & MSDC_CFG_CKSTB))
|
while (!(readl(host->base + MSDC_CFG) & MSDC_CFG_CKSTB))
|
||||||
cpu_relax();
|
cpu_relax();
|
||||||
@@ -1617,12 +1670,17 @@ static int msdc_drv_probe(struct platform_device *pdev)
|
@@ -1617,12 +1670,17 @@ static int msdc_drv_probe(struct platfor
|
||||||
struct mmc_host *mmc;
|
struct mmc_host *mmc;
|
||||||
struct msdc_host *host;
|
struct msdc_host *host;
|
||||||
struct resource *res;
|
struct resource *res;
|
||||||
|
@ -157,7 +155,7 @@ index 267f7ab08420..643c795f1bdd 100644
|
||||||
/* Allocate MMC host for this device */
|
/* Allocate MMC host for this device */
|
||||||
mmc = mmc_alloc_host(sizeof(struct msdc_host), &pdev->dev);
|
mmc = mmc_alloc_host(sizeof(struct msdc_host), &pdev->dev);
|
||||||
if (!mmc)
|
if (!mmc)
|
||||||
@@ -1686,11 +1744,15 @@ static int msdc_drv_probe(struct platform_device *pdev)
|
@@ -1686,11 +1744,15 @@ static int msdc_drv_probe(struct platfor
|
||||||
msdc_of_property_parse(pdev, host);
|
msdc_of_property_parse(pdev, host);
|
||||||
|
|
||||||
host->dev = &pdev->dev;
|
host->dev = &pdev->dev;
|
||||||
|
@ -174,7 +172,7 @@ index 267f7ab08420..643c795f1bdd 100644
|
||||||
|
|
||||||
mmc->caps |= MMC_CAP_ERASE | MMC_CAP_CMD23;
|
mmc->caps |= MMC_CAP_ERASE | MMC_CAP_CMD23;
|
||||||
/* MMC core transfer sizes tunable parameters */
|
/* MMC core transfer sizes tunable parameters */
|
||||||
@@ -1839,12 +1901,6 @@ static const struct dev_pm_ops msdc_dev_pm_ops = {
|
@@ -1839,12 +1901,6 @@ static const struct dev_pm_ops msdc_dev_
|
||||||
SET_RUNTIME_PM_OPS(msdc_runtime_suspend, msdc_runtime_resume, NULL)
|
SET_RUNTIME_PM_OPS(msdc_runtime_suspend, msdc_runtime_resume, NULL)
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -187,6 +185,3 @@ index 267f7ab08420..643c795f1bdd 100644
|
||||||
static struct platform_driver mt_msdc_driver = {
|
static struct platform_driver mt_msdc_driver = {
|
||||||
.probe = msdc_drv_probe,
|
.probe = msdc_drv_probe,
|
||||||
.remove = msdc_drv_remove,
|
.remove = msdc_drv_remove,
|
||||||
--
|
|
||||||
2.11.0
|
|
||||||
|
|
||||||
|
|
|
@ -29,8 +29,6 @@ Signed-off-by: Stephen Boyd <sboyd@codeaurora.org>
|
||||||
create mode 100644 Documentation/devicetree/bindings/arm/mediatek/mediatek,mcucfg.txt
|
create mode 100644 Documentation/devicetree/bindings/arm/mediatek/mediatek,mcucfg.txt
|
||||||
create mode 100644 Documentation/devicetree/bindings/arm/mediatek/mediatek,mfgcfg.txt
|
create mode 100644 Documentation/devicetree/bindings/arm/mediatek/mediatek,mfgcfg.txt
|
||||||
|
|
||||||
diff --git a/Documentation/devicetree/bindings/arm/mediatek/mediatek,apmixedsys.txt b/Documentation/devicetree/bindings/arm/mediatek/mediatek,apmixedsys.txt
|
|
||||||
index cd977db7630c..19fc116346d6 100644
|
|
||||||
--- a/Documentation/devicetree/bindings/arm/mediatek/mediatek,apmixedsys.txt
|
--- a/Documentation/devicetree/bindings/arm/mediatek/mediatek,apmixedsys.txt
|
||||||
+++ b/Documentation/devicetree/bindings/arm/mediatek/mediatek,apmixedsys.txt
|
+++ b/Documentation/devicetree/bindings/arm/mediatek/mediatek,apmixedsys.txt
|
||||||
@@ -7,6 +7,7 @@ Required Properties:
|
@@ -7,6 +7,7 @@ Required Properties:
|
||||||
|
@ -41,8 +39,6 @@ index cd977db7630c..19fc116346d6 100644
|
||||||
- "mediatek,mt6797-apmixedsys"
|
- "mediatek,mt6797-apmixedsys"
|
||||||
- "mediatek,mt8135-apmixedsys"
|
- "mediatek,mt8135-apmixedsys"
|
||||||
- "mediatek,mt8173-apmixedsys"
|
- "mediatek,mt8173-apmixedsys"
|
||||||
diff --git a/Documentation/devicetree/bindings/arm/mediatek/mediatek,bdpsys.txt b/Documentation/devicetree/bindings/arm/mediatek/mediatek,bdpsys.txt
|
|
||||||
index 4137196dd686..4010e37c53a0 100644
|
|
||||||
--- a/Documentation/devicetree/bindings/arm/mediatek/mediatek,bdpsys.txt
|
--- a/Documentation/devicetree/bindings/arm/mediatek/mediatek,bdpsys.txt
|
||||||
+++ b/Documentation/devicetree/bindings/arm/mediatek/mediatek,bdpsys.txt
|
+++ b/Documentation/devicetree/bindings/arm/mediatek/mediatek,bdpsys.txt
|
||||||
@@ -7,6 +7,7 @@ Required Properties:
|
@@ -7,6 +7,7 @@ Required Properties:
|
||||||
|
@ -53,8 +49,6 @@ index 4137196dd686..4010e37c53a0 100644
|
||||||
- #clock-cells: Must be 1
|
- #clock-cells: Must be 1
|
||||||
|
|
||||||
The bdpsys controller uses the common clk binding from
|
The bdpsys controller uses the common clk binding from
|
||||||
diff --git a/Documentation/devicetree/bindings/arm/mediatek/mediatek,imgsys.txt b/Documentation/devicetree/bindings/arm/mediatek/mediatek,imgsys.txt
|
|
||||||
index 047b11ae5f45..868bd51a98be 100644
|
|
||||||
--- a/Documentation/devicetree/bindings/arm/mediatek/mediatek,imgsys.txt
|
--- a/Documentation/devicetree/bindings/arm/mediatek/mediatek,imgsys.txt
|
||||||
+++ b/Documentation/devicetree/bindings/arm/mediatek/mediatek,imgsys.txt
|
+++ b/Documentation/devicetree/bindings/arm/mediatek/mediatek,imgsys.txt
|
||||||
@@ -7,6 +7,7 @@ Required Properties:
|
@@ -7,6 +7,7 @@ Required Properties:
|
||||||
|
@ -65,8 +59,6 @@ index 047b11ae5f45..868bd51a98be 100644
|
||||||
- "mediatek,mt6797-imgsys", "syscon"
|
- "mediatek,mt6797-imgsys", "syscon"
|
||||||
- "mediatek,mt8173-imgsys", "syscon"
|
- "mediatek,mt8173-imgsys", "syscon"
|
||||||
- #clock-cells: Must be 1
|
- #clock-cells: Must be 1
|
||||||
diff --git a/Documentation/devicetree/bindings/arm/mediatek/mediatek,infracfg.txt b/Documentation/devicetree/bindings/arm/mediatek/mediatek,infracfg.txt
|
|
||||||
index 58d58e2006b8..a3430cd96d0f 100644
|
|
||||||
--- a/Documentation/devicetree/bindings/arm/mediatek/mediatek,infracfg.txt
|
--- a/Documentation/devicetree/bindings/arm/mediatek/mediatek,infracfg.txt
|
||||||
+++ b/Documentation/devicetree/bindings/arm/mediatek/mediatek,infracfg.txt
|
+++ b/Documentation/devicetree/bindings/arm/mediatek/mediatek,infracfg.txt
|
||||||
@@ -8,6 +8,7 @@ Required Properties:
|
@@ -8,6 +8,7 @@ Required Properties:
|
||||||
|
@ -77,9 +69,6 @@ index 58d58e2006b8..a3430cd96d0f 100644
|
||||||
- "mediatek,mt6797-infracfg", "syscon"
|
- "mediatek,mt6797-infracfg", "syscon"
|
||||||
- "mediatek,mt8135-infracfg", "syscon"
|
- "mediatek,mt8135-infracfg", "syscon"
|
||||||
- "mediatek,mt8173-infracfg", "syscon"
|
- "mediatek,mt8173-infracfg", "syscon"
|
||||||
diff --git a/Documentation/devicetree/bindings/arm/mediatek/mediatek,jpgdecsys.txt b/Documentation/devicetree/bindings/arm/mediatek/mediatek,jpgdecsys.txt
|
|
||||||
new file mode 100644
|
|
||||||
index 000000000000..2df799cd06a7
|
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ b/Documentation/devicetree/bindings/arm/mediatek/mediatek,jpgdecsys.txt
|
+++ b/Documentation/devicetree/bindings/arm/mediatek/mediatek,jpgdecsys.txt
|
||||||
@@ -0,0 +1,22 @@
|
@@ -0,0 +1,22 @@
|
||||||
|
@ -105,9 +94,6 @@ index 000000000000..2df799cd06a7
|
||||||
+ reg = <0 0x19000000 0 0x1000>;
|
+ reg = <0 0x19000000 0 0x1000>;
|
||||||
+ #clock-cells = <1>;
|
+ #clock-cells = <1>;
|
||||||
+};
|
+};
|
||||||
diff --git a/Documentation/devicetree/bindings/arm/mediatek/mediatek,mcucfg.txt b/Documentation/devicetree/bindings/arm/mediatek/mediatek,mcucfg.txt
|
|
||||||
new file mode 100644
|
|
||||||
index 000000000000..b8fb03f3613e
|
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ b/Documentation/devicetree/bindings/arm/mediatek/mediatek,mcucfg.txt
|
+++ b/Documentation/devicetree/bindings/arm/mediatek/mediatek,mcucfg.txt
|
||||||
@@ -0,0 +1,22 @@
|
@@ -0,0 +1,22 @@
|
||||||
|
@ -133,9 +119,6 @@ index 000000000000..b8fb03f3613e
|
||||||
+ reg = <0 0x10220000 0 0x1000>;
|
+ reg = <0 0x10220000 0 0x1000>;
|
||||||
+ #clock-cells = <1>;
|
+ #clock-cells = <1>;
|
||||||
+};
|
+};
|
||||||
diff --git a/Documentation/devicetree/bindings/arm/mediatek/mediatek,mfgcfg.txt b/Documentation/devicetree/bindings/arm/mediatek/mediatek,mfgcfg.txt
|
|
||||||
new file mode 100644
|
|
||||||
index 000000000000..859e67b416d5
|
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ b/Documentation/devicetree/bindings/arm/mediatek/mediatek,mfgcfg.txt
|
+++ b/Documentation/devicetree/bindings/arm/mediatek/mediatek,mfgcfg.txt
|
||||||
@@ -0,0 +1,22 @@
|
@@ -0,0 +1,22 @@
|
||||||
|
@ -161,8 +144,6 @@ index 000000000000..859e67b416d5
|
||||||
+ reg = <0 0x13000000 0 0x1000>;
|
+ reg = <0 0x13000000 0 0x1000>;
|
||||||
+ #clock-cells = <1>;
|
+ #clock-cells = <1>;
|
||||||
+};
|
+};
|
||||||
diff --git a/Documentation/devicetree/bindings/arm/mediatek/mediatek,mmsys.txt b/Documentation/devicetree/bindings/arm/mediatek/mediatek,mmsys.txt
|
|
||||||
index 70529e0b58e9..4eb8bbe15c01 100644
|
|
||||||
--- a/Documentation/devicetree/bindings/arm/mediatek/mediatek,mmsys.txt
|
--- a/Documentation/devicetree/bindings/arm/mediatek/mediatek,mmsys.txt
|
||||||
+++ b/Documentation/devicetree/bindings/arm/mediatek/mediatek,mmsys.txt
|
+++ b/Documentation/devicetree/bindings/arm/mediatek/mediatek,mmsys.txt
|
||||||
@@ -7,6 +7,7 @@ Required Properties:
|
@@ -7,6 +7,7 @@ Required Properties:
|
||||||
|
@ -173,8 +154,6 @@ index 70529e0b58e9..4eb8bbe15c01 100644
|
||||||
- "mediatek,mt6797-mmsys", "syscon"
|
- "mediatek,mt6797-mmsys", "syscon"
|
||||||
- "mediatek,mt8173-mmsys", "syscon"
|
- "mediatek,mt8173-mmsys", "syscon"
|
||||||
- #clock-cells: Must be 1
|
- #clock-cells: Must be 1
|
||||||
diff --git a/Documentation/devicetree/bindings/arm/mediatek/mediatek,pericfg.txt b/Documentation/devicetree/bindings/arm/mediatek/mediatek,pericfg.txt
|
|
||||||
index e494366782aa..d9f092eb3550 100644
|
|
||||||
--- a/Documentation/devicetree/bindings/arm/mediatek/mediatek,pericfg.txt
|
--- a/Documentation/devicetree/bindings/arm/mediatek/mediatek,pericfg.txt
|
||||||
+++ b/Documentation/devicetree/bindings/arm/mediatek/mediatek,pericfg.txt
|
+++ b/Documentation/devicetree/bindings/arm/mediatek/mediatek,pericfg.txt
|
||||||
@@ -8,6 +8,7 @@ Required Properties:
|
@@ -8,6 +8,7 @@ Required Properties:
|
||||||
|
@ -185,8 +164,6 @@ index e494366782aa..d9f092eb3550 100644
|
||||||
- "mediatek,mt8135-pericfg", "syscon"
|
- "mediatek,mt8135-pericfg", "syscon"
|
||||||
- "mediatek,mt8173-pericfg", "syscon"
|
- "mediatek,mt8173-pericfg", "syscon"
|
||||||
- #clock-cells: Must be 1
|
- #clock-cells: Must be 1
|
||||||
diff --git a/Documentation/devicetree/bindings/arm/mediatek/mediatek,topckgen.txt b/Documentation/devicetree/bindings/arm/mediatek/mediatek,topckgen.txt
|
|
||||||
index ec93ecbb9f3c..2024fc909d69 100644
|
|
||||||
--- a/Documentation/devicetree/bindings/arm/mediatek/mediatek,topckgen.txt
|
--- a/Documentation/devicetree/bindings/arm/mediatek/mediatek,topckgen.txt
|
||||||
+++ b/Documentation/devicetree/bindings/arm/mediatek/mediatek,topckgen.txt
|
+++ b/Documentation/devicetree/bindings/arm/mediatek/mediatek,topckgen.txt
|
||||||
@@ -7,6 +7,7 @@ Required Properties:
|
@@ -7,6 +7,7 @@ Required Properties:
|
||||||
|
@ -197,8 +174,6 @@ index ec93ecbb9f3c..2024fc909d69 100644
|
||||||
- "mediatek,mt6797-topckgen"
|
- "mediatek,mt6797-topckgen"
|
||||||
- "mediatek,mt8135-topckgen"
|
- "mediatek,mt8135-topckgen"
|
||||||
- "mediatek,mt8173-topckgen"
|
- "mediatek,mt8173-topckgen"
|
||||||
diff --git a/Documentation/devicetree/bindings/arm/mediatek/mediatek,vdecsys.txt b/Documentation/devicetree/bindings/arm/mediatek/mediatek,vdecsys.txt
|
|
||||||
index d150104f928a..ea40d05089f8 100644
|
|
||||||
--- a/Documentation/devicetree/bindings/arm/mediatek/mediatek,vdecsys.txt
|
--- a/Documentation/devicetree/bindings/arm/mediatek/mediatek,vdecsys.txt
|
||||||
+++ b/Documentation/devicetree/bindings/arm/mediatek/mediatek,vdecsys.txt
|
+++ b/Documentation/devicetree/bindings/arm/mediatek/mediatek,vdecsys.txt
|
||||||
@@ -7,6 +7,7 @@ Required Properties:
|
@@ -7,6 +7,7 @@ Required Properties:
|
||||||
|
@ -209,11 +184,9 @@ index d150104f928a..ea40d05089f8 100644
|
||||||
- "mediatek,mt6797-vdecsys", "syscon"
|
- "mediatek,mt6797-vdecsys", "syscon"
|
||||||
- "mediatek,mt8173-vdecsys", "syscon"
|
- "mediatek,mt8173-vdecsys", "syscon"
|
||||||
- #clock-cells: Must be 1
|
- #clock-cells: Must be 1
|
||||||
diff --git a/Documentation/devicetree/bindings/arm/mediatek/mediatek,vencsys.txt b/Documentation/devicetree/bindings/arm/mediatek/mediatek,vencsys.txt
|
|
||||||
index 8a93be643647..851545357e94 100644
|
|
||||||
--- a/Documentation/devicetree/bindings/arm/mediatek/mediatek,vencsys.txt
|
--- a/Documentation/devicetree/bindings/arm/mediatek/mediatek,vencsys.txt
|
||||||
+++ b/Documentation/devicetree/bindings/arm/mediatek/mediatek,vencsys.txt
|
+++ b/Documentation/devicetree/bindings/arm/mediatek/mediatek,vencsys.txt
|
||||||
@@ -6,6 +6,7 @@ The Mediatek vencsys controller provides various clocks to the system.
|
@@ -6,6 +6,7 @@ The Mediatek vencsys controller provides
|
||||||
Required Properties:
|
Required Properties:
|
||||||
|
|
||||||
- compatible: Should be one of:
|
- compatible: Should be one of:
|
||||||
|
@ -221,6 +194,3 @@ index 8a93be643647..851545357e94 100644
|
||||||
- "mediatek,mt6797-vencsys", "syscon"
|
- "mediatek,mt6797-vencsys", "syscon"
|
||||||
- "mediatek,mt8173-vencsys", "syscon"
|
- "mediatek,mt8173-vencsys", "syscon"
|
||||||
- #clock-cells: Must be 1
|
- #clock-cells: Must be 1
|
||||||
--
|
|
||||||
2.11.0
|
|
||||||
|
|
||||||
|
|
|
@ -14,9 +14,6 @@ Signed-off-by: Stephen Boyd <sboyd@codeaurora.org>
|
||||||
1 file changed, 427 insertions(+)
|
1 file changed, 427 insertions(+)
|
||||||
create mode 100644 include/dt-bindings/clock/mt2712-clk.h
|
create mode 100644 include/dt-bindings/clock/mt2712-clk.h
|
||||||
|
|
||||||
diff --git a/include/dt-bindings/clock/mt2712-clk.h b/include/dt-bindings/clock/mt2712-clk.h
|
|
||||||
new file mode 100644
|
|
||||||
index 000000000000..48a8e797a617
|
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ b/include/dt-bindings/clock/mt2712-clk.h
|
+++ b/include/dt-bindings/clock/mt2712-clk.h
|
||||||
@@ -0,0 +1,427 @@
|
@@ -0,0 +1,427 @@
|
||||||
|
@ -447,6 +444,3 @@ index 000000000000..48a8e797a617
|
||||||
+#define CLK_JPGDEC_NR_CLK 2
|
+#define CLK_JPGDEC_NR_CLK 2
|
||||||
+
|
+
|
||||||
+#endif /* _DT_BINDINGS_CLK_MT2712_H */
|
+#endif /* _DT_BINDINGS_CLK_MT2712_H */
|
||||||
--
|
|
||||||
2.11.0
|
|
||||||
|
|
||||||
|
|
|
@ -32,8 +32,6 @@ Signed-off-by: Stephen Boyd <sboyd@codeaurora.org>
|
||||||
create mode 100644 drivers/clk/mediatek/clk-mt2712-venc.c
|
create mode 100644 drivers/clk/mediatek/clk-mt2712-venc.c
|
||||||
create mode 100644 drivers/clk/mediatek/clk-mt2712.c
|
create mode 100644 drivers/clk/mediatek/clk-mt2712.c
|
||||||
|
|
||||||
diff --git a/drivers/clk/mediatek/Kconfig b/drivers/clk/mediatek/Kconfig
|
|
||||||
index 28739a9a6e37..300dbb551bf7 100644
|
|
||||||
--- a/drivers/clk/mediatek/Kconfig
|
--- a/drivers/clk/mediatek/Kconfig
|
||||||
+++ b/drivers/clk/mediatek/Kconfig
|
+++ b/drivers/clk/mediatek/Kconfig
|
||||||
@@ -50,6 +50,56 @@ config COMMON_CLK_MT2701_BDPSYS
|
@@ -50,6 +50,56 @@ config COMMON_CLK_MT2701_BDPSYS
|
||||||
|
@ -93,11 +91,9 @@ index 28739a9a6e37..300dbb551bf7 100644
|
||||||
config COMMON_CLK_MT6797
|
config COMMON_CLK_MT6797
|
||||||
bool "Clock driver for Mediatek MT6797"
|
bool "Clock driver for Mediatek MT6797"
|
||||||
depends on (ARCH_MEDIATEK && ARM64) || COMPILE_TEST
|
depends on (ARCH_MEDIATEK && ARM64) || COMPILE_TEST
|
||||||
diff --git a/drivers/clk/mediatek/Makefile b/drivers/clk/mediatek/Makefile
|
|
||||||
index 2a755b5fb51b..a4e5c47c73a4 100644
|
|
||||||
--- a/drivers/clk/mediatek/Makefile
|
--- a/drivers/clk/mediatek/Makefile
|
||||||
+++ b/drivers/clk/mediatek/Makefile
|
+++ b/drivers/clk/mediatek/Makefile
|
||||||
@@ -12,5 +12,13 @@ obj-$(CONFIG_COMMON_CLK_MT2701_HIFSYS) += clk-mt2701-hif.o
|
@@ -13,5 +13,13 @@ obj-$(CONFIG_COMMON_CLK_MT2701_HIFSYS) +
|
||||||
obj-$(CONFIG_COMMON_CLK_MT2701_IMGSYS) += clk-mt2701-img.o
|
obj-$(CONFIG_COMMON_CLK_MT2701_IMGSYS) += clk-mt2701-img.o
|
||||||
obj-$(CONFIG_COMMON_CLK_MT2701_MMSYS) += clk-mt2701-mm.o
|
obj-$(CONFIG_COMMON_CLK_MT2701_MMSYS) += clk-mt2701-mm.o
|
||||||
obj-$(CONFIG_COMMON_CLK_MT2701_VDECSYS) += clk-mt2701-vdec.o
|
obj-$(CONFIG_COMMON_CLK_MT2701_VDECSYS) += clk-mt2701-vdec.o
|
||||||
|
@ -111,9 +107,6 @@ index 2a755b5fb51b..a4e5c47c73a4 100644
|
||||||
+obj-$(CONFIG_COMMON_CLK_MT2712_VENCSYS) += clk-mt2712-venc.o
|
+obj-$(CONFIG_COMMON_CLK_MT2712_VENCSYS) += clk-mt2712-venc.o
|
||||||
obj-$(CONFIG_COMMON_CLK_MT8135) += clk-mt8135.o
|
obj-$(CONFIG_COMMON_CLK_MT8135) += clk-mt8135.o
|
||||||
obj-$(CONFIG_COMMON_CLK_MT8173) += clk-mt8173.o
|
obj-$(CONFIG_COMMON_CLK_MT8173) += clk-mt8173.o
|
||||||
diff --git a/drivers/clk/mediatek/clk-mt2712-bdp.c b/drivers/clk/mediatek/clk-mt2712-bdp.c
|
|
||||||
new file mode 100644
|
|
||||||
index 000000000000..5fe4728c076e
|
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ b/drivers/clk/mediatek/clk-mt2712-bdp.c
|
+++ b/drivers/clk/mediatek/clk-mt2712-bdp.c
|
||||||
@@ -0,0 +1,102 @@
|
@@ -0,0 +1,102 @@
|
||||||
|
@ -219,9 +212,6 @@ index 000000000000..5fe4728c076e
|
||||||
+};
|
+};
|
||||||
+
|
+
|
||||||
+builtin_platform_driver(clk_mt2712_bdp_drv);
|
+builtin_platform_driver(clk_mt2712_bdp_drv);
|
||||||
diff --git a/drivers/clk/mediatek/clk-mt2712-img.c b/drivers/clk/mediatek/clk-mt2712-img.c
|
|
||||||
new file mode 100644
|
|
||||||
index 000000000000..139ff55d495e
|
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ b/drivers/clk/mediatek/clk-mt2712-img.c
|
+++ b/drivers/clk/mediatek/clk-mt2712-img.c
|
||||||
@@ -0,0 +1,80 @@
|
@@ -0,0 +1,80 @@
|
||||||
|
@ -305,9 +295,6 @@ index 000000000000..139ff55d495e
|
||||||
+};
|
+};
|
||||||
+
|
+
|
||||||
+builtin_platform_driver(clk_mt2712_img_drv);
|
+builtin_platform_driver(clk_mt2712_img_drv);
|
||||||
diff --git a/drivers/clk/mediatek/clk-mt2712-jpgdec.c b/drivers/clk/mediatek/clk-mt2712-jpgdec.c
|
|
||||||
new file mode 100644
|
|
||||||
index 000000000000..c7d4aada4892
|
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ b/drivers/clk/mediatek/clk-mt2712-jpgdec.c
|
+++ b/drivers/clk/mediatek/clk-mt2712-jpgdec.c
|
||||||
@@ -0,0 +1,76 @@
|
@@ -0,0 +1,76 @@
|
||||||
|
@ -387,9 +374,6 @@ index 000000000000..c7d4aada4892
|
||||||
+};
|
+};
|
||||||
+
|
+
|
||||||
+builtin_platform_driver(clk_mt2712_jpgdec_drv);
|
+builtin_platform_driver(clk_mt2712_jpgdec_drv);
|
||||||
diff --git a/drivers/clk/mediatek/clk-mt2712-mfg.c b/drivers/clk/mediatek/clk-mt2712-mfg.c
|
|
||||||
new file mode 100644
|
|
||||||
index 000000000000..570f72d48d4d
|
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ b/drivers/clk/mediatek/clk-mt2712-mfg.c
|
+++ b/drivers/clk/mediatek/clk-mt2712-mfg.c
|
||||||
@@ -0,0 +1,75 @@
|
@@ -0,0 +1,75 @@
|
||||||
|
@ -468,9 +452,6 @@ index 000000000000..570f72d48d4d
|
||||||
+};
|
+};
|
||||||
+
|
+
|
||||||
+builtin_platform_driver(clk_mt2712_mfg_drv);
|
+builtin_platform_driver(clk_mt2712_mfg_drv);
|
||||||
diff --git a/drivers/clk/mediatek/clk-mt2712-mm.c b/drivers/clk/mediatek/clk-mt2712-mm.c
|
|
||||||
new file mode 100644
|
|
||||||
index 000000000000..a8b4b6d42488
|
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ b/drivers/clk/mediatek/clk-mt2712-mm.c
|
+++ b/drivers/clk/mediatek/clk-mt2712-mm.c
|
||||||
@@ -0,0 +1,170 @@
|
@@ -0,0 +1,170 @@
|
||||||
|
@ -644,9 +625,6 @@ index 000000000000..a8b4b6d42488
|
||||||
+};
|
+};
|
||||||
+
|
+
|
||||||
+builtin_platform_driver(clk_mt2712_mm_drv);
|
+builtin_platform_driver(clk_mt2712_mm_drv);
|
||||||
diff --git a/drivers/clk/mediatek/clk-mt2712-vdec.c b/drivers/clk/mediatek/clk-mt2712-vdec.c
|
|
||||||
new file mode 100644
|
|
||||||
index 000000000000..55c64ee8cc91
|
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ b/drivers/clk/mediatek/clk-mt2712-vdec.c
|
+++ b/drivers/clk/mediatek/clk-mt2712-vdec.c
|
||||||
@@ -0,0 +1,94 @@
|
@@ -0,0 +1,94 @@
|
||||||
|
@ -744,9 +722,6 @@ index 000000000000..55c64ee8cc91
|
||||||
+};
|
+};
|
||||||
+
|
+
|
||||||
+builtin_platform_driver(clk_mt2712_vdec_drv);
|
+builtin_platform_driver(clk_mt2712_vdec_drv);
|
||||||
diff --git a/drivers/clk/mediatek/clk-mt2712-venc.c b/drivers/clk/mediatek/clk-mt2712-venc.c
|
|
||||||
new file mode 100644
|
|
||||||
index 000000000000..ccbfe98777c8
|
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ b/drivers/clk/mediatek/clk-mt2712-venc.c
|
+++ b/drivers/clk/mediatek/clk-mt2712-venc.c
|
||||||
@@ -0,0 +1,77 @@
|
@@ -0,0 +1,77 @@
|
||||||
|
@ -827,9 +802,6 @@ index 000000000000..ccbfe98777c8
|
||||||
+};
|
+};
|
||||||
+
|
+
|
||||||
+builtin_platform_driver(clk_mt2712_venc_drv);
|
+builtin_platform_driver(clk_mt2712_venc_drv);
|
||||||
diff --git a/drivers/clk/mediatek/clk-mt2712.c b/drivers/clk/mediatek/clk-mt2712.c
|
|
||||||
new file mode 100644
|
|
||||||
index 000000000000..498d13799388
|
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ b/drivers/clk/mediatek/clk-mt2712.c
|
+++ b/drivers/clk/mediatek/clk-mt2712.c
|
||||||
@@ -0,0 +1,1435 @@
|
@@ -0,0 +1,1435 @@
|
||||||
|
@ -2268,8 +2240,6 @@ index 000000000000..498d13799388
|
||||||
+}
|
+}
|
||||||
+
|
+
|
||||||
+arch_initcall(clk_mt2712_init);
|
+arch_initcall(clk_mt2712_init);
|
||||||
diff --git a/drivers/clk/mediatek/clk-mtk.h b/drivers/clk/mediatek/clk-mtk.h
|
|
||||||
index f5d6b70ce189..f48df75cc901 100644
|
|
||||||
--- a/drivers/clk/mediatek/clk-mtk.h
|
--- a/drivers/clk/mediatek/clk-mtk.h
|
||||||
+++ b/drivers/clk/mediatek/clk-mtk.h
|
+++ b/drivers/clk/mediatek/clk-mtk.h
|
||||||
@@ -207,6 +207,8 @@ struct mtk_pll_data {
|
@@ -207,6 +207,8 @@ struct mtk_pll_data {
|
||||||
|
@ -2281,8 +2251,6 @@ index f5d6b70ce189..f48df75cc901 100644
|
||||||
int pd_shift;
|
int pd_shift;
|
||||||
unsigned int flags;
|
unsigned int flags;
|
||||||
const struct clk_ops *ops;
|
const struct clk_ops *ops;
|
||||||
diff --git a/drivers/clk/mediatek/clk-pll.c b/drivers/clk/mediatek/clk-pll.c
|
|
||||||
index a409142e9346..3c546bae6955 100644
|
|
||||||
--- a/drivers/clk/mediatek/clk-pll.c
|
--- a/drivers/clk/mediatek/clk-pll.c
|
||||||
+++ b/drivers/clk/mediatek/clk-pll.c
|
+++ b/drivers/clk/mediatek/clk-pll.c
|
||||||
@@ -47,6 +47,7 @@ struct mtk_clk_pll {
|
@@ -47,6 +47,7 @@ struct mtk_clk_pll {
|
||||||
|
@ -2293,7 +2261,7 @@ index a409142e9346..3c546bae6955 100644
|
||||||
void __iomem *pcw_addr;
|
void __iomem *pcw_addr;
|
||||||
const struct mtk_pll_data *data;
|
const struct mtk_pll_data *data;
|
||||||
};
|
};
|
||||||
@@ -227,7 +228,10 @@ static int mtk_pll_prepare(struct clk_hw *hw)
|
@@ -227,7 +228,10 @@ static int mtk_pll_prepare(struct clk_hw
|
||||||
r |= pll->data->en_mask;
|
r |= pll->data->en_mask;
|
||||||
writel(r, pll->base_addr + REG_CON0);
|
writel(r, pll->base_addr + REG_CON0);
|
||||||
|
|
||||||
|
@ -2305,7 +2273,7 @@ index a409142e9346..3c546bae6955 100644
|
||||||
r = readl(pll->tuner_addr) | AUDPLL_TUNER_EN;
|
r = readl(pll->tuner_addr) | AUDPLL_TUNER_EN;
|
||||||
writel(r, pll->tuner_addr);
|
writel(r, pll->tuner_addr);
|
||||||
}
|
}
|
||||||
@@ -254,7 +258,10 @@ static void mtk_pll_unprepare(struct clk_hw *hw)
|
@@ -254,7 +258,10 @@ static void mtk_pll_unprepare(struct clk
|
||||||
writel(r, pll->base_addr + REG_CON0);
|
writel(r, pll->base_addr + REG_CON0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -2317,7 +2285,7 @@ index a409142e9346..3c546bae6955 100644
|
||||||
r = readl(pll->tuner_addr) & ~AUDPLL_TUNER_EN;
|
r = readl(pll->tuner_addr) & ~AUDPLL_TUNER_EN;
|
||||||
writel(r, pll->tuner_addr);
|
writel(r, pll->tuner_addr);
|
||||||
}
|
}
|
||||||
@@ -297,6 +304,8 @@ static struct clk *mtk_clk_register_pll(const struct mtk_pll_data *data,
|
@@ -297,6 +304,8 @@ static struct clk *mtk_clk_register_pll(
|
||||||
pll->pcw_addr = base + data->pcw_reg;
|
pll->pcw_addr = base + data->pcw_reg;
|
||||||
if (data->tuner_reg)
|
if (data->tuner_reg)
|
||||||
pll->tuner_addr = base + data->tuner_reg;
|
pll->tuner_addr = base + data->tuner_reg;
|
||||||
|
@ -2326,6 +2294,3 @@ index a409142e9346..3c546bae6955 100644
|
||||||
pll->hw.init = &init;
|
pll->hw.init = &init;
|
||||||
pll->data = data;
|
pll->data = data;
|
||||||
|
|
||||||
--
|
|
||||||
2.11.0
|
|
||||||
|
|
||||||
|
|
|
@ -28,8 +28,6 @@ Signed-off-by: Stephen Boyd <sboyd@codeaurora.org>
|
||||||
create mode 100644 Documentation/devicetree/bindings/arm/mediatek/mediatek,sgmiisys.txt
|
create mode 100644 Documentation/devicetree/bindings/arm/mediatek/mediatek,sgmiisys.txt
|
||||||
create mode 100644 Documentation/devicetree/bindings/arm/mediatek/mediatek,ssusbsys.txt
|
create mode 100644 Documentation/devicetree/bindings/arm/mediatek/mediatek,ssusbsys.txt
|
||||||
|
|
||||||
diff --git a/Documentation/devicetree/bindings/arm/mediatek/mediatek,apmixedsys.txt b/Documentation/devicetree/bindings/arm/mediatek/mediatek,apmixedsys.txt
|
|
||||||
index 19fc116346d6..b404d592ce58 100644
|
|
||||||
--- a/Documentation/devicetree/bindings/arm/mediatek/mediatek,apmixedsys.txt
|
--- a/Documentation/devicetree/bindings/arm/mediatek/mediatek,apmixedsys.txt
|
||||||
+++ b/Documentation/devicetree/bindings/arm/mediatek/mediatek,apmixedsys.txt
|
+++ b/Documentation/devicetree/bindings/arm/mediatek/mediatek,apmixedsys.txt
|
||||||
@@ -9,6 +9,7 @@ Required Properties:
|
@@ -9,6 +9,7 @@ Required Properties:
|
||||||
|
@ -40,9 +38,6 @@ index 19fc116346d6..b404d592ce58 100644
|
||||||
- "mediatek,mt8135-apmixedsys"
|
- "mediatek,mt8135-apmixedsys"
|
||||||
- "mediatek,mt8173-apmixedsys"
|
- "mediatek,mt8173-apmixedsys"
|
||||||
- #clock-cells: Must be 1
|
- #clock-cells: Must be 1
|
||||||
diff --git a/Documentation/devicetree/bindings/arm/mediatek/mediatek,audsys.txt b/Documentation/devicetree/bindings/arm/mediatek/mediatek,audsys.txt
|
|
||||||
new file mode 100644
|
|
||||||
index 000000000000..9b8f578d5e19
|
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ b/Documentation/devicetree/bindings/arm/mediatek/mediatek,audsys.txt
|
+++ b/Documentation/devicetree/bindings/arm/mediatek/mediatek,audsys.txt
|
||||||
@@ -0,0 +1,22 @@
|
@@ -0,0 +1,22 @@
|
||||||
|
@ -68,8 +63,6 @@ index 000000000000..9b8f578d5e19
|
||||||
+ reg = <0 0x11220000 0 0x1000>;
|
+ reg = <0 0x11220000 0 0x1000>;
|
||||||
+ #clock-cells = <1>;
|
+ #clock-cells = <1>;
|
||||||
+};
|
+};
|
||||||
diff --git a/Documentation/devicetree/bindings/arm/mediatek/mediatek,ethsys.txt b/Documentation/devicetree/bindings/arm/mediatek/mediatek,ethsys.txt
|
|
||||||
index 768f3a5bc055..7aa3fa167668 100644
|
|
||||||
--- a/Documentation/devicetree/bindings/arm/mediatek/mediatek,ethsys.txt
|
--- a/Documentation/devicetree/bindings/arm/mediatek/mediatek,ethsys.txt
|
||||||
+++ b/Documentation/devicetree/bindings/arm/mediatek/mediatek,ethsys.txt
|
+++ b/Documentation/devicetree/bindings/arm/mediatek/mediatek,ethsys.txt
|
||||||
@@ -7,6 +7,7 @@ Required Properties:
|
@@ -7,6 +7,7 @@ Required Properties:
|
||||||
|
@ -80,8 +73,6 @@ index 768f3a5bc055..7aa3fa167668 100644
|
||||||
- #clock-cells: Must be 1
|
- #clock-cells: Must be 1
|
||||||
|
|
||||||
The ethsys controller uses the common clk binding from
|
The ethsys controller uses the common clk binding from
|
||||||
diff --git a/Documentation/devicetree/bindings/arm/mediatek/mediatek,hifsys.txt b/Documentation/devicetree/bindings/arm/mediatek/mediatek,hifsys.txt
|
|
||||||
index beed7b594cea..f5629d64cef2 100644
|
|
||||||
--- a/Documentation/devicetree/bindings/arm/mediatek/mediatek,hifsys.txt
|
--- a/Documentation/devicetree/bindings/arm/mediatek/mediatek,hifsys.txt
|
||||||
+++ b/Documentation/devicetree/bindings/arm/mediatek/mediatek,hifsys.txt
|
+++ b/Documentation/devicetree/bindings/arm/mediatek/mediatek,hifsys.txt
|
||||||
@@ -8,6 +8,7 @@ Required Properties:
|
@@ -8,6 +8,7 @@ Required Properties:
|
||||||
|
@ -92,8 +83,6 @@ index beed7b594cea..f5629d64cef2 100644
|
||||||
- #clock-cells: Must be 1
|
- #clock-cells: Must be 1
|
||||||
|
|
||||||
The hifsys controller uses the common clk binding from
|
The hifsys controller uses the common clk binding from
|
||||||
diff --git a/Documentation/devicetree/bindings/arm/mediatek/mediatek,infracfg.txt b/Documentation/devicetree/bindings/arm/mediatek/mediatek,infracfg.txt
|
|
||||||
index a3430cd96d0f..566f153f9f83 100644
|
|
||||||
--- a/Documentation/devicetree/bindings/arm/mediatek/mediatek,infracfg.txt
|
--- a/Documentation/devicetree/bindings/arm/mediatek/mediatek,infracfg.txt
|
||||||
+++ b/Documentation/devicetree/bindings/arm/mediatek/mediatek,infracfg.txt
|
+++ b/Documentation/devicetree/bindings/arm/mediatek/mediatek,infracfg.txt
|
||||||
@@ -10,6 +10,7 @@ Required Properties:
|
@@ -10,6 +10,7 @@ Required Properties:
|
||||||
|
@ -104,9 +93,6 @@ index a3430cd96d0f..566f153f9f83 100644
|
||||||
- "mediatek,mt8135-infracfg", "syscon"
|
- "mediatek,mt8135-infracfg", "syscon"
|
||||||
- "mediatek,mt8173-infracfg", "syscon"
|
- "mediatek,mt8173-infracfg", "syscon"
|
||||||
- #clock-cells: Must be 1
|
- #clock-cells: Must be 1
|
||||||
diff --git a/Documentation/devicetree/bindings/arm/mediatek/mediatek,pciesys.txt b/Documentation/devicetree/bindings/arm/mediatek/mediatek,pciesys.txt
|
|
||||||
new file mode 100644
|
|
||||||
index 000000000000..d5d5f1227665
|
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ b/Documentation/devicetree/bindings/arm/mediatek/mediatek,pciesys.txt
|
+++ b/Documentation/devicetree/bindings/arm/mediatek/mediatek,pciesys.txt
|
||||||
@@ -0,0 +1,22 @@
|
@@ -0,0 +1,22 @@
|
||||||
|
@ -132,8 +118,6 @@ index 000000000000..d5d5f1227665
|
||||||
+ reg = <0 0x1a100800 0 0x1000>;
|
+ reg = <0 0x1a100800 0 0x1000>;
|
||||||
+ #clock-cells = <1>;
|
+ #clock-cells = <1>;
|
||||||
+};
|
+};
|
||||||
diff --git a/Documentation/devicetree/bindings/arm/mediatek/mediatek,pericfg.txt b/Documentation/devicetree/bindings/arm/mediatek/mediatek,pericfg.txt
|
|
||||||
index d9f092eb3550..fb58ca8c2770 100644
|
|
||||||
--- a/Documentation/devicetree/bindings/arm/mediatek/mediatek,pericfg.txt
|
--- a/Documentation/devicetree/bindings/arm/mediatek/mediatek,pericfg.txt
|
||||||
+++ b/Documentation/devicetree/bindings/arm/mediatek/mediatek,pericfg.txt
|
+++ b/Documentation/devicetree/bindings/arm/mediatek/mediatek,pericfg.txt
|
||||||
@@ -9,6 +9,7 @@ Required Properties:
|
@@ -9,6 +9,7 @@ Required Properties:
|
||||||
|
@ -144,9 +128,6 @@ index d9f092eb3550..fb58ca8c2770 100644
|
||||||
- "mediatek,mt8135-pericfg", "syscon"
|
- "mediatek,mt8135-pericfg", "syscon"
|
||||||
- "mediatek,mt8173-pericfg", "syscon"
|
- "mediatek,mt8173-pericfg", "syscon"
|
||||||
- #clock-cells: Must be 1
|
- #clock-cells: Must be 1
|
||||||
diff --git a/Documentation/devicetree/bindings/arm/mediatek/mediatek,sgmiisys.txt b/Documentation/devicetree/bindings/arm/mediatek/mediatek,sgmiisys.txt
|
|
||||||
new file mode 100644
|
|
||||||
index 000000000000..d113b8e741f3
|
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ b/Documentation/devicetree/bindings/arm/mediatek/mediatek,sgmiisys.txt
|
+++ b/Documentation/devicetree/bindings/arm/mediatek/mediatek,sgmiisys.txt
|
||||||
@@ -0,0 +1,22 @@
|
@@ -0,0 +1,22 @@
|
||||||
|
@ -172,9 +153,6 @@ index 000000000000..d113b8e741f3
|
||||||
+ reg = <0 0x1b128000 0 0x1000>;
|
+ reg = <0 0x1b128000 0 0x1000>;
|
||||||
+ #clock-cells = <1>;
|
+ #clock-cells = <1>;
|
||||||
+};
|
+};
|
||||||
diff --git a/Documentation/devicetree/bindings/arm/mediatek/mediatek,ssusbsys.txt b/Documentation/devicetree/bindings/arm/mediatek/mediatek,ssusbsys.txt
|
|
||||||
new file mode 100644
|
|
||||||
index 000000000000..00760019da00
|
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ b/Documentation/devicetree/bindings/arm/mediatek/mediatek,ssusbsys.txt
|
+++ b/Documentation/devicetree/bindings/arm/mediatek/mediatek,ssusbsys.txt
|
||||||
@@ -0,0 +1,22 @@
|
@@ -0,0 +1,22 @@
|
||||||
|
@ -200,8 +178,6 @@ index 000000000000..00760019da00
|
||||||
+ reg = <0 0x1a000000 0 0x1000>;
|
+ reg = <0 0x1a000000 0 0x1000>;
|
||||||
+ #clock-cells = <1>;
|
+ #clock-cells = <1>;
|
||||||
+};
|
+};
|
||||||
diff --git a/Documentation/devicetree/bindings/arm/mediatek/mediatek,topckgen.txt b/Documentation/devicetree/bindings/arm/mediatek/mediatek,topckgen.txt
|
|
||||||
index 2024fc909d69..24014a7e2332 100644
|
|
||||||
--- a/Documentation/devicetree/bindings/arm/mediatek/mediatek,topckgen.txt
|
--- a/Documentation/devicetree/bindings/arm/mediatek/mediatek,topckgen.txt
|
||||||
+++ b/Documentation/devicetree/bindings/arm/mediatek/mediatek,topckgen.txt
|
+++ b/Documentation/devicetree/bindings/arm/mediatek/mediatek,topckgen.txt
|
||||||
@@ -9,6 +9,7 @@ Required Properties:
|
@@ -9,6 +9,7 @@ Required Properties:
|
||||||
|
@ -212,6 +188,3 @@ index 2024fc909d69..24014a7e2332 100644
|
||||||
- "mediatek,mt8135-topckgen"
|
- "mediatek,mt8135-topckgen"
|
||||||
- "mediatek,mt8173-topckgen"
|
- "mediatek,mt8173-topckgen"
|
||||||
- #clock-cells: Must be 1
|
- #clock-cells: Must be 1
|
||||||
--
|
|
||||||
2.11.0
|
|
||||||
|
|
||||||
|
|
|
@ -16,9 +16,6 @@ Signed-off-by: Stephen Boyd <sboyd@codeaurora.org>
|
||||||
1 file changed, 289 insertions(+)
|
1 file changed, 289 insertions(+)
|
||||||
create mode 100644 include/dt-bindings/clock/mt7622-clk.h
|
create mode 100644 include/dt-bindings/clock/mt7622-clk.h
|
||||||
|
|
||||||
diff --git a/include/dt-bindings/clock/mt7622-clk.h b/include/dt-bindings/clock/mt7622-clk.h
|
|
||||||
new file mode 100644
|
|
||||||
index 000000000000..3e514ed51d15
|
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ b/include/dt-bindings/clock/mt7622-clk.h
|
+++ b/include/dt-bindings/clock/mt7622-clk.h
|
||||||
@@ -0,0 +1,289 @@
|
@@ -0,0 +1,289 @@
|
||||||
|
@ -311,6 +308,3 @@ index 000000000000..3e514ed51d15
|
||||||
+
|
+
|
||||||
+#endif /* _DT_BINDINGS_CLK_MT7622_H */
|
+#endif /* _DT_BINDINGS_CLK_MT7622_H */
|
||||||
+
|
+
|
||||||
--
|
|
||||||
2.11.0
|
|
||||||
|
|
||||||
|
|
|
@ -23,8 +23,6 @@ Signed-off-by: Stephen Boyd <sboyd@codeaurora.org>
|
||||||
create mode 100644 drivers/clk/mediatek/clk-mt7622-hif.c
|
create mode 100644 drivers/clk/mediatek/clk-mt7622-hif.c
|
||||||
create mode 100644 drivers/clk/mediatek/clk-mt7622.c
|
create mode 100644 drivers/clk/mediatek/clk-mt7622.c
|
||||||
|
|
||||||
diff --git a/drivers/clk/mediatek/Kconfig b/drivers/clk/mediatek/Kconfig
|
|
||||||
index 300dbb551bf7..59dc0aad553c 100644
|
|
||||||
--- a/drivers/clk/mediatek/Kconfig
|
--- a/drivers/clk/mediatek/Kconfig
|
||||||
+++ b/drivers/clk/mediatek/Kconfig
|
+++ b/drivers/clk/mediatek/Kconfig
|
||||||
@@ -132,6 +132,36 @@ config COMMON_CLK_MT6797_VENCSYS
|
@@ -132,6 +132,36 @@ config COMMON_CLK_MT6797_VENCSYS
|
||||||
|
@ -64,11 +62,9 @@ index 300dbb551bf7..59dc0aad553c 100644
|
||||||
config COMMON_CLK_MT8135
|
config COMMON_CLK_MT8135
|
||||||
bool "Clock driver for Mediatek MT8135"
|
bool "Clock driver for Mediatek MT8135"
|
||||||
depends on (ARCH_MEDIATEK && ARM) || COMPILE_TEST
|
depends on (ARCH_MEDIATEK && ARM) || COMPILE_TEST
|
||||||
diff --git a/drivers/clk/mediatek/Makefile b/drivers/clk/mediatek/Makefile
|
|
||||||
index a4e5c47c73a4..de8c3d0bb4ca 100644
|
|
||||||
--- a/drivers/clk/mediatek/Makefile
|
--- a/drivers/clk/mediatek/Makefile
|
||||||
+++ b/drivers/clk/mediatek/Makefile
|
+++ b/drivers/clk/mediatek/Makefile
|
||||||
@@ -20,5 +20,9 @@ obj-$(CONFIG_COMMON_CLK_MT2712_MFGCFG) += clk-mt2712-mfg.o
|
@@ -21,5 +21,9 @@ obj-$(CONFIG_COMMON_CLK_MT2712_MFGCFG) +
|
||||||
obj-$(CONFIG_COMMON_CLK_MT2712_MMSYS) += clk-mt2712-mm.o
|
obj-$(CONFIG_COMMON_CLK_MT2712_MMSYS) += clk-mt2712-mm.o
|
||||||
obj-$(CONFIG_COMMON_CLK_MT2712_VDECSYS) += clk-mt2712-vdec.o
|
obj-$(CONFIG_COMMON_CLK_MT2712_VDECSYS) += clk-mt2712-vdec.o
|
||||||
obj-$(CONFIG_COMMON_CLK_MT2712_VENCSYS) += clk-mt2712-venc.o
|
obj-$(CONFIG_COMMON_CLK_MT2712_VENCSYS) += clk-mt2712-venc.o
|
||||||
|
@ -78,9 +74,6 @@ index a4e5c47c73a4..de8c3d0bb4ca 100644
|
||||||
+obj-$(CONFIG_COMMON_CLK_MT7622_AUDSYS) += clk-mt7622-aud.o
|
+obj-$(CONFIG_COMMON_CLK_MT7622_AUDSYS) += clk-mt7622-aud.o
|
||||||
obj-$(CONFIG_COMMON_CLK_MT8135) += clk-mt8135.o
|
obj-$(CONFIG_COMMON_CLK_MT8135) += clk-mt8135.o
|
||||||
obj-$(CONFIG_COMMON_CLK_MT8173) += clk-mt8173.o
|
obj-$(CONFIG_COMMON_CLK_MT8173) += clk-mt8173.o
|
||||||
diff --git a/drivers/clk/mediatek/clk-mt7622-aud.c b/drivers/clk/mediatek/clk-mt7622-aud.c
|
|
||||||
new file mode 100644
|
|
||||||
index 000000000000..fad7d9fc53ba
|
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ b/drivers/clk/mediatek/clk-mt7622-aud.c
|
+++ b/drivers/clk/mediatek/clk-mt7622-aud.c
|
||||||
@@ -0,0 +1,195 @@
|
@@ -0,0 +1,195 @@
|
||||||
|
@ -279,9 +272,6 @@ index 000000000000..fad7d9fc53ba
|
||||||
+};
|
+};
|
||||||
+
|
+
|
||||||
+builtin_platform_driver(clk_mt7622_aud_drv);
|
+builtin_platform_driver(clk_mt7622_aud_drv);
|
||||||
diff --git a/drivers/clk/mediatek/clk-mt7622-eth.c b/drivers/clk/mediatek/clk-mt7622-eth.c
|
|
||||||
new file mode 100644
|
|
||||||
index 000000000000..6328127bbb3c
|
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ b/drivers/clk/mediatek/clk-mt7622-eth.c
|
+++ b/drivers/clk/mediatek/clk-mt7622-eth.c
|
||||||
@@ -0,0 +1,156 @@
|
@@ -0,0 +1,156 @@
|
||||||
|
@ -441,9 +431,6 @@ index 000000000000..6328127bbb3c
|
||||||
+};
|
+};
|
||||||
+
|
+
|
||||||
+builtin_platform_driver(clk_mt7622_eth_drv);
|
+builtin_platform_driver(clk_mt7622_eth_drv);
|
||||||
diff --git a/drivers/clk/mediatek/clk-mt7622-hif.c b/drivers/clk/mediatek/clk-mt7622-hif.c
|
|
||||||
new file mode 100644
|
|
||||||
index 000000000000..a6e8534276c6
|
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ b/drivers/clk/mediatek/clk-mt7622-hif.c
|
+++ b/drivers/clk/mediatek/clk-mt7622-hif.c
|
||||||
@@ -0,0 +1,169 @@
|
@@ -0,0 +1,169 @@
|
||||||
|
@ -616,9 +603,6 @@ index 000000000000..a6e8534276c6
|
||||||
+};
|
+};
|
||||||
+
|
+
|
||||||
+builtin_platform_driver(clk_mt7622_hif_drv);
|
+builtin_platform_driver(clk_mt7622_hif_drv);
|
||||||
diff --git a/drivers/clk/mediatek/clk-mt7622.c b/drivers/clk/mediatek/clk-mt7622.c
|
|
||||||
new file mode 100644
|
|
||||||
index 000000000000..92f7e32770c6
|
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ b/drivers/clk/mediatek/clk-mt7622.c
|
+++ b/drivers/clk/mediatek/clk-mt7622.c
|
||||||
@@ -0,0 +1,780 @@
|
@@ -0,0 +1,780 @@
|
||||||
|
@ -1402,6 +1386,3 @@ index 000000000000..92f7e32770c6
|
||||||
+}
|
+}
|
||||||
+
|
+
|
||||||
+arch_initcall(clk_mt7622_init);
|
+arch_initcall(clk_mt7622_init);
|
||||||
--
|
|
||||||
2.11.0
|
|
||||||
|
|
||||||
|
|
|
@ -17,11 +17,9 @@ Acked-by: Matthias Brugger <matthias.bgg@gmail.com>
|
||||||
arch/arm64/boot/dts/mediatek/mt8173.dtsi | 12 ++++--------
|
arch/arm64/boot/dts/mediatek/mt8173.dtsi | 12 ++++--------
|
||||||
1 file changed, 4 insertions(+), 8 deletions(-)
|
1 file changed, 4 insertions(+), 8 deletions(-)
|
||||||
|
|
||||||
diff --git a/arch/arm64/boot/dts/mediatek/mt8173.dtsi b/arch/arm64/boot/dts/mediatek/mt8173.dtsi
|
|
||||||
index b99a27372965..26396ef53bde 100644
|
|
||||||
--- a/arch/arm64/boot/dts/mediatek/mt8173.dtsi
|
--- a/arch/arm64/boot/dts/mediatek/mt8173.dtsi
|
||||||
+++ b/arch/arm64/boot/dts/mediatek/mt8173.dtsi
|
+++ b/arch/arm64/boot/dts/mediatek/mt8173.dtsi
|
||||||
@@ -682,8 +682,7 @@
|
@@ -684,8 +684,7 @@
|
||||||
};
|
};
|
||||||
|
|
||||||
mmc0: mmc@11230000 {
|
mmc0: mmc@11230000 {
|
||||||
|
@ -31,7 +29,7 @@ index b99a27372965..26396ef53bde 100644
|
||||||
reg = <0 0x11230000 0 0x1000>;
|
reg = <0 0x11230000 0 0x1000>;
|
||||||
interrupts = <GIC_SPI 71 IRQ_TYPE_LEVEL_LOW>;
|
interrupts = <GIC_SPI 71 IRQ_TYPE_LEVEL_LOW>;
|
||||||
clocks = <&pericfg CLK_PERI_MSDC30_0>,
|
clocks = <&pericfg CLK_PERI_MSDC30_0>,
|
||||||
@@ -693,8 +692,7 @@
|
@@ -695,8 +694,7 @@
|
||||||
};
|
};
|
||||||
|
|
||||||
mmc1: mmc@11240000 {
|
mmc1: mmc@11240000 {
|
||||||
|
@ -41,7 +39,7 @@ index b99a27372965..26396ef53bde 100644
|
||||||
reg = <0 0x11240000 0 0x1000>;
|
reg = <0 0x11240000 0 0x1000>;
|
||||||
interrupts = <GIC_SPI 72 IRQ_TYPE_LEVEL_LOW>;
|
interrupts = <GIC_SPI 72 IRQ_TYPE_LEVEL_LOW>;
|
||||||
clocks = <&pericfg CLK_PERI_MSDC30_1>,
|
clocks = <&pericfg CLK_PERI_MSDC30_1>,
|
||||||
@@ -704,8 +702,7 @@
|
@@ -706,8 +704,7 @@
|
||||||
};
|
};
|
||||||
|
|
||||||
mmc2: mmc@11250000 {
|
mmc2: mmc@11250000 {
|
||||||
|
@ -51,7 +49,7 @@ index b99a27372965..26396ef53bde 100644
|
||||||
reg = <0 0x11250000 0 0x1000>;
|
reg = <0 0x11250000 0 0x1000>;
|
||||||
interrupts = <GIC_SPI 73 IRQ_TYPE_LEVEL_LOW>;
|
interrupts = <GIC_SPI 73 IRQ_TYPE_LEVEL_LOW>;
|
||||||
clocks = <&pericfg CLK_PERI_MSDC30_2>,
|
clocks = <&pericfg CLK_PERI_MSDC30_2>,
|
||||||
@@ -715,8 +712,7 @@
|
@@ -717,8 +714,7 @@
|
||||||
};
|
};
|
||||||
|
|
||||||
mmc3: mmc@11260000 {
|
mmc3: mmc@11260000 {
|
||||||
|
@ -61,6 +59,3 @@ index b99a27372965..26396ef53bde 100644
|
||||||
reg = <0 0x11260000 0 0x1000>;
|
reg = <0 0x11260000 0 0x1000>;
|
||||||
interrupts = <GIC_SPI 74 IRQ_TYPE_LEVEL_LOW>;
|
interrupts = <GIC_SPI 74 IRQ_TYPE_LEVEL_LOW>;
|
||||||
clocks = <&pericfg CLK_PERI_MSDC30_3>,
|
clocks = <&pericfg CLK_PERI_MSDC30_3>,
|
||||||
--
|
|
||||||
2.11.0
|
|
||||||
|
|
||||||
|
|
|
@ -15,8 +15,6 @@ Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
|
||||||
drivers/mmc/host/mtk-sd.c | 11 +++++++++--
|
drivers/mmc/host/mtk-sd.c | 11 +++++++++--
|
||||||
1 file changed, 9 insertions(+), 2 deletions(-)
|
1 file changed, 9 insertions(+), 2 deletions(-)
|
||||||
|
|
||||||
diff --git a/drivers/mmc/host/mtk-sd.c b/drivers/mmc/host/mtk-sd.c
|
|
||||||
index 643c795f1bdd..ab2fbbbdfda3 100644
|
|
||||||
--- a/drivers/mmc/host/mtk-sd.c
|
--- a/drivers/mmc/host/mtk-sd.c
|
||||||
+++ b/drivers/mmc/host/mtk-sd.c
|
+++ b/drivers/mmc/host/mtk-sd.c
|
||||||
@@ -300,6 +300,7 @@ struct msdc_save_para {
|
@@ -300,6 +300,7 @@ struct msdc_save_para {
|
||||||
|
@ -50,7 +48,7 @@ index 643c795f1bdd..ab2fbbbdfda3 100644
|
||||||
};
|
};
|
||||||
|
|
||||||
static const struct of_device_id msdc_of_ids[] = {
|
static const struct of_device_id msdc_of_ids[] = {
|
||||||
@@ -666,7 +671,8 @@ static void msdc_set_mclk(struct msdc_host *host, unsigned char timing, u32 hz)
|
@@ -666,7 +671,8 @@ static void msdc_set_mclk(struct msdc_ho
|
||||||
host->base + PAD_CMD_TUNE);
|
host->base + PAD_CMD_TUNE);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -60,7 +58,7 @@ index 643c795f1bdd..ab2fbbbdfda3 100644
|
||||||
sdr_set_field(host->base + PAD_CMD_TUNE,
|
sdr_set_field(host->base + PAD_CMD_TUNE,
|
||||||
MSDC_PAD_TUNE_CMDRRDLY,
|
MSDC_PAD_TUNE_CMDRRDLY,
|
||||||
host->hs400_cmd_int_delay);
|
host->hs400_cmd_int_delay);
|
||||||
@@ -1594,7 +1600,8 @@ static int msdc_execute_tuning(struct mmc_host *mmc, u32 opcode)
|
@@ -1594,7 +1600,8 @@ static int msdc_execute_tuning(struct mm
|
||||||
struct msdc_host *host = mmc_priv(mmc);
|
struct msdc_host *host = mmc_priv(mmc);
|
||||||
int ret;
|
int ret;
|
||||||
|
|
||||||
|
@ -70,6 +68,3 @@ index 643c795f1bdd..ab2fbbbdfda3 100644
|
||||||
ret = hs400_tune_response(mmc, opcode);
|
ret = hs400_tune_response(mmc, opcode);
|
||||||
else
|
else
|
||||||
ret = msdc_tune_response(mmc, opcode);
|
ret = msdc_tune_response(mmc, opcode);
|
||||||
--
|
|
||||||
2.11.0
|
|
||||||
|
|
||||||
|
|
|
@ -13,8 +13,6 @@ Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
|
||||||
drivers/mmc/host/mtk-sd.c | 51 ++++++++++++++++++++++++++++++-----------------
|
drivers/mmc/host/mtk-sd.c | 51 ++++++++++++++++++++++++++++++-----------------
|
||||||
1 file changed, 33 insertions(+), 18 deletions(-)
|
1 file changed, 33 insertions(+), 18 deletions(-)
|
||||||
|
|
||||||
diff --git a/drivers/mmc/host/mtk-sd.c b/drivers/mmc/host/mtk-sd.c
|
|
||||||
index ab2fbbbdfda3..bcd83d6f2b86 100644
|
|
||||||
--- a/drivers/mmc/host/mtk-sd.c
|
--- a/drivers/mmc/host/mtk-sd.c
|
||||||
+++ b/drivers/mmc/host/mtk-sd.c
|
+++ b/drivers/mmc/host/mtk-sd.c
|
||||||
@@ -75,6 +75,7 @@
|
@@ -75,6 +75,7 @@
|
||||||
|
@ -59,7 +57,7 @@ index ab2fbbbdfda3..bcd83d6f2b86 100644
|
||||||
};
|
};
|
||||||
|
|
||||||
static const struct of_device_id msdc_of_ids[] = {
|
static const struct of_device_id msdc_of_ids[] = {
|
||||||
@@ -581,6 +587,7 @@ static void msdc_set_mclk(struct msdc_host *host, unsigned char timing, u32 hz)
|
@@ -581,6 +587,7 @@ static void msdc_set_mclk(struct msdc_ho
|
||||||
u32 flags;
|
u32 flags;
|
||||||
u32 div;
|
u32 div;
|
||||||
u32 sclk;
|
u32 sclk;
|
||||||
|
@ -67,7 +65,7 @@ index ab2fbbbdfda3..bcd83d6f2b86 100644
|
||||||
|
|
||||||
if (!hz) {
|
if (!hz) {
|
||||||
dev_dbg(host->dev, "set mclk to 0\n");
|
dev_dbg(host->dev, "set mclk to 0\n");
|
||||||
@@ -663,10 +670,10 @@ static void msdc_set_mclk(struct msdc_host *host, unsigned char timing, u32 hz)
|
@@ -663,10 +670,10 @@ static void msdc_set_mclk(struct msdc_ho
|
||||||
*/
|
*/
|
||||||
if (host->sclk <= 52000000) {
|
if (host->sclk <= 52000000) {
|
||||||
writel(host->def_tune_para.iocon, host->base + MSDC_IOCON);
|
writel(host->def_tune_para.iocon, host->base + MSDC_IOCON);
|
||||||
|
@ -80,7 +78,7 @@ index ab2fbbbdfda3..bcd83d6f2b86 100644
|
||||||
writel(host->saved_tune_para.pad_cmd_tune,
|
writel(host->saved_tune_para.pad_cmd_tune,
|
||||||
host->base + PAD_CMD_TUNE);
|
host->base + PAD_CMD_TUNE);
|
||||||
}
|
}
|
||||||
@@ -1224,6 +1231,7 @@ static irqreturn_t msdc_irq(int irq, void *dev_id)
|
@@ -1224,6 +1231,7 @@ static irqreturn_t msdc_irq(int irq, voi
|
||||||
static void msdc_init_hw(struct msdc_host *host)
|
static void msdc_init_hw(struct msdc_host *host)
|
||||||
{
|
{
|
||||||
u32 val;
|
u32 val;
|
||||||
|
@ -88,7 +86,7 @@ index ab2fbbbdfda3..bcd83d6f2b86 100644
|
||||||
|
|
||||||
/* Configure to MMC/SD mode, clock free running */
|
/* Configure to MMC/SD mode, clock free running */
|
||||||
sdr_set_bits(host->base + MSDC_CFG, MSDC_CFG_MODE | MSDC_CFG_CKPDN);
|
sdr_set_bits(host->base + MSDC_CFG, MSDC_CFG_MODE | MSDC_CFG_CKPDN);
|
||||||
@@ -1239,7 +1247,7 @@ static void msdc_init_hw(struct msdc_host *host)
|
@@ -1239,7 +1247,7 @@ static void msdc_init_hw(struct msdc_hos
|
||||||
val = readl(host->base + MSDC_INT);
|
val = readl(host->base + MSDC_INT);
|
||||||
writel(val, host->base + MSDC_INT);
|
writel(val, host->base + MSDC_INT);
|
||||||
|
|
||||||
|
@ -97,7 +95,7 @@ index ab2fbbbdfda3..bcd83d6f2b86 100644
|
||||||
writel(0, host->base + MSDC_IOCON);
|
writel(0, host->base + MSDC_IOCON);
|
||||||
sdr_set_field(host->base + MSDC_IOCON, MSDC_IOCON_DDLSEL, 0);
|
sdr_set_field(host->base + MSDC_IOCON, MSDC_IOCON_DDLSEL, 0);
|
||||||
writel(0x403c0046, host->base + MSDC_PATCH_BIT);
|
writel(0x403c0046, host->base + MSDC_PATCH_BIT);
|
||||||
@@ -1259,7 +1267,7 @@ static void msdc_init_hw(struct msdc_host *host)
|
@@ -1259,7 +1267,7 @@ static void msdc_init_hw(struct msdc_hos
|
||||||
sdr_set_field(host->base + SDC_CFG, SDC_CFG_DTOC, 3);
|
sdr_set_field(host->base + SDC_CFG, SDC_CFG_DTOC, 3);
|
||||||
|
|
||||||
host->def_tune_para.iocon = readl(host->base + MSDC_IOCON);
|
host->def_tune_para.iocon = readl(host->base + MSDC_IOCON);
|
||||||
|
@ -106,7 +104,7 @@ index ab2fbbbdfda3..bcd83d6f2b86 100644
|
||||||
dev_dbg(host->dev, "init hardware done!");
|
dev_dbg(host->dev, "init hardware done!");
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1402,18 +1410,19 @@ static int msdc_tune_response(struct mmc_host *mmc, u32 opcode)
|
@@ -1402,18 +1410,19 @@ static int msdc_tune_response(struct mmc
|
||||||
struct msdc_delay_phase internal_delay_phase;
|
struct msdc_delay_phase internal_delay_phase;
|
||||||
u8 final_delay, final_maxlen;
|
u8 final_delay, final_maxlen;
|
||||||
u32 internal_delay = 0;
|
u32 internal_delay = 0;
|
||||||
|
@ -128,7 +126,7 @@ index ab2fbbbdfda3..bcd83d6f2b86 100644
|
||||||
MSDC_PAD_TUNE_CMDRDLY, i);
|
MSDC_PAD_TUNE_CMDRDLY, i);
|
||||||
/*
|
/*
|
||||||
* Using the same parameters, it may sometimes pass the test,
|
* Using the same parameters, it may sometimes pass the test,
|
||||||
@@ -1437,7 +1446,7 @@ static int msdc_tune_response(struct mmc_host *mmc, u32 opcode)
|
@@ -1437,7 +1446,7 @@ static int msdc_tune_response(struct mmc
|
||||||
|
|
||||||
sdr_set_bits(host->base + MSDC_IOCON, MSDC_IOCON_RSPL);
|
sdr_set_bits(host->base + MSDC_IOCON, MSDC_IOCON_RSPL);
|
||||||
for (i = 0; i < PAD_DELAY_MAX; i++) {
|
for (i = 0; i < PAD_DELAY_MAX; i++) {
|
||||||
|
@ -137,7 +135,7 @@ index ab2fbbbdfda3..bcd83d6f2b86 100644
|
||||||
MSDC_PAD_TUNE_CMDRDLY, i);
|
MSDC_PAD_TUNE_CMDRDLY, i);
|
||||||
/*
|
/*
|
||||||
* Using the same parameters, it may sometimes pass the test,
|
* Using the same parameters, it may sometimes pass the test,
|
||||||
@@ -1462,12 +1471,12 @@ static int msdc_tune_response(struct mmc_host *mmc, u32 opcode)
|
@@ -1462,12 +1471,12 @@ skip_fall:
|
||||||
final_maxlen = final_fall_delay.maxlen;
|
final_maxlen = final_fall_delay.maxlen;
|
||||||
if (final_maxlen == final_rise_delay.maxlen) {
|
if (final_maxlen == final_rise_delay.maxlen) {
|
||||||
sdr_clr_bits(host->base + MSDC_IOCON, MSDC_IOCON_RSPL);
|
sdr_clr_bits(host->base + MSDC_IOCON, MSDC_IOCON_RSPL);
|
||||||
|
@ -152,7 +150,7 @@ index ab2fbbbdfda3..bcd83d6f2b86 100644
|
||||||
final_fall_delay.final_phase);
|
final_fall_delay.final_phase);
|
||||||
final_delay = final_fall_delay.final_phase;
|
final_delay = final_fall_delay.final_phase;
|
||||||
}
|
}
|
||||||
@@ -1475,7 +1484,7 @@ static int msdc_tune_response(struct mmc_host *mmc, u32 opcode)
|
@@ -1475,7 +1484,7 @@ skip_fall:
|
||||||
goto skip_internal;
|
goto skip_internal;
|
||||||
|
|
||||||
for (i = 0; i < PAD_DELAY_MAX; i++) {
|
for (i = 0; i < PAD_DELAY_MAX; i++) {
|
||||||
|
@ -161,7 +159,7 @@ index ab2fbbbdfda3..bcd83d6f2b86 100644
|
||||||
MSDC_PAD_TUNE_CMDRRDLY, i);
|
MSDC_PAD_TUNE_CMDRRDLY, i);
|
||||||
mmc_send_tuning(mmc, opcode, &cmd_err);
|
mmc_send_tuning(mmc, opcode, &cmd_err);
|
||||||
if (!cmd_err)
|
if (!cmd_err)
|
||||||
@@ -1483,7 +1492,7 @@ static int msdc_tune_response(struct mmc_host *mmc, u32 opcode)
|
@@ -1483,7 +1492,7 @@ skip_fall:
|
||||||
}
|
}
|
||||||
dev_dbg(host->dev, "Final internal delay: 0x%x\n", internal_delay);
|
dev_dbg(host->dev, "Final internal delay: 0x%x\n", internal_delay);
|
||||||
internal_delay_phase = get_best_delay(host, internal_delay);
|
internal_delay_phase = get_best_delay(host, internal_delay);
|
||||||
|
@ -170,7 +168,7 @@ index ab2fbbbdfda3..bcd83d6f2b86 100644
|
||||||
internal_delay_phase.final_phase);
|
internal_delay_phase.final_phase);
|
||||||
skip_internal:
|
skip_internal:
|
||||||
dev_dbg(host->dev, "Final cmd pad delay: %x\n", final_delay);
|
dev_dbg(host->dev, "Final cmd pad delay: %x\n", final_delay);
|
||||||
@@ -1545,12 +1554,13 @@ static int msdc_tune_data(struct mmc_host *mmc, u32 opcode)
|
@@ -1545,12 +1554,13 @@ static int msdc_tune_data(struct mmc_hos
|
||||||
u32 rise_delay = 0, fall_delay = 0;
|
u32 rise_delay = 0, fall_delay = 0;
|
||||||
struct msdc_delay_phase final_rise_delay, final_fall_delay = { 0,};
|
struct msdc_delay_phase final_rise_delay, final_fall_delay = { 0,};
|
||||||
u8 final_delay, final_maxlen;
|
u8 final_delay, final_maxlen;
|
||||||
|
@ -185,7 +183,7 @@ index ab2fbbbdfda3..bcd83d6f2b86 100644
|
||||||
MSDC_PAD_TUNE_DATRRDLY, i);
|
MSDC_PAD_TUNE_DATRRDLY, i);
|
||||||
ret = mmc_send_tuning(mmc, opcode, NULL);
|
ret = mmc_send_tuning(mmc, opcode, NULL);
|
||||||
if (!ret)
|
if (!ret)
|
||||||
@@ -1565,7 +1575,7 @@ static int msdc_tune_data(struct mmc_host *mmc, u32 opcode)
|
@@ -1565,7 +1575,7 @@ static int msdc_tune_data(struct mmc_hos
|
||||||
sdr_set_bits(host->base + MSDC_IOCON, MSDC_IOCON_DSPL);
|
sdr_set_bits(host->base + MSDC_IOCON, MSDC_IOCON_DSPL);
|
||||||
sdr_set_bits(host->base + MSDC_IOCON, MSDC_IOCON_W_DSPL);
|
sdr_set_bits(host->base + MSDC_IOCON, MSDC_IOCON_W_DSPL);
|
||||||
for (i = 0; i < PAD_DELAY_MAX; i++) {
|
for (i = 0; i < PAD_DELAY_MAX; i++) {
|
||||||
|
@ -194,7 +192,7 @@ index ab2fbbbdfda3..bcd83d6f2b86 100644
|
||||||
MSDC_PAD_TUNE_DATRRDLY, i);
|
MSDC_PAD_TUNE_DATRRDLY, i);
|
||||||
ret = mmc_send_tuning(mmc, opcode, NULL);
|
ret = mmc_send_tuning(mmc, opcode, NULL);
|
||||||
if (!ret)
|
if (!ret)
|
||||||
@@ -1578,14 +1588,14 @@ static int msdc_tune_data(struct mmc_host *mmc, u32 opcode)
|
@@ -1578,14 +1588,14 @@ skip_fall:
|
||||||
if (final_maxlen == final_rise_delay.maxlen) {
|
if (final_maxlen == final_rise_delay.maxlen) {
|
||||||
sdr_clr_bits(host->base + MSDC_IOCON, MSDC_IOCON_DSPL);
|
sdr_clr_bits(host->base + MSDC_IOCON, MSDC_IOCON_DSPL);
|
||||||
sdr_clr_bits(host->base + MSDC_IOCON, MSDC_IOCON_W_DSPL);
|
sdr_clr_bits(host->base + MSDC_IOCON, MSDC_IOCON_W_DSPL);
|
||||||
|
@ -211,7 +209,7 @@ index ab2fbbbdfda3..bcd83d6f2b86 100644
|
||||||
MSDC_PAD_TUNE_DATRRDLY,
|
MSDC_PAD_TUNE_DATRRDLY,
|
||||||
final_fall_delay.final_phase);
|
final_fall_delay.final_phase);
|
||||||
final_delay = final_fall_delay.final_phase;
|
final_delay = final_fall_delay.final_phase;
|
||||||
@@ -1599,6 +1609,7 @@ static int msdc_execute_tuning(struct mmc_host *mmc, u32 opcode)
|
@@ -1599,6 +1609,7 @@ static int msdc_execute_tuning(struct mm
|
||||||
{
|
{
|
||||||
struct msdc_host *host = mmc_priv(mmc);
|
struct msdc_host *host = mmc_priv(mmc);
|
||||||
int ret;
|
int ret;
|
||||||
|
@ -219,7 +217,7 @@ index ab2fbbbdfda3..bcd83d6f2b86 100644
|
||||||
|
|
||||||
if (host->hs400_mode &&
|
if (host->hs400_mode &&
|
||||||
host->dev_comp->hs400_tune)
|
host->dev_comp->hs400_tune)
|
||||||
@@ -1616,7 +1627,7 @@ static int msdc_execute_tuning(struct mmc_host *mmc, u32 opcode)
|
@@ -1616,7 +1627,7 @@ static int msdc_execute_tuning(struct mm
|
||||||
}
|
}
|
||||||
|
|
||||||
host->saved_tune_para.iocon = readl(host->base + MSDC_IOCON);
|
host->saved_tune_para.iocon = readl(host->base + MSDC_IOCON);
|
||||||
|
@ -228,7 +226,7 @@ index ab2fbbbdfda3..bcd83d6f2b86 100644
|
||||||
host->saved_tune_para.pad_cmd_tune = readl(host->base + PAD_CMD_TUNE);
|
host->saved_tune_para.pad_cmd_tune = readl(host->base + PAD_CMD_TUNE);
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
@@ -1857,10 +1868,12 @@ static int msdc_drv_remove(struct platform_device *pdev)
|
@@ -1857,10 +1868,12 @@ static int msdc_drv_remove(struct platfo
|
||||||
#ifdef CONFIG_PM
|
#ifdef CONFIG_PM
|
||||||
static void msdc_save_reg(struct msdc_host *host)
|
static void msdc_save_reg(struct msdc_host *host)
|
||||||
{
|
{
|
||||||
|
@ -242,7 +240,7 @@ index ab2fbbbdfda3..bcd83d6f2b86 100644
|
||||||
host->save_para.patch_bit0 = readl(host->base + MSDC_PATCH_BIT);
|
host->save_para.patch_bit0 = readl(host->base + MSDC_PATCH_BIT);
|
||||||
host->save_para.patch_bit1 = readl(host->base + MSDC_PATCH_BIT1);
|
host->save_para.patch_bit1 = readl(host->base + MSDC_PATCH_BIT1);
|
||||||
host->save_para.pad_ds_tune = readl(host->base + PAD_DS_TUNE);
|
host->save_para.pad_ds_tune = readl(host->base + PAD_DS_TUNE);
|
||||||
@@ -1870,10 +1883,12 @@ static void msdc_save_reg(struct msdc_host *host)
|
@@ -1870,10 +1883,12 @@ static void msdc_save_reg(struct msdc_ho
|
||||||
|
|
||||||
static void msdc_restore_reg(struct msdc_host *host)
|
static void msdc_restore_reg(struct msdc_host *host)
|
||||||
{
|
{
|
||||||
|
@ -256,6 +254,3 @@ index ab2fbbbdfda3..bcd83d6f2b86 100644
|
||||||
writel(host->save_para.patch_bit0, host->base + MSDC_PATCH_BIT);
|
writel(host->save_para.patch_bit0, host->base + MSDC_PATCH_BIT);
|
||||||
writel(host->save_para.patch_bit1, host->base + MSDC_PATCH_BIT1);
|
writel(host->save_para.patch_bit1, host->base + MSDC_PATCH_BIT1);
|
||||||
writel(host->save_para.pad_ds_tune, host->base + PAD_DS_TUNE);
|
writel(host->save_para.pad_ds_tune, host->base + PAD_DS_TUNE);
|
||||||
--
|
|
||||||
2.11.0
|
|
||||||
|
|
||||||
|
|
|
@ -13,8 +13,6 @@ Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
|
||||||
drivers/mmc/host/mtk-sd.c | 52 +++++++++++++++++++++++++++++++++++++++++++++--
|
drivers/mmc/host/mtk-sd.c | 52 +++++++++++++++++++++++++++++++++++++++++++++--
|
||||||
1 file changed, 50 insertions(+), 2 deletions(-)
|
1 file changed, 50 insertions(+), 2 deletions(-)
|
||||||
|
|
||||||
diff --git a/drivers/mmc/host/mtk-sd.c b/drivers/mmc/host/mtk-sd.c
|
|
||||||
index bcd83d6f2b86..8113bacc1540 100644
|
|
||||||
--- a/drivers/mmc/host/mtk-sd.c
|
--- a/drivers/mmc/host/mtk-sd.c
|
||||||
+++ b/drivers/mmc/host/mtk-sd.c
|
+++ b/drivers/mmc/host/mtk-sd.c
|
||||||
@@ -74,6 +74,7 @@
|
@@ -74,6 +74,7 @@
|
||||||
|
@ -63,7 +61,7 @@ index bcd83d6f2b86..8113bacc1540 100644
|
||||||
};
|
};
|
||||||
|
|
||||||
struct msdc_tune_para {
|
struct msdc_tune_para {
|
||||||
@@ -365,24 +378,32 @@ static const struct mtk_mmc_compatible mt8135_compat = {
|
@@ -365,24 +378,32 @@ static const struct mtk_mmc_compatible m
|
||||||
.clk_div_bits = 8,
|
.clk_div_bits = 8,
|
||||||
.hs400_tune = false,
|
.hs400_tune = false,
|
||||||
.pad_tune_reg = MSDC_PAD_TUNE,
|
.pad_tune_reg = MSDC_PAD_TUNE,
|
||||||
|
@ -96,7 +94,7 @@ index bcd83d6f2b86..8113bacc1540 100644
|
||||||
};
|
};
|
||||||
|
|
||||||
static const struct of_device_id msdc_of_ids[] = {
|
static const struct of_device_id msdc_of_ids[] = {
|
||||||
@@ -1252,8 +1273,29 @@ static void msdc_init_hw(struct msdc_host *host)
|
@@ -1252,8 +1273,29 @@ static void msdc_init_hw(struct msdc_hos
|
||||||
sdr_set_field(host->base + MSDC_IOCON, MSDC_IOCON_DDLSEL, 0);
|
sdr_set_field(host->base + MSDC_IOCON, MSDC_IOCON_DDLSEL, 0);
|
||||||
writel(0x403c0046, host->base + MSDC_PATCH_BIT);
|
writel(0x403c0046, host->base + MSDC_PATCH_BIT);
|
||||||
sdr_set_field(host->base + MSDC_PATCH_BIT, MSDC_CKGEN_MSDC_DLY_SEL, 1);
|
sdr_set_field(host->base + MSDC_PATCH_BIT, MSDC_CKGEN_MSDC_DLY_SEL, 1);
|
||||||
|
@ -127,7 +125,7 @@ index bcd83d6f2b86..8113bacc1540 100644
|
||||||
|
|
||||||
/* Configure to enable SDIO mode.
|
/* Configure to enable SDIO mode.
|
||||||
* it's must otherwise sdio cmd5 failed
|
* it's must otherwise sdio cmd5 failed
|
||||||
@@ -1268,6 +1310,8 @@ static void msdc_init_hw(struct msdc_host *host)
|
@@ -1268,6 +1310,8 @@ static void msdc_init_hw(struct msdc_hos
|
||||||
|
|
||||||
host->def_tune_para.iocon = readl(host->base + MSDC_IOCON);
|
host->def_tune_para.iocon = readl(host->base + MSDC_IOCON);
|
||||||
host->def_tune_para.pad_tune = readl(host->base + tune_reg);
|
host->def_tune_para.pad_tune = readl(host->base + tune_reg);
|
||||||
|
@ -136,7 +134,7 @@ index bcd83d6f2b86..8113bacc1540 100644
|
||||||
dev_dbg(host->dev, "init hardware done!");
|
dev_dbg(host->dev, "init hardware done!");
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1480,7 +1524,7 @@ static int msdc_tune_response(struct mmc_host *mmc, u32 opcode)
|
@@ -1480,7 +1524,7 @@ skip_fall:
|
||||||
final_fall_delay.final_phase);
|
final_fall_delay.final_phase);
|
||||||
final_delay = final_fall_delay.final_phase;
|
final_delay = final_fall_delay.final_phase;
|
||||||
}
|
}
|
||||||
|
@ -145,7 +143,7 @@ index bcd83d6f2b86..8113bacc1540 100644
|
||||||
goto skip_internal;
|
goto skip_internal;
|
||||||
|
|
||||||
for (i = 0; i < PAD_DELAY_MAX; i++) {
|
for (i = 0; i < PAD_DELAY_MAX; i++) {
|
||||||
@@ -1638,6 +1682,8 @@ static int msdc_prepare_hs400_tuning(struct mmc_host *mmc, struct mmc_ios *ios)
|
@@ -1638,6 +1682,8 @@ static int msdc_prepare_hs400_tuning(str
|
||||||
host->hs400_mode = true;
|
host->hs400_mode = true;
|
||||||
|
|
||||||
writel(host->hs400_ds_delay, host->base + PAD_DS_TUNE);
|
writel(host->hs400_ds_delay, host->base + PAD_DS_TUNE);
|
||||||
|
@ -154,7 +152,7 @@ index bcd83d6f2b86..8113bacc1540 100644
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1876,6 +1922,7 @@ static void msdc_save_reg(struct msdc_host *host)
|
@@ -1876,6 +1922,7 @@ static void msdc_save_reg(struct msdc_ho
|
||||||
host->save_para.pad_tune = readl(host->base + tune_reg);
|
host->save_para.pad_tune = readl(host->base + tune_reg);
|
||||||
host->save_para.patch_bit0 = readl(host->base + MSDC_PATCH_BIT);
|
host->save_para.patch_bit0 = readl(host->base + MSDC_PATCH_BIT);
|
||||||
host->save_para.patch_bit1 = readl(host->base + MSDC_PATCH_BIT1);
|
host->save_para.patch_bit1 = readl(host->base + MSDC_PATCH_BIT1);
|
||||||
|
@ -162,7 +160,7 @@ index bcd83d6f2b86..8113bacc1540 100644
|
||||||
host->save_para.pad_ds_tune = readl(host->base + PAD_DS_TUNE);
|
host->save_para.pad_ds_tune = readl(host->base + PAD_DS_TUNE);
|
||||||
host->save_para.pad_cmd_tune = readl(host->base + PAD_CMD_TUNE);
|
host->save_para.pad_cmd_tune = readl(host->base + PAD_CMD_TUNE);
|
||||||
host->save_para.emmc50_cfg0 = readl(host->base + EMMC50_CFG0);
|
host->save_para.emmc50_cfg0 = readl(host->base + EMMC50_CFG0);
|
||||||
@@ -1891,6 +1938,7 @@ static void msdc_restore_reg(struct msdc_host *host)
|
@@ -1891,6 +1938,7 @@ static void msdc_restore_reg(struct msdc
|
||||||
writel(host->save_para.pad_tune, host->base + tune_reg);
|
writel(host->save_para.pad_tune, host->base + tune_reg);
|
||||||
writel(host->save_para.patch_bit0, host->base + MSDC_PATCH_BIT);
|
writel(host->save_para.patch_bit0, host->base + MSDC_PATCH_BIT);
|
||||||
writel(host->save_para.patch_bit1, host->base + MSDC_PATCH_BIT1);
|
writel(host->save_para.patch_bit1, host->base + MSDC_PATCH_BIT1);
|
||||||
|
@ -170,6 +168,3 @@ index bcd83d6f2b86..8113bacc1540 100644
|
||||||
writel(host->save_para.pad_ds_tune, host->base + PAD_DS_TUNE);
|
writel(host->save_para.pad_ds_tune, host->base + PAD_DS_TUNE);
|
||||||
writel(host->save_para.pad_cmd_tune, host->base + PAD_CMD_TUNE);
|
writel(host->save_para.pad_cmd_tune, host->base + PAD_CMD_TUNE);
|
||||||
writel(host->save_para.emmc50_cfg0, host->base + EMMC50_CFG0);
|
writel(host->save_para.emmc50_cfg0, host->base + EMMC50_CFG0);
|
||||||
--
|
|
||||||
2.11.0
|
|
||||||
|
|
||||||
|
|
|
@ -14,8 +14,6 @@ Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
|
||||||
drivers/mmc/host/mtk-sd.c | 7 +++++++
|
drivers/mmc/host/mtk-sd.c | 7 +++++++
|
||||||
1 file changed, 7 insertions(+)
|
1 file changed, 7 insertions(+)
|
||||||
|
|
||||||
diff --git a/drivers/mmc/host/mtk-sd.c b/drivers/mmc/host/mtk-sd.c
|
|
||||||
index 8113bacc1540..eceaee86ba4d 100644
|
|
||||||
--- a/drivers/mmc/host/mtk-sd.c
|
--- a/drivers/mmc/host/mtk-sd.c
|
||||||
+++ b/drivers/mmc/host/mtk-sd.c
|
+++ b/drivers/mmc/host/mtk-sd.c
|
||||||
@@ -316,6 +316,7 @@ struct mtk_mmc_compatible {
|
@@ -316,6 +316,7 @@ struct mtk_mmc_compatible {
|
||||||
|
@ -26,7 +24,7 @@ index 8113bacc1540..eceaee86ba4d 100644
|
||||||
};
|
};
|
||||||
|
|
||||||
struct msdc_tune_para {
|
struct msdc_tune_para {
|
||||||
@@ -380,6 +381,7 @@ static const struct mtk_mmc_compatible mt8135_compat = {
|
@@ -380,6 +381,7 @@ static const struct mtk_mmc_compatible m
|
||||||
.pad_tune_reg = MSDC_PAD_TUNE,
|
.pad_tune_reg = MSDC_PAD_TUNE,
|
||||||
.async_fifo = false,
|
.async_fifo = false,
|
||||||
.data_tune = false,
|
.data_tune = false,
|
||||||
|
@ -34,7 +32,7 @@ index 8113bacc1540..eceaee86ba4d 100644
|
||||||
};
|
};
|
||||||
|
|
||||||
static const struct mtk_mmc_compatible mt8173_compat = {
|
static const struct mtk_mmc_compatible mt8173_compat = {
|
||||||
@@ -388,6 +390,7 @@ static const struct mtk_mmc_compatible mt8173_compat = {
|
@@ -388,6 +390,7 @@ static const struct mtk_mmc_compatible m
|
||||||
.pad_tune_reg = MSDC_PAD_TUNE,
|
.pad_tune_reg = MSDC_PAD_TUNE,
|
||||||
.async_fifo = false,
|
.async_fifo = false,
|
||||||
.data_tune = false,
|
.data_tune = false,
|
||||||
|
@ -42,7 +40,7 @@ index 8113bacc1540..eceaee86ba4d 100644
|
||||||
};
|
};
|
||||||
|
|
||||||
static const struct mtk_mmc_compatible mt2701_compat = {
|
static const struct mtk_mmc_compatible mt2701_compat = {
|
||||||
@@ -396,6 +399,7 @@ static const struct mtk_mmc_compatible mt2701_compat = {
|
@@ -396,6 +399,7 @@ static const struct mtk_mmc_compatible m
|
||||||
.pad_tune_reg = MSDC_PAD_TUNE0,
|
.pad_tune_reg = MSDC_PAD_TUNE0,
|
||||||
.async_fifo = true,
|
.async_fifo = true,
|
||||||
.data_tune = true,
|
.data_tune = true,
|
||||||
|
@ -50,7 +48,7 @@ index 8113bacc1540..eceaee86ba4d 100644
|
||||||
};
|
};
|
||||||
|
|
||||||
static const struct mtk_mmc_compatible mt2712_compat = {
|
static const struct mtk_mmc_compatible mt2712_compat = {
|
||||||
@@ -404,6 +408,7 @@ static const struct mtk_mmc_compatible mt2712_compat = {
|
@@ -404,6 +408,7 @@ static const struct mtk_mmc_compatible m
|
||||||
.pad_tune_reg = MSDC_PAD_TUNE0,
|
.pad_tune_reg = MSDC_PAD_TUNE0,
|
||||||
.async_fifo = true,
|
.async_fifo = true,
|
||||||
.data_tune = true,
|
.data_tune = true,
|
||||||
|
@ -58,7 +56,7 @@ index 8113bacc1540..eceaee86ba4d 100644
|
||||||
};
|
};
|
||||||
|
|
||||||
static const struct of_device_id msdc_of_ids[] = {
|
static const struct of_device_id msdc_of_ids[] = {
|
||||||
@@ -1275,6 +1280,8 @@ static void msdc_init_hw(struct msdc_host *host)
|
@@ -1275,6 +1280,8 @@ static void msdc_init_hw(struct msdc_hos
|
||||||
sdr_set_field(host->base + MSDC_PATCH_BIT, MSDC_CKGEN_MSDC_DLY_SEL, 1);
|
sdr_set_field(host->base + MSDC_PATCH_BIT, MSDC_CKGEN_MSDC_DLY_SEL, 1);
|
||||||
writel(0xffff4089, host->base + MSDC_PATCH_BIT1);
|
writel(0xffff4089, host->base + MSDC_PATCH_BIT1);
|
||||||
sdr_set_bits(host->base + EMMC50_CFG0, EMMC50_CFG_CFCSTS_SEL);
|
sdr_set_bits(host->base + EMMC50_CFG0, EMMC50_CFG_CFCSTS_SEL);
|
||||||
|
@ -67,6 +65,3 @@ index 8113bacc1540..eceaee86ba4d 100644
|
||||||
if (host->dev_comp->async_fifo) {
|
if (host->dev_comp->async_fifo) {
|
||||||
sdr_set_field(host->base + MSDC_PATCH_BIT2,
|
sdr_set_field(host->base + MSDC_PATCH_BIT2,
|
||||||
MSDC_PB2_RESPWAIT, 3);
|
MSDC_PB2_RESPWAIT, 3);
|
||||||
--
|
|
||||||
2.11.0
|
|
||||||
|
|
||||||
|
|
|
@ -14,8 +14,6 @@ Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
|
||||||
drivers/mmc/host/mtk-sd.c | 47 +++++++++++++++++++++++++++++++++++++++++++----
|
drivers/mmc/host/mtk-sd.c | 47 +++++++++++++++++++++++++++++++++++++++++++----
|
||||||
1 file changed, 43 insertions(+), 4 deletions(-)
|
1 file changed, 43 insertions(+), 4 deletions(-)
|
||||||
|
|
||||||
diff --git a/drivers/mmc/host/mtk-sd.c b/drivers/mmc/host/mtk-sd.c
|
|
||||||
index eceaee86ba4d..94d16a3a8d94 100644
|
|
||||||
--- a/drivers/mmc/host/mtk-sd.c
|
--- a/drivers/mmc/host/mtk-sd.c
|
||||||
+++ b/drivers/mmc/host/mtk-sd.c
|
+++ b/drivers/mmc/host/mtk-sd.c
|
||||||
@@ -67,6 +67,7 @@
|
@@ -67,6 +67,7 @@
|
||||||
|
@ -80,7 +78,7 @@ index eceaee86ba4d..94d16a3a8d94 100644
|
||||||
};
|
};
|
||||||
|
|
||||||
struct msdc_tune_para {
|
struct msdc_tune_para {
|
||||||
@@ -382,6 +395,8 @@ static const struct mtk_mmc_compatible mt8135_compat = {
|
@@ -382,6 +395,8 @@ static const struct mtk_mmc_compatible m
|
||||||
.async_fifo = false,
|
.async_fifo = false,
|
||||||
.data_tune = false,
|
.data_tune = false,
|
||||||
.busy_check = false,
|
.busy_check = false,
|
||||||
|
@ -89,7 +87,7 @@ index eceaee86ba4d..94d16a3a8d94 100644
|
||||||
};
|
};
|
||||||
|
|
||||||
static const struct mtk_mmc_compatible mt8173_compat = {
|
static const struct mtk_mmc_compatible mt8173_compat = {
|
||||||
@@ -391,6 +406,8 @@ static const struct mtk_mmc_compatible mt8173_compat = {
|
@@ -391,6 +406,8 @@ static const struct mtk_mmc_compatible m
|
||||||
.async_fifo = false,
|
.async_fifo = false,
|
||||||
.data_tune = false,
|
.data_tune = false,
|
||||||
.busy_check = false,
|
.busy_check = false,
|
||||||
|
@ -98,7 +96,7 @@ index eceaee86ba4d..94d16a3a8d94 100644
|
||||||
};
|
};
|
||||||
|
|
||||||
static const struct mtk_mmc_compatible mt2701_compat = {
|
static const struct mtk_mmc_compatible mt2701_compat = {
|
||||||
@@ -400,6 +417,8 @@ static const struct mtk_mmc_compatible mt2701_compat = {
|
@@ -400,6 +417,8 @@ static const struct mtk_mmc_compatible m
|
||||||
.async_fifo = true,
|
.async_fifo = true,
|
||||||
.data_tune = true,
|
.data_tune = true,
|
||||||
.busy_check = false,
|
.busy_check = false,
|
||||||
|
@ -107,7 +105,7 @@ index eceaee86ba4d..94d16a3a8d94 100644
|
||||||
};
|
};
|
||||||
|
|
||||||
static const struct mtk_mmc_compatible mt2712_compat = {
|
static const struct mtk_mmc_compatible mt2712_compat = {
|
||||||
@@ -409,6 +428,8 @@ static const struct mtk_mmc_compatible mt2712_compat = {
|
@@ -409,6 +428,8 @@ static const struct mtk_mmc_compatible m
|
||||||
.async_fifo = true,
|
.async_fifo = true,
|
||||||
.data_tune = true,
|
.data_tune = true,
|
||||||
.busy_check = true,
|
.busy_check = true,
|
||||||
|
@ -116,7 +114,7 @@ index eceaee86ba4d..94d16a3a8d94 100644
|
||||||
};
|
};
|
||||||
|
|
||||||
static const struct of_device_id msdc_of_ids[] = {
|
static const struct of_device_id msdc_of_ids[] = {
|
||||||
@@ -1280,15 +1301,31 @@ static void msdc_init_hw(struct msdc_host *host)
|
@@ -1280,15 +1301,31 @@ static void msdc_init_hw(struct msdc_hos
|
||||||
sdr_set_field(host->base + MSDC_PATCH_BIT, MSDC_CKGEN_MSDC_DLY_SEL, 1);
|
sdr_set_field(host->base + MSDC_PATCH_BIT, MSDC_CKGEN_MSDC_DLY_SEL, 1);
|
||||||
writel(0xffff4089, host->base + MSDC_PATCH_BIT1);
|
writel(0xffff4089, host->base + MSDC_PATCH_BIT1);
|
||||||
sdr_set_bits(host->base + EMMC50_CFG0, EMMC50_CFG_CFCSTS_SEL);
|
sdr_set_bits(host->base + EMMC50_CFG0, EMMC50_CFG_CFCSTS_SEL);
|
||||||
|
@ -152,7 +150,7 @@ index eceaee86ba4d..94d16a3a8d94 100644
|
||||||
/* use async fifo, then no need tune internal delay */
|
/* use async fifo, then no need tune internal delay */
|
||||||
sdr_clr_bits(host->base + MSDC_PATCH_BIT2,
|
sdr_clr_bits(host->base + MSDC_PATCH_BIT2,
|
||||||
MSDC_PATCH_BIT2_CFGRESP);
|
MSDC_PATCH_BIT2_CFGRESP);
|
||||||
@@ -1933,6 +1970,7 @@ static void msdc_save_reg(struct msdc_host *host)
|
@@ -1933,6 +1970,7 @@ static void msdc_save_reg(struct msdc_ho
|
||||||
host->save_para.pad_ds_tune = readl(host->base + PAD_DS_TUNE);
|
host->save_para.pad_ds_tune = readl(host->base + PAD_DS_TUNE);
|
||||||
host->save_para.pad_cmd_tune = readl(host->base + PAD_CMD_TUNE);
|
host->save_para.pad_cmd_tune = readl(host->base + PAD_CMD_TUNE);
|
||||||
host->save_para.emmc50_cfg0 = readl(host->base + EMMC50_CFG0);
|
host->save_para.emmc50_cfg0 = readl(host->base + EMMC50_CFG0);
|
||||||
|
@ -160,7 +158,7 @@ index eceaee86ba4d..94d16a3a8d94 100644
|
||||||
}
|
}
|
||||||
|
|
||||||
static void msdc_restore_reg(struct msdc_host *host)
|
static void msdc_restore_reg(struct msdc_host *host)
|
||||||
@@ -1949,6 +1987,7 @@ static void msdc_restore_reg(struct msdc_host *host)
|
@@ -1949,6 +1987,7 @@ static void msdc_restore_reg(struct msdc
|
||||||
writel(host->save_para.pad_ds_tune, host->base + PAD_DS_TUNE);
|
writel(host->save_para.pad_ds_tune, host->base + PAD_DS_TUNE);
|
||||||
writel(host->save_para.pad_cmd_tune, host->base + PAD_CMD_TUNE);
|
writel(host->save_para.pad_cmd_tune, host->base + PAD_CMD_TUNE);
|
||||||
writel(host->save_para.emmc50_cfg0, host->base + EMMC50_CFG0);
|
writel(host->save_para.emmc50_cfg0, host->base + EMMC50_CFG0);
|
||||||
|
@ -168,6 +166,3 @@ index eceaee86ba4d..94d16a3a8d94 100644
|
||||||
}
|
}
|
||||||
|
|
||||||
static int msdc_runtime_suspend(struct device *dev)
|
static int msdc_runtime_suspend(struct device *dev)
|
||||||
--
|
|
||||||
2.11.0
|
|
||||||
|
|
||||||
|
|
|
@ -13,8 +13,6 @@ Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
|
||||||
drivers/mmc/host/mtk-sd.c | 23 ++++++++++++++++++++++-
|
drivers/mmc/host/mtk-sd.c | 23 ++++++++++++++++++++++-
|
||||||
1 file changed, 22 insertions(+), 1 deletion(-)
|
1 file changed, 22 insertions(+), 1 deletion(-)
|
||||||
|
|
||||||
diff --git a/drivers/mmc/host/mtk-sd.c b/drivers/mmc/host/mtk-sd.c
|
|
||||||
index 94d16a3a8d94..a2f26c9b17b4 100644
|
|
||||||
--- a/drivers/mmc/host/mtk-sd.c
|
--- a/drivers/mmc/host/mtk-sd.c
|
||||||
+++ b/drivers/mmc/host/mtk-sd.c
|
+++ b/drivers/mmc/host/mtk-sd.c
|
||||||
@@ -372,6 +372,7 @@ struct msdc_host {
|
@@ -372,6 +372,7 @@ struct msdc_host {
|
||||||
|
@ -25,7 +23,7 @@ index 94d16a3a8d94..a2f26c9b17b4 100644
|
||||||
u32 mclk; /* mmc subsystem clock frequency */
|
u32 mclk; /* mmc subsystem clock frequency */
|
||||||
u32 src_clk_freq; /* source clock frequency */
|
u32 src_clk_freq; /* source clock frequency */
|
||||||
u32 sclk; /* SD/MS bus clock frequency */
|
u32 sclk; /* SD/MS bus clock frequency */
|
||||||
@@ -616,6 +617,7 @@ static void msdc_set_timeout(struct msdc_host *host, u32 ns, u32 clks)
|
@@ -616,6 +617,7 @@ static void msdc_set_timeout(struct msdc
|
||||||
|
|
||||||
static void msdc_gate_clock(struct msdc_host *host)
|
static void msdc_gate_clock(struct msdc_host *host)
|
||||||
{
|
{
|
||||||
|
@ -33,7 +31,7 @@ index 94d16a3a8d94..a2f26c9b17b4 100644
|
||||||
clk_disable_unprepare(host->src_clk);
|
clk_disable_unprepare(host->src_clk);
|
||||||
clk_disable_unprepare(host->h_clk);
|
clk_disable_unprepare(host->h_clk);
|
||||||
}
|
}
|
||||||
@@ -624,6 +626,7 @@ static void msdc_ungate_clock(struct msdc_host *host)
|
@@ -624,6 +626,7 @@ static void msdc_ungate_clock(struct msd
|
||||||
{
|
{
|
||||||
clk_prepare_enable(host->h_clk);
|
clk_prepare_enable(host->h_clk);
|
||||||
clk_prepare_enable(host->src_clk);
|
clk_prepare_enable(host->src_clk);
|
||||||
|
@ -41,7 +39,7 @@ index 94d16a3a8d94..a2f26c9b17b4 100644
|
||||||
while (!(readl(host->base + MSDC_CFG) & MSDC_CFG_CKSTB))
|
while (!(readl(host->base + MSDC_CFG) & MSDC_CFG_CKSTB))
|
||||||
cpu_relax();
|
cpu_relax();
|
||||||
}
|
}
|
||||||
@@ -692,6 +695,15 @@ static void msdc_set_mclk(struct msdc_host *host, unsigned char timing, u32 hz)
|
@@ -692,6 +695,15 @@ static void msdc_set_mclk(struct msdc_ho
|
||||||
sclk = (host->src_clk_freq >> 2) / div;
|
sclk = (host->src_clk_freq >> 2) / div;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -57,7 +55,7 @@ index 94d16a3a8d94..a2f26c9b17b4 100644
|
||||||
if (host->dev_comp->clk_div_bits == 8)
|
if (host->dev_comp->clk_div_bits == 8)
|
||||||
sdr_set_field(host->base + MSDC_CFG,
|
sdr_set_field(host->base + MSDC_CFG,
|
||||||
MSDC_CFG_CKMOD | MSDC_CFG_CKDIV,
|
MSDC_CFG_CKMOD | MSDC_CFG_CKDIV,
|
||||||
@@ -700,10 +712,14 @@ static void msdc_set_mclk(struct msdc_host *host, unsigned char timing, u32 hz)
|
@@ -700,10 +712,14 @@ static void msdc_set_mclk(struct msdc_ho
|
||||||
sdr_set_field(host->base + MSDC_CFG,
|
sdr_set_field(host->base + MSDC_CFG,
|
||||||
MSDC_CFG_CKMOD_EXTRA | MSDC_CFG_CKDIV_EXTRA,
|
MSDC_CFG_CKMOD_EXTRA | MSDC_CFG_CKDIV_EXTRA,
|
||||||
(mode << 12) | div);
|
(mode << 12) | div);
|
||||||
|
@ -73,7 +71,7 @@ index 94d16a3a8d94..a2f26c9b17b4 100644
|
||||||
host->sclk = sclk;
|
host->sclk = sclk;
|
||||||
host->mclk = hz;
|
host->mclk = hz;
|
||||||
host->timing = timing;
|
host->timing = timing;
|
||||||
@@ -1822,6 +1838,11 @@ static int msdc_drv_probe(struct platform_device *pdev)
|
@@ -1822,6 +1838,11 @@ static int msdc_drv_probe(struct platfor
|
||||||
goto host_free;
|
goto host_free;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -85,6 +83,3 @@ index 94d16a3a8d94..a2f26c9b17b4 100644
|
||||||
host->irq = platform_get_irq(pdev, 0);
|
host->irq = platform_get_irq(pdev, 0);
|
||||||
if (host->irq < 0) {
|
if (host->irq < 0) {
|
||||||
ret = -EINVAL;
|
ret = -EINVAL;
|
||||||
--
|
|
||||||
2.11.0
|
|
||||||
|
|
||||||
|
|
|
@ -14,8 +14,6 @@ Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
|
||||||
drivers/mmc/host/mtk-sd.c | 6 ++++++
|
drivers/mmc/host/mtk-sd.c | 6 ++++++
|
||||||
1 file changed, 6 insertions(+)
|
1 file changed, 6 insertions(+)
|
||||||
|
|
||||||
diff --git a/drivers/mmc/host/mtk-sd.c b/drivers/mmc/host/mtk-sd.c
|
|
||||||
index a2f26c9b17b4..d75a93d6803f 100644
|
|
||||||
--- a/drivers/mmc/host/mtk-sd.c
|
--- a/drivers/mmc/host/mtk-sd.c
|
||||||
+++ b/drivers/mmc/host/mtk-sd.c
|
+++ b/drivers/mmc/host/mtk-sd.c
|
||||||
@@ -378,6 +378,7 @@ struct msdc_host {
|
@@ -378,6 +378,7 @@ struct msdc_host {
|
||||||
|
@ -26,7 +24,7 @@ index a2f26c9b17b4..d75a93d6803f 100644
|
||||||
u32 hs400_ds_delay;
|
u32 hs400_ds_delay;
|
||||||
u32 hs200_cmd_int_delay; /* cmd internal delay for HS200/SDR104 */
|
u32 hs200_cmd_int_delay; /* cmd internal delay for HS200/SDR104 */
|
||||||
u32 hs400_cmd_int_delay; /* cmd internal delay for HS400 */
|
u32 hs400_cmd_int_delay; /* cmd internal delay for HS400 */
|
||||||
@@ -1661,6 +1662,8 @@ static int msdc_tune_data(struct mmc_host *mmc, u32 opcode)
|
@@ -1661,6 +1662,8 @@ static int msdc_tune_data(struct mmc_hos
|
||||||
u32 tune_reg = host->dev_comp->pad_tune_reg;
|
u32 tune_reg = host->dev_comp->pad_tune_reg;
|
||||||
int i, ret;
|
int i, ret;
|
||||||
|
|
||||||
|
@ -35,7 +33,7 @@ index a2f26c9b17b4..d75a93d6803f 100644
|
||||||
sdr_clr_bits(host->base + MSDC_IOCON, MSDC_IOCON_DSPL);
|
sdr_clr_bits(host->base + MSDC_IOCON, MSDC_IOCON_DSPL);
|
||||||
sdr_clr_bits(host->base + MSDC_IOCON, MSDC_IOCON_W_DSPL);
|
sdr_clr_bits(host->base + MSDC_IOCON, MSDC_IOCON_W_DSPL);
|
||||||
for (i = 0 ; i < PAD_DELAY_MAX; i++) {
|
for (i = 0 ; i < PAD_DELAY_MAX; i++) {
|
||||||
@@ -1773,6 +1776,9 @@ static const struct mmc_host_ops mt_msdc_ops = {
|
@@ -1773,6 +1776,9 @@ static const struct mmc_host_ops mt_msdc
|
||||||
static void msdc_of_property_parse(struct platform_device *pdev,
|
static void msdc_of_property_parse(struct platform_device *pdev,
|
||||||
struct msdc_host *host)
|
struct msdc_host *host)
|
||||||
{
|
{
|
||||||
|
@ -45,6 +43,3 @@ index a2f26c9b17b4..d75a93d6803f 100644
|
||||||
of_property_read_u32(pdev->dev.of_node, "hs400-ds-delay",
|
of_property_read_u32(pdev->dev.of_node, "hs400-ds-delay",
|
||||||
&host->hs400_ds_delay);
|
&host->hs400_ds_delay);
|
||||||
|
|
||||||
--
|
|
||||||
2.11.0
|
|
||||||
|
|
||||||
|
|
|
@ -13,8 +13,6 @@ Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
|
||||||
drivers/mmc/host/mtk-sd.c | 9 +++++++++
|
drivers/mmc/host/mtk-sd.c | 9 +++++++++
|
||||||
1 file changed, 9 insertions(+)
|
1 file changed, 9 insertions(+)
|
||||||
|
|
||||||
diff --git a/drivers/mmc/host/mtk-sd.c b/drivers/mmc/host/mtk-sd.c
|
|
||||||
index d75a93d6803f..95759bba0dd0 100644
|
|
||||||
--- a/drivers/mmc/host/mtk-sd.c
|
--- a/drivers/mmc/host/mtk-sd.c
|
||||||
+++ b/drivers/mmc/host/mtk-sd.c
|
+++ b/drivers/mmc/host/mtk-sd.c
|
||||||
@@ -81,6 +81,7 @@
|
@@ -81,6 +81,7 @@
|
||||||
|
@ -42,7 +40,7 @@ index d75a93d6803f..95759bba0dd0 100644
|
||||||
u32 sdc_fifo_cfg;
|
u32 sdc_fifo_cfg;
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -1747,6 +1751,9 @@ static int msdc_prepare_hs400_tuning(struct mmc_host *mmc, struct mmc_ios *ios)
|
@@ -1747,6 +1751,9 @@ static int msdc_prepare_hs400_tuning(str
|
||||||
writel(host->hs400_ds_delay, host->base + PAD_DS_TUNE);
|
writel(host->hs400_ds_delay, host->base + PAD_DS_TUNE);
|
||||||
/* hs400 mode must set it to 0 */
|
/* hs400 mode must set it to 0 */
|
||||||
sdr_clr_bits(host->base + MSDC_PATCH_BIT2, MSDC_PATCH_BIT2_CFGCRCSTS);
|
sdr_clr_bits(host->base + MSDC_PATCH_BIT2, MSDC_PATCH_BIT2_CFGCRCSTS);
|
||||||
|
@ -52,7 +50,7 @@ index d75a93d6803f..95759bba0dd0 100644
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1997,6 +2004,7 @@ static void msdc_save_reg(struct msdc_host *host)
|
@@ -1997,6 +2004,7 @@ static void msdc_save_reg(struct msdc_ho
|
||||||
host->save_para.pad_ds_tune = readl(host->base + PAD_DS_TUNE);
|
host->save_para.pad_ds_tune = readl(host->base + PAD_DS_TUNE);
|
||||||
host->save_para.pad_cmd_tune = readl(host->base + PAD_CMD_TUNE);
|
host->save_para.pad_cmd_tune = readl(host->base + PAD_CMD_TUNE);
|
||||||
host->save_para.emmc50_cfg0 = readl(host->base + EMMC50_CFG0);
|
host->save_para.emmc50_cfg0 = readl(host->base + EMMC50_CFG0);
|
||||||
|
@ -60,7 +58,7 @@ index d75a93d6803f..95759bba0dd0 100644
|
||||||
host->save_para.sdc_fifo_cfg = readl(host->base + SDC_FIFO_CFG);
|
host->save_para.sdc_fifo_cfg = readl(host->base + SDC_FIFO_CFG);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -2014,6 +2022,7 @@ static void msdc_restore_reg(struct msdc_host *host)
|
@@ -2014,6 +2022,7 @@ static void msdc_restore_reg(struct msdc
|
||||||
writel(host->save_para.pad_ds_tune, host->base + PAD_DS_TUNE);
|
writel(host->save_para.pad_ds_tune, host->base + PAD_DS_TUNE);
|
||||||
writel(host->save_para.pad_cmd_tune, host->base + PAD_CMD_TUNE);
|
writel(host->save_para.pad_cmd_tune, host->base + PAD_CMD_TUNE);
|
||||||
writel(host->save_para.emmc50_cfg0, host->base + EMMC50_CFG0);
|
writel(host->save_para.emmc50_cfg0, host->base + EMMC50_CFG0);
|
||||||
|
@ -68,6 +66,3 @@ index d75a93d6803f..95759bba0dd0 100644
|
||||||
writel(host->save_para.sdc_fifo_cfg, host->base + SDC_FIFO_CFG);
|
writel(host->save_para.sdc_fifo_cfg, host->base + SDC_FIFO_CFG);
|
||||||
}
|
}
|
||||||
|
|
||||||
--
|
|
||||||
2.11.0
|
|
||||||
|
|
||||||
|
|
|
@ -14,11 +14,9 @@ Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
|
||||||
drivers/mmc/host/mtk-sd.c | 3 ++-
|
drivers/mmc/host/mtk-sd.c | 3 ++-
|
||||||
1 file changed, 2 insertions(+), 1 deletion(-)
|
1 file changed, 2 insertions(+), 1 deletion(-)
|
||||||
|
|
||||||
diff --git a/drivers/mmc/host/mtk-sd.c b/drivers/mmc/host/mtk-sd.c
|
|
||||||
index 95759bba0dd0..27a62254f12f 100644
|
|
||||||
--- a/drivers/mmc/host/mtk-sd.c
|
--- a/drivers/mmc/host/mtk-sd.c
|
||||||
+++ b/drivers/mmc/host/mtk-sd.c
|
+++ b/drivers/mmc/host/mtk-sd.c
|
||||||
@@ -1550,7 +1550,8 @@ static int msdc_tune_response(struct mmc_host *mmc, u32 opcode)
|
@@ -1550,7 +1550,8 @@ static int msdc_tune_response(struct mmc
|
||||||
}
|
}
|
||||||
final_rise_delay = get_best_delay(host, rise_delay);
|
final_rise_delay = get_best_delay(host, rise_delay);
|
||||||
/* if rising edge has enough margin, then do not scan falling edge */
|
/* if rising edge has enough margin, then do not scan falling edge */
|
||||||
|
@ -28,6 +26,3 @@ index 95759bba0dd0..27a62254f12f 100644
|
||||||
goto skip_fall;
|
goto skip_fall;
|
||||||
|
|
||||||
sdr_set_bits(host->base + MSDC_IOCON, MSDC_IOCON_RSPL);
|
sdr_set_bits(host->base + MSDC_IOCON, MSDC_IOCON_RSPL);
|
||||||
--
|
|
||||||
2.11.0
|
|
||||||
|
|
||||||
|
|
|
@ -15,8 +15,6 @@ Signed-off-by: Thierry Reding <thierry.reding@gmail.com>
|
||||||
drivers/pwm/pwm-mediatek.c | 53 ++++++++++++++++++++++++++++++++++++++--------
|
drivers/pwm/pwm-mediatek.c | 53 ++++++++++++++++++++++++++++++++++++++--------
|
||||||
1 file changed, 44 insertions(+), 9 deletions(-)
|
1 file changed, 44 insertions(+), 9 deletions(-)
|
||||||
|
|
||||||
diff --git a/drivers/pwm/pwm-mediatek.c b/drivers/pwm/pwm-mediatek.c
|
|
||||||
index b52f3afb2ba1..f5d97e0ad52b 100644
|
|
||||||
--- a/drivers/pwm/pwm-mediatek.c
|
--- a/drivers/pwm/pwm-mediatek.c
|
||||||
+++ b/drivers/pwm/pwm-mediatek.c
|
+++ b/drivers/pwm/pwm-mediatek.c
|
||||||
@@ -16,6 +16,7 @@
|
@@ -16,6 +16,7 @@
|
||||||
|
@ -60,7 +58,7 @@ index b52f3afb2ba1..f5d97e0ad52b 100644
|
||||||
static inline struct mtk_pwm_chip *to_mtk_pwm_chip(struct pwm_chip *chip)
|
static inline struct mtk_pwm_chip *to_mtk_pwm_chip(struct pwm_chip *chip)
|
||||||
{
|
{
|
||||||
return container_of(chip, struct mtk_pwm_chip, chip);
|
return container_of(chip, struct mtk_pwm_chip, chip);
|
||||||
@@ -103,14 +116,14 @@ static void mtk_pwm_clk_disable(struct pwm_chip *chip, struct pwm_device *pwm)
|
@@ -103,14 +116,14 @@ static void mtk_pwm_clk_disable(struct p
|
||||||
static inline u32 mtk_pwm_readl(struct mtk_pwm_chip *chip, unsigned int num,
|
static inline u32 mtk_pwm_readl(struct mtk_pwm_chip *chip, unsigned int num,
|
||||||
unsigned int offset)
|
unsigned int offset)
|
||||||
{
|
{
|
||||||
|
@ -77,7 +75,7 @@ index b52f3afb2ba1..f5d97e0ad52b 100644
|
||||||
}
|
}
|
||||||
|
|
||||||
static int mtk_pwm_config(struct pwm_chip *chip, struct pwm_device *pwm,
|
static int mtk_pwm_config(struct pwm_chip *chip, struct pwm_device *pwm,
|
||||||
@@ -185,6 +198,7 @@ static const struct pwm_ops mtk_pwm_ops = {
|
@@ -185,6 +198,7 @@ static const struct pwm_ops mtk_pwm_ops
|
||||||
|
|
||||||
static int mtk_pwm_probe(struct platform_device *pdev)
|
static int mtk_pwm_probe(struct platform_device *pdev)
|
||||||
{
|
{
|
||||||
|
@ -85,7 +83,7 @@ index b52f3afb2ba1..f5d97e0ad52b 100644
|
||||||
struct mtk_pwm_chip *pc;
|
struct mtk_pwm_chip *pc;
|
||||||
struct resource *res;
|
struct resource *res;
|
||||||
unsigned int i;
|
unsigned int i;
|
||||||
@@ -194,15 +208,22 @@ static int mtk_pwm_probe(struct platform_device *pdev)
|
@@ -194,15 +208,22 @@ static int mtk_pwm_probe(struct platform
|
||||||
if (!pc)
|
if (!pc)
|
||||||
return -ENOMEM;
|
return -ENOMEM;
|
||||||
|
|
||||||
|
@ -110,7 +108,7 @@ index b52f3afb2ba1..f5d97e0ad52b 100644
|
||||||
}
|
}
|
||||||
|
|
||||||
platform_set_drvdata(pdev, pc);
|
platform_set_drvdata(pdev, pc);
|
||||||
@@ -210,7 +231,7 @@ static int mtk_pwm_probe(struct platform_device *pdev)
|
@@ -210,7 +231,7 @@ static int mtk_pwm_probe(struct platform
|
||||||
pc->chip.dev = &pdev->dev;
|
pc->chip.dev = &pdev->dev;
|
||||||
pc->chip.ops = &mtk_pwm_ops;
|
pc->chip.ops = &mtk_pwm_ops;
|
||||||
pc->chip.base = -1;
|
pc->chip.base = -1;
|
||||||
|
@ -119,7 +117,7 @@ index b52f3afb2ba1..f5d97e0ad52b 100644
|
||||||
|
|
||||||
ret = pwmchip_add(&pc->chip);
|
ret = pwmchip_add(&pc->chip);
|
||||||
if (ret < 0) {
|
if (ret < 0) {
|
||||||
@@ -228,9 +249,23 @@ static int mtk_pwm_remove(struct platform_device *pdev)
|
@@ -228,9 +249,23 @@ static int mtk_pwm_remove(struct platfor
|
||||||
return pwmchip_remove(&pc->chip);
|
return pwmchip_remove(&pc->chip);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -145,6 +143,3 @@ index b52f3afb2ba1..f5d97e0ad52b 100644
|
||||||
};
|
};
|
||||||
MODULE_DEVICE_TABLE(of, mtk_pwm_of_match);
|
MODULE_DEVICE_TABLE(of, mtk_pwm_of_match);
|
||||||
|
|
||||||
--
|
|
||||||
2.11.0
|
|
||||||
|
|
||||||
|
|
|
@ -15,11 +15,9 @@ Signed-off-by: Boris Brezillon <boris.brezillon@free-electrons.com>
|
||||||
drivers/mtd/nand/mtk_nand.c | 8 ++------
|
drivers/mtd/nand/mtk_nand.c | 8 ++------
|
||||||
1 file changed, 2 insertions(+), 6 deletions(-)
|
1 file changed, 2 insertions(+), 6 deletions(-)
|
||||||
|
|
||||||
diff --git a/drivers/mtd/nand/mtk_nand.c b/drivers/mtd/nand/mtk_nand.c
|
|
||||||
index d86a7d131cc0..6d0101e13ef6 100644
|
|
||||||
--- a/drivers/mtd/nand/mtk_nand.c
|
--- a/drivers/mtd/nand/mtk_nand.c
|
||||||
+++ b/drivers/mtd/nand/mtk_nand.c
|
+++ b/drivers/mtd/nand/mtk_nand.c
|
||||||
@@ -1540,7 +1540,6 @@ static int mtk_nfc_resume(struct device *dev)
|
@@ -1540,7 +1540,6 @@ static int mtk_nfc_resume(struct device
|
||||||
struct mtk_nfc *nfc = dev_get_drvdata(dev);
|
struct mtk_nfc *nfc = dev_get_drvdata(dev);
|
||||||
struct mtk_nfc_nand_chip *chip;
|
struct mtk_nfc_nand_chip *chip;
|
||||||
struct nand_chip *nand;
|
struct nand_chip *nand;
|
||||||
|
@ -27,7 +25,7 @@ index d86a7d131cc0..6d0101e13ef6 100644
|
||||||
int ret;
|
int ret;
|
||||||
u32 i;
|
u32 i;
|
||||||
|
|
||||||
@@ -1553,11 +1552,8 @@ static int mtk_nfc_resume(struct device *dev)
|
@@ -1553,11 +1552,8 @@ static int mtk_nfc_resume(struct device
|
||||||
/* reset NAND chip if VCC was powered off */
|
/* reset NAND chip if VCC was powered off */
|
||||||
list_for_each_entry(chip, &nfc->chips, node) {
|
list_for_each_entry(chip, &nfc->chips, node) {
|
||||||
nand = &chip->nand;
|
nand = &chip->nand;
|
||||||
|
@ -41,6 +39,3 @@ index d86a7d131cc0..6d0101e13ef6 100644
|
||||||
}
|
}
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
--
|
|
||||||
2.11.0
|
|
||||||
|
|
||||||
|
|
|
@ -12,11 +12,9 @@ Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
|
||||||
drivers/cpufreq/mediatek-cpufreq.c | 1 +
|
drivers/cpufreq/mediatek-cpufreq.c | 1 +
|
||||||
1 file changed, 1 insertion(+)
|
1 file changed, 1 insertion(+)
|
||||||
|
|
||||||
diff --git a/drivers/cpufreq/mediatek-cpufreq.c b/drivers/cpufreq/mediatek-cpufreq.c
|
|
||||||
index 18c4bd9a5c65..62aec5cdbb26 100644
|
|
||||||
--- a/drivers/cpufreq/mediatek-cpufreq.c
|
--- a/drivers/cpufreq/mediatek-cpufreq.c
|
||||||
+++ b/drivers/cpufreq/mediatek-cpufreq.c
|
+++ b/drivers/cpufreq/mediatek-cpufreq.c
|
||||||
@@ -574,6 +574,7 @@ static struct platform_driver mtk_cpufreq_platdrv = {
|
@@ -574,6 +574,7 @@ static struct platform_driver mtk_cpufre
|
||||||
/* List of machines supported by this driver */
|
/* List of machines supported by this driver */
|
||||||
static const struct of_device_id mtk_cpufreq_machines[] __initconst = {
|
static const struct of_device_id mtk_cpufreq_machines[] __initconst = {
|
||||||
{ .compatible = "mediatek,mt2701", },
|
{ .compatible = "mediatek,mt2701", },
|
||||||
|
@ -24,6 +22,3 @@ index 18c4bd9a5c65..62aec5cdbb26 100644
|
||||||
{ .compatible = "mediatek,mt7622", },
|
{ .compatible = "mediatek,mt7622", },
|
||||||
{ .compatible = "mediatek,mt7623", },
|
{ .compatible = "mediatek,mt7623", },
|
||||||
{ .compatible = "mediatek,mt817x", },
|
{ .compatible = "mediatek,mt817x", },
|
||||||
--
|
|
||||||
2.11.0
|
|
||||||
|
|
||||||
|
|
|
@ -12,8 +12,6 @@ Signed-off-by: Boris Brezillon <boris.brezillon@free-electrons.com>
|
||||||
Documentation/devicetree/bindings/mtd/mtk-nand.txt | 11 ++++++++---
|
Documentation/devicetree/bindings/mtd/mtk-nand.txt | 11 ++++++++---
|
||||||
1 file changed, 8 insertions(+), 3 deletions(-)
|
1 file changed, 8 insertions(+), 3 deletions(-)
|
||||||
|
|
||||||
diff --git a/Documentation/devicetree/bindings/mtd/mtk-nand.txt b/Documentation/devicetree/bindings/mtd/mtk-nand.txt
|
|
||||||
index dbf9e054c11c..0025bc4c94a0 100644
|
|
||||||
--- a/Documentation/devicetree/bindings/mtd/mtk-nand.txt
|
--- a/Documentation/devicetree/bindings/mtd/mtk-nand.txt
|
||||||
+++ b/Documentation/devicetree/bindings/mtd/mtk-nand.txt
|
+++ b/Documentation/devicetree/bindings/mtd/mtk-nand.txt
|
||||||
@@ -12,8 +12,10 @@ tree nodes.
|
@@ -12,8 +12,10 @@ tree nodes.
|
||||||
|
@ -41,6 +39,3 @@ index dbf9e054c11c..0025bc4c94a0 100644
|
||||||
- reg: Base physical address and size of ECC.
|
- reg: Base physical address and size of ECC.
|
||||||
- interrupts: Interrupts of ECC.
|
- interrupts: Interrupts of ECC.
|
||||||
- clocks: ECC required clocks.
|
- clocks: ECC required clocks.
|
||||||
--
|
|
||||||
2.11.0
|
|
||||||
|
|
||||||
|
|
|
@ -30,8 +30,6 @@ Signed-off-by: Boris Brezillon <boris.brezillon@free-electrons.com>
|
||||||
drivers/mtd/nand/mtk_nand.c | 27 ++++++++----
|
drivers/mtd/nand/mtk_nand.c | 27 ++++++++----
|
||||||
3 files changed, 89 insertions(+), 41 deletions(-)
|
3 files changed, 89 insertions(+), 41 deletions(-)
|
||||||
|
|
||||||
diff --git a/drivers/mtd/nand/mtk_ecc.c b/drivers/mtd/nand/mtk_ecc.c
|
|
||||||
index c51d214d169e..6610eefaa92b 100644
|
|
||||||
--- a/drivers/mtd/nand/mtk_ecc.c
|
--- a/drivers/mtd/nand/mtk_ecc.c
|
||||||
+++ b/drivers/mtd/nand/mtk_ecc.c
|
+++ b/drivers/mtd/nand/mtk_ecc.c
|
||||||
@@ -34,34 +34,28 @@
|
@@ -34,34 +34,28 @@
|
||||||
|
@ -72,7 +70,7 @@ index c51d214d169e..6610eefaa92b 100644
|
||||||
int pg_irq_sel;
|
int pg_irq_sel;
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -89,6 +83,33 @@ static const u8 ecc_strength_mt2712[] = {
|
@@ -89,6 +83,33 @@ static const u8 ecc_strength_mt2712[] =
|
||||||
40, 44, 48, 52, 56, 60, 68, 72, 80
|
40, 44, 48, 52, 56, 60, 68, 72, 80
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -106,7 +104,7 @@ index c51d214d169e..6610eefaa92b 100644
|
||||||
static inline void mtk_ecc_wait_idle(struct mtk_ecc *ecc,
|
static inline void mtk_ecc_wait_idle(struct mtk_ecc *ecc,
|
||||||
enum mtk_ecc_operation op)
|
enum mtk_ecc_operation op)
|
||||||
{
|
{
|
||||||
@@ -107,32 +128,30 @@ static inline void mtk_ecc_wait_idle(struct mtk_ecc *ecc,
|
@@ -107,32 +128,30 @@ static inline void mtk_ecc_wait_idle(str
|
||||||
static irqreturn_t mtk_ecc_irq(int irq, void *id)
|
static irqreturn_t mtk_ecc_irq(int irq, void *id)
|
||||||
{
|
{
|
||||||
struct mtk_ecc *ecc = id;
|
struct mtk_ecc *ecc = id;
|
||||||
|
@ -147,7 +145,7 @@ index c51d214d169e..6610eefaa92b 100644
|
||||||
}
|
}
|
||||||
|
|
||||||
return IRQ_HANDLED;
|
return IRQ_HANDLED;
|
||||||
@@ -160,7 +179,7 @@ static int mtk_ecc_config(struct mtk_ecc *ecc, struct mtk_ecc_config *config)
|
@@ -160,7 +179,7 @@ static int mtk_ecc_config(struct mtk_ecc
|
||||||
/* configure ECC encoder (in bits) */
|
/* configure ECC encoder (in bits) */
|
||||||
enc_sz = config->len << 3;
|
enc_sz = config->len << 3;
|
||||||
|
|
||||||
|
@ -156,7 +154,7 @@ index c51d214d169e..6610eefaa92b 100644
|
||||||
reg |= (enc_sz << ECC_MS_SHIFT);
|
reg |= (enc_sz << ECC_MS_SHIFT);
|
||||||
writel(reg, ecc->regs + ECC_ENCCNFG);
|
writel(reg, ecc->regs + ECC_ENCCNFG);
|
||||||
|
|
||||||
@@ -171,9 +190,9 @@ static int mtk_ecc_config(struct mtk_ecc *ecc, struct mtk_ecc_config *config)
|
@@ -171,9 +190,9 @@ static int mtk_ecc_config(struct mtk_ecc
|
||||||
} else {
|
} else {
|
||||||
/* configure ECC decoder (in bits) */
|
/* configure ECC decoder (in bits) */
|
||||||
dec_sz = (config->len << 3) +
|
dec_sz = (config->len << 3) +
|
||||||
|
@ -168,7 +166,7 @@ index c51d214d169e..6610eefaa92b 100644
|
||||||
reg |= (dec_sz << ECC_MS_SHIFT) | DEC_CNFG_CORRECT;
|
reg |= (dec_sz << ECC_MS_SHIFT) | DEC_CNFG_CORRECT;
|
||||||
reg |= DEC_EMPTY_EN;
|
reg |= DEC_EMPTY_EN;
|
||||||
writel(reg, ecc->regs + ECC_DECCNFG);
|
writel(reg, ecc->regs + ECC_DECCNFG);
|
||||||
@@ -291,7 +310,12 @@ int mtk_ecc_enable(struct mtk_ecc *ecc, struct mtk_ecc_config *config)
|
@@ -291,7 +310,12 @@ int mtk_ecc_enable(struct mtk_ecc *ecc,
|
||||||
*/
|
*/
|
||||||
if (ecc->caps->pg_irq_sel && config->mode == ECC_NFI_MODE)
|
if (ecc->caps->pg_irq_sel && config->mode == ECC_NFI_MODE)
|
||||||
reg_val |= ECC_PG_IRQ_SEL;
|
reg_val |= ECC_PG_IRQ_SEL;
|
||||||
|
@ -182,7 +180,7 @@ index c51d214d169e..6610eefaa92b 100644
|
||||||
}
|
}
|
||||||
|
|
||||||
writew(ECC_OP_ENABLE, ecc->regs + ECC_CTL_REG(op));
|
writew(ECC_OP_ENABLE, ecc->regs + ECC_CTL_REG(op));
|
||||||
@@ -310,13 +334,17 @@ void mtk_ecc_disable(struct mtk_ecc *ecc)
|
@@ -310,13 +334,17 @@ void mtk_ecc_disable(struct mtk_ecc *ecc
|
||||||
|
|
||||||
/* disable it */
|
/* disable it */
|
||||||
mtk_ecc_wait_idle(ecc, op);
|
mtk_ecc_wait_idle(ecc, op);
|
||||||
|
@ -203,7 +201,7 @@ index c51d214d169e..6610eefaa92b 100644
|
||||||
writew(ECC_OP_DISABLE, ecc->regs + ECC_CTL_REG(op));
|
writew(ECC_OP_DISABLE, ecc->regs + ECC_CTL_REG(op));
|
||||||
|
|
||||||
mutex_unlock(&ecc->lock);
|
mutex_unlock(&ecc->lock);
|
||||||
@@ -367,11 +395,11 @@ int mtk_ecc_encode(struct mtk_ecc *ecc, struct mtk_ecc_config *config,
|
@@ -367,11 +395,11 @@ int mtk_ecc_encode(struct mtk_ecc *ecc,
|
||||||
mtk_ecc_wait_idle(ecc, ECC_ENCODE);
|
mtk_ecc_wait_idle(ecc, ECC_ENCODE);
|
||||||
|
|
||||||
/* Program ECC bytes to OOB: per sector oob = FDM + ECC + SPARE */
|
/* Program ECC bytes to OOB: per sector oob = FDM + ECC + SPARE */
|
||||||
|
@ -217,7 +215,7 @@ index c51d214d169e..6610eefaa92b 100644
|
||||||
round_up(len, 4));
|
round_up(len, 4));
|
||||||
|
|
||||||
/* copy into possibly unaligned OOB region with actual length */
|
/* copy into possibly unaligned OOB region with actual length */
|
||||||
@@ -404,19 +432,29 @@ void mtk_ecc_adjust_strength(struct mtk_ecc *ecc, u32 *p)
|
@@ -404,19 +432,29 @@ void mtk_ecc_adjust_strength(struct mtk_
|
||||||
}
|
}
|
||||||
EXPORT_SYMBOL(mtk_ecc_adjust_strength);
|
EXPORT_SYMBOL(mtk_ecc_adjust_strength);
|
||||||
|
|
||||||
|
@ -249,7 +247,7 @@ index c51d214d169e..6610eefaa92b 100644
|
||||||
.pg_irq_sel = 1,
|
.pg_irq_sel = 1,
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -452,7 +490,7 @@ static int mtk_ecc_probe(struct platform_device *pdev)
|
@@ -452,7 +490,7 @@ static int mtk_ecc_probe(struct platform
|
||||||
|
|
||||||
max_eccdata_size = ecc->caps->num_ecc_strength - 1;
|
max_eccdata_size = ecc->caps->num_ecc_strength - 1;
|
||||||
max_eccdata_size = ecc->caps->ecc_strength[max_eccdata_size];
|
max_eccdata_size = ecc->caps->ecc_strength[max_eccdata_size];
|
||||||
|
@ -258,8 +256,6 @@ index c51d214d169e..6610eefaa92b 100644
|
||||||
max_eccdata_size = round_up(max_eccdata_size, 4);
|
max_eccdata_size = round_up(max_eccdata_size, 4);
|
||||||
ecc->eccdata = devm_kzalloc(dev, max_eccdata_size, GFP_KERNEL);
|
ecc->eccdata = devm_kzalloc(dev, max_eccdata_size, GFP_KERNEL);
|
||||||
if (!ecc->eccdata)
|
if (!ecc->eccdata)
|
||||||
diff --git a/drivers/mtd/nand/mtk_ecc.h b/drivers/mtd/nand/mtk_ecc.h
|
|
||||||
index d245c14f1b80..a455df080952 100644
|
|
||||||
--- a/drivers/mtd/nand/mtk_ecc.h
|
--- a/drivers/mtd/nand/mtk_ecc.h
|
||||||
+++ b/drivers/mtd/nand/mtk_ecc.h
|
+++ b/drivers/mtd/nand/mtk_ecc.h
|
||||||
@@ -14,8 +14,6 @@
|
@@ -14,8 +14,6 @@
|
||||||
|
@ -271,7 +267,7 @@ index d245c14f1b80..a455df080952 100644
|
||||||
enum mtk_ecc_mode {ECC_DMA_MODE = 0, ECC_NFI_MODE = 1};
|
enum mtk_ecc_mode {ECC_DMA_MODE = 0, ECC_NFI_MODE = 1};
|
||||||
enum mtk_ecc_operation {ECC_ENCODE, ECC_DECODE};
|
enum mtk_ecc_operation {ECC_ENCODE, ECC_DECODE};
|
||||||
|
|
||||||
@@ -43,6 +41,7 @@ int mtk_ecc_wait_done(struct mtk_ecc *, enum mtk_ecc_operation);
|
@@ -43,6 +41,7 @@ int mtk_ecc_wait_done(struct mtk_ecc *,
|
||||||
int mtk_ecc_enable(struct mtk_ecc *, struct mtk_ecc_config *);
|
int mtk_ecc_enable(struct mtk_ecc *, struct mtk_ecc_config *);
|
||||||
void mtk_ecc_disable(struct mtk_ecc *);
|
void mtk_ecc_disable(struct mtk_ecc *);
|
||||||
void mtk_ecc_adjust_strength(struct mtk_ecc *ecc, u32 *p);
|
void mtk_ecc_adjust_strength(struct mtk_ecc *ecc, u32 *p);
|
||||||
|
@ -279,8 +275,6 @@ index d245c14f1b80..a455df080952 100644
|
||||||
|
|
||||||
struct mtk_ecc *of_mtk_ecc_get(struct device_node *);
|
struct mtk_ecc *of_mtk_ecc_get(struct device_node *);
|
||||||
void mtk_ecc_release(struct mtk_ecc *);
|
void mtk_ecc_release(struct mtk_ecc *);
|
||||||
diff --git a/drivers/mtd/nand/mtk_nand.c b/drivers/mtd/nand/mtk_nand.c
|
|
||||||
index 6d0101e13ef6..7349aa846f9a 100644
|
|
||||||
--- a/drivers/mtd/nand/mtk_nand.c
|
--- a/drivers/mtd/nand/mtk_nand.c
|
||||||
+++ b/drivers/mtd/nand/mtk_nand.c
|
+++ b/drivers/mtd/nand/mtk_nand.c
|
||||||
@@ -97,7 +97,6 @@
|
@@ -97,7 +97,6 @@
|
||||||
|
@ -300,7 +294,7 @@ index 6d0101e13ef6..7349aa846f9a 100644
|
||||||
};
|
};
|
||||||
|
|
||||||
struct mtk_nfc_bad_mark_ctl {
|
struct mtk_nfc_bad_mark_ctl {
|
||||||
@@ -450,7 +451,7 @@ static inline u8 mtk_nfc_read_byte(struct mtd_info *mtd)
|
@@ -450,7 +451,7 @@ static inline u8 mtk_nfc_read_byte(struc
|
||||||
* set to max sector to allow the HW to continue reading over
|
* set to max sector to allow the HW to continue reading over
|
||||||
* unaligned accesses
|
* unaligned accesses
|
||||||
*/
|
*/
|
||||||
|
@ -309,7 +303,7 @@ index 6d0101e13ef6..7349aa846f9a 100644
|
||||||
nfi_writel(nfc, reg, NFI_CON);
|
nfi_writel(nfc, reg, NFI_CON);
|
||||||
|
|
||||||
/* trigger to fetch data */
|
/* trigger to fetch data */
|
||||||
@@ -481,7 +482,7 @@ static void mtk_nfc_write_byte(struct mtd_info *mtd, u8 byte)
|
@@ -481,7 +482,7 @@ static void mtk_nfc_write_byte(struct mt
|
||||||
reg = nfi_readw(nfc, NFI_CNFG) | CNFG_BYTE_RW;
|
reg = nfi_readw(nfc, NFI_CNFG) | CNFG_BYTE_RW;
|
||||||
nfi_writew(nfc, reg, NFI_CNFG);
|
nfi_writew(nfc, reg, NFI_CNFG);
|
||||||
|
|
||||||
|
@ -318,7 +312,7 @@ index 6d0101e13ef6..7349aa846f9a 100644
|
||||||
nfi_writel(nfc, reg, NFI_CON);
|
nfi_writel(nfc, reg, NFI_CON);
|
||||||
|
|
||||||
nfi_writew(nfc, STAR_EN, NFI_STRDATA);
|
nfi_writew(nfc, STAR_EN, NFI_STRDATA);
|
||||||
@@ -1126,9 +1127,11 @@ static void mtk_nfc_set_fdm(struct mtk_nfc_fdm *fdm, struct mtd_info *mtd)
|
@@ -1126,9 +1127,11 @@ static void mtk_nfc_set_fdm(struct mtk_n
|
||||||
{
|
{
|
||||||
struct nand_chip *nand = mtd_to_nand(mtd);
|
struct nand_chip *nand = mtd_to_nand(mtd);
|
||||||
struct mtk_nfc_nand_chip *chip = to_mtk_nand(nand);
|
struct mtk_nfc_nand_chip *chip = to_mtk_nand(nand);
|
||||||
|
@ -331,7 +325,7 @@ index 6d0101e13ef6..7349aa846f9a 100644
|
||||||
|
|
||||||
fdm->reg_size = chip->spare_per_sector - ecc_bytes;
|
fdm->reg_size = chip->spare_per_sector - ecc_bytes;
|
||||||
if (fdm->reg_size > NFI_FDM_MAX_SIZE)
|
if (fdm->reg_size > NFI_FDM_MAX_SIZE)
|
||||||
@@ -1208,7 +1211,8 @@ static int mtk_nfc_ecc_init(struct device *dev, struct mtd_info *mtd)
|
@@ -1208,7 +1211,8 @@ static int mtk_nfc_ecc_init(struct devic
|
||||||
* this controller only supports 512 and 1024 sizes
|
* this controller only supports 512 and 1024 sizes
|
||||||
*/
|
*/
|
||||||
if (nand->ecc.size < 1024) {
|
if (nand->ecc.size < 1024) {
|
||||||
|
@ -341,7 +335,7 @@ index 6d0101e13ef6..7349aa846f9a 100644
|
||||||
nand->ecc.size = 1024;
|
nand->ecc.size = 1024;
|
||||||
nand->ecc.strength <<= 1;
|
nand->ecc.strength <<= 1;
|
||||||
} else {
|
} else {
|
||||||
@@ -1223,7 +1227,8 @@ static int mtk_nfc_ecc_init(struct device *dev, struct mtd_info *mtd)
|
@@ -1223,7 +1227,8 @@ static int mtk_nfc_ecc_init(struct devic
|
||||||
return ret;
|
return ret;
|
||||||
|
|
||||||
/* calculate oob bytes except ecc parity data */
|
/* calculate oob bytes except ecc parity data */
|
||||||
|
@ -351,7 +345,7 @@ index 6d0101e13ef6..7349aa846f9a 100644
|
||||||
free = spare - free;
|
free = spare - free;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@@ -1233,10 +1238,12 @@ static int mtk_nfc_ecc_init(struct device *dev, struct mtd_info *mtd)
|
@@ -1233,10 +1238,12 @@ static int mtk_nfc_ecc_init(struct devic
|
||||||
*/
|
*/
|
||||||
if (free > NFI_FDM_MAX_SIZE) {
|
if (free > NFI_FDM_MAX_SIZE) {
|
||||||
spare -= NFI_FDM_MAX_SIZE;
|
spare -= NFI_FDM_MAX_SIZE;
|
||||||
|
@ -366,7 +360,7 @@ index 6d0101e13ef6..7349aa846f9a 100644
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1389,6 +1396,8 @@ static const struct mtk_nfc_caps mtk_nfc_caps_mt2701 = {
|
@@ -1389,6 +1396,8 @@ static const struct mtk_nfc_caps mtk_nfc
|
||||||
.num_spare_size = 16,
|
.num_spare_size = 16,
|
||||||
.pageformat_spare_shift = 4,
|
.pageformat_spare_shift = 4,
|
||||||
.nfi_clk_div = 1,
|
.nfi_clk_div = 1,
|
||||||
|
@ -375,7 +369,7 @@ index 6d0101e13ef6..7349aa846f9a 100644
|
||||||
};
|
};
|
||||||
|
|
||||||
static const struct mtk_nfc_caps mtk_nfc_caps_mt2712 = {
|
static const struct mtk_nfc_caps mtk_nfc_caps_mt2712 = {
|
||||||
@@ -1396,6 +1405,8 @@ static const struct mtk_nfc_caps mtk_nfc_caps_mt2712 = {
|
@@ -1396,6 +1405,8 @@ static const struct mtk_nfc_caps mtk_nfc
|
||||||
.num_spare_size = 19,
|
.num_spare_size = 19,
|
||||||
.pageformat_spare_shift = 16,
|
.pageformat_spare_shift = 16,
|
||||||
.nfi_clk_div = 2,
|
.nfi_clk_div = 2,
|
||||||
|
@ -384,6 +378,3 @@ index 6d0101e13ef6..7349aa846f9a 100644
|
||||||
};
|
};
|
||||||
|
|
||||||
static const struct of_device_id mtk_nfc_id_table[] = {
|
static const struct of_device_id mtk_nfc_id_table[] = {
|
||||||
--
|
|
||||||
2.11.0
|
|
||||||
|
|
||||||
|
|
|
@ -12,11 +12,9 @@ Signed-off-by: Boris Brezillon <boris.brezillon@free-electrons.com>
|
||||||
drivers/mtd/nand/mtk_nand.c | 16 ++++++++++++++++
|
drivers/mtd/nand/mtk_nand.c | 16 ++++++++++++++++
|
||||||
2 files changed, 42 insertions(+)
|
2 files changed, 42 insertions(+)
|
||||||
|
|
||||||
diff --git a/drivers/mtd/nand/mtk_ecc.c b/drivers/mtd/nand/mtk_ecc.c
|
|
||||||
index 6610eefaa92b..40d86a861a70 100644
|
|
||||||
--- a/drivers/mtd/nand/mtk_ecc.c
|
--- a/drivers/mtd/nand/mtk_ecc.c
|
||||||
+++ b/drivers/mtd/nand/mtk_ecc.c
|
+++ b/drivers/mtd/nand/mtk_ecc.c
|
||||||
@@ -83,6 +83,10 @@ static const u8 ecc_strength_mt2712[] = {
|
@@ -83,6 +83,10 @@ static const u8 ecc_strength_mt2712[] =
|
||||||
40, 44, 48, 52, 56, 60, 68, 72, 80
|
40, 44, 48, 52, 56, 60, 68, 72, 80
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -43,7 +41,7 @@ index 6610eefaa92b..40d86a861a70 100644
|
||||||
static inline void mtk_ecc_wait_idle(struct mtk_ecc *ecc,
|
static inline void mtk_ecc_wait_idle(struct mtk_ecc *ecc,
|
||||||
enum mtk_ecc_operation op)
|
enum mtk_ecc_operation op)
|
||||||
{
|
{
|
||||||
@@ -458,6 +471,16 @@ static const struct mtk_ecc_caps mtk_ecc_caps_mt2712 = {
|
@@ -458,6 +471,16 @@ static const struct mtk_ecc_caps mtk_ecc
|
||||||
.pg_irq_sel = 1,
|
.pg_irq_sel = 1,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -60,7 +58,7 @@ index 6610eefaa92b..40d86a861a70 100644
|
||||||
static const struct of_device_id mtk_ecc_dt_match[] = {
|
static const struct of_device_id mtk_ecc_dt_match[] = {
|
||||||
{
|
{
|
||||||
.compatible = "mediatek,mt2701-ecc",
|
.compatible = "mediatek,mt2701-ecc",
|
||||||
@@ -465,6 +488,9 @@ static const struct of_device_id mtk_ecc_dt_match[] = {
|
@@ -465,6 +488,9 @@ static const struct of_device_id mtk_ecc
|
||||||
}, {
|
}, {
|
||||||
.compatible = "mediatek,mt2712-ecc",
|
.compatible = "mediatek,mt2712-ecc",
|
||||||
.data = &mtk_ecc_caps_mt2712,
|
.data = &mtk_ecc_caps_mt2712,
|
||||||
|
@ -70,8 +68,6 @@ index 6610eefaa92b..40d86a861a70 100644
|
||||||
},
|
},
|
||||||
{},
|
{},
|
||||||
};
|
};
|
||||||
diff --git a/drivers/mtd/nand/mtk_nand.c b/drivers/mtd/nand/mtk_nand.c
|
|
||||||
index 7349aa846f9a..8f71b405d639 100644
|
|
||||||
--- a/drivers/mtd/nand/mtk_nand.c
|
--- a/drivers/mtd/nand/mtk_nand.c
|
||||||
+++ b/drivers/mtd/nand/mtk_nand.c
|
+++ b/drivers/mtd/nand/mtk_nand.c
|
||||||
@@ -174,6 +174,10 @@ static const u8 spare_size_mt2712[] = {
|
@@ -174,6 +174,10 @@ static const u8 spare_size_mt2712[] = {
|
||||||
|
@ -85,7 +81,7 @@ index 7349aa846f9a..8f71b405d639 100644
|
||||||
static inline struct mtk_nfc_nand_chip *to_mtk_nand(struct nand_chip *nand)
|
static inline struct mtk_nfc_nand_chip *to_mtk_nand(struct nand_chip *nand)
|
||||||
{
|
{
|
||||||
return container_of(nand, struct mtk_nfc_nand_chip, nand);
|
return container_of(nand, struct mtk_nfc_nand_chip, nand);
|
||||||
@@ -1409,6 +1413,15 @@ static const struct mtk_nfc_caps mtk_nfc_caps_mt2712 = {
|
@@ -1409,6 +1413,15 @@ static const struct mtk_nfc_caps mtk_nfc
|
||||||
.max_sector_size = 1024,
|
.max_sector_size = 1024,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -101,7 +97,7 @@ index 7349aa846f9a..8f71b405d639 100644
|
||||||
static const struct of_device_id mtk_nfc_id_table[] = {
|
static const struct of_device_id mtk_nfc_id_table[] = {
|
||||||
{
|
{
|
||||||
.compatible = "mediatek,mt2701-nfc",
|
.compatible = "mediatek,mt2701-nfc",
|
||||||
@@ -1416,6 +1429,9 @@ static const struct of_device_id mtk_nfc_id_table[] = {
|
@@ -1416,6 +1429,9 @@ static const struct of_device_id mtk_nfc
|
||||||
}, {
|
}, {
|
||||||
.compatible = "mediatek,mt2712-nfc",
|
.compatible = "mediatek,mt2712-nfc",
|
||||||
.data = &mtk_nfc_caps_mt2712,
|
.data = &mtk_nfc_caps_mt2712,
|
||||||
|
@ -111,6 +107,3 @@ index 7349aa846f9a..8f71b405d639 100644
|
||||||
},
|
},
|
||||||
{}
|
{}
|
||||||
};
|
};
|
||||||
--
|
|
||||||
2.11.0
|
|
||||||
|
|
||||||
|
|
|
@ -13,8 +13,6 @@ Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
|
||||||
Documentation/devicetree/bindings/mmc/mtk-sd.txt | 2 ++
|
Documentation/devicetree/bindings/mmc/mtk-sd.txt | 2 ++
|
||||||
1 file changed, 2 insertions(+)
|
1 file changed, 2 insertions(+)
|
||||||
|
|
||||||
diff --git a/Documentation/devicetree/bindings/mmc/mtk-sd.txt b/Documentation/devicetree/bindings/mmc/mtk-sd.txt
|
|
||||||
index 72d2a734ab85..9b8017670870 100644
|
|
||||||
--- a/Documentation/devicetree/bindings/mmc/mtk-sd.txt
|
--- a/Documentation/devicetree/bindings/mmc/mtk-sd.txt
|
||||||
+++ b/Documentation/devicetree/bindings/mmc/mtk-sd.txt
|
+++ b/Documentation/devicetree/bindings/mmc/mtk-sd.txt
|
||||||
@@ -12,6 +12,8 @@ Required properties:
|
@@ -12,6 +12,8 @@ Required properties:
|
||||||
|
@ -26,6 +24,3 @@ index 72d2a734ab85..9b8017670870 100644
|
||||||
- reg: physical base address of the controller and length
|
- reg: physical base address of the controller and length
|
||||||
- interrupts: Should contain MSDC interrupt number
|
- interrupts: Should contain MSDC interrupt number
|
||||||
- clocks: Should contain phandle for the clock feeding the MMC controller
|
- clocks: Should contain phandle for the clock feeding the MMC controller
|
||||||
--
|
|
||||||
2.11.0
|
|
||||||
|
|
||||||
|
|
|
@ -15,9 +15,6 @@ Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
|
||||||
1 file changed, 351 insertions(+)
|
1 file changed, 351 insertions(+)
|
||||||
create mode 100644 Documentation/devicetree/bindings/pinctrl/pinctrl-mt7622.txt
|
create mode 100644 Documentation/devicetree/bindings/pinctrl/pinctrl-mt7622.txt
|
||||||
|
|
||||||
diff --git a/Documentation/devicetree/bindings/pinctrl/pinctrl-mt7622.txt b/Documentation/devicetree/bindings/pinctrl/pinctrl-mt7622.txt
|
|
||||||
new file mode 100644
|
|
||||||
index 000000000000..f18ed99f6e14
|
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ b/Documentation/devicetree/bindings/pinctrl/pinctrl-mt7622.txt
|
+++ b/Documentation/devicetree/bindings/pinctrl/pinctrl-mt7622.txt
|
||||||
@@ -0,0 +1,351 @@
|
@@ -0,0 +1,351 @@
|
||||||
|
@ -372,6 +369,3 @@ index 000000000000..f18ed99f6e14
|
||||||
+ };
|
+ };
|
||||||
+ };
|
+ };
|
||||||
+ };
|
+ };
|
||||||
--
|
|
||||||
2.11.0
|
|
||||||
|
|
||||||
|
|
|
@ -15,8 +15,6 @@ Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
|
||||||
drivers/pinctrl/mediatek/Kconfig | 5 +++--
|
drivers/pinctrl/mediatek/Kconfig | 5 +++--
|
||||||
1 file changed, 3 insertions(+), 2 deletions(-)
|
1 file changed, 3 insertions(+), 2 deletions(-)
|
||||||
|
|
||||||
diff --git a/drivers/pinctrl/mediatek/Kconfig b/drivers/pinctrl/mediatek/Kconfig
|
|
||||||
index fac9866311f3..03b3023d5fe5 100644
|
|
||||||
--- a/drivers/pinctrl/mediatek/Kconfig
|
--- a/drivers/pinctrl/mediatek/Kconfig
|
||||||
+++ b/drivers/pinctrl/mediatek/Kconfig
|
+++ b/drivers/pinctrl/mediatek/Kconfig
|
||||||
@@ -1,4 +1,5 @@
|
@@ -1,4 +1,5 @@
|
||||||
|
@ -32,6 +30,3 @@ index fac9866311f3..03b3023d5fe5 100644
|
||||||
|
|
||||||
-endif
|
-endif
|
||||||
+endmenu
|
+endmenu
|
||||||
--
|
|
||||||
2.11.0
|
|
||||||
|
|
||||||
|
|
|
@ -32,19 +32,15 @@ Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
|
||||||
4 files changed, 1608 insertions(+), 2 deletions(-)
|
4 files changed, 1608 insertions(+), 2 deletions(-)
|
||||||
create mode 100644 drivers/pinctrl/mediatek/pinctrl-mt7622.c
|
create mode 100644 drivers/pinctrl/mediatek/pinctrl-mt7622.c
|
||||||
|
|
||||||
diff --git a/drivers/pinctrl/Makefile b/drivers/pinctrl/Makefile
|
|
||||||
index c16e27900dbb..3a798d5b0900 100644
|
|
||||||
--- a/drivers/pinctrl/Makefile
|
--- a/drivers/pinctrl/Makefile
|
||||||
+++ b/drivers/pinctrl/Makefile
|
+++ b/drivers/pinctrl/Makefile
|
||||||
@@ -63,5 +63,5 @@ obj-$(CONFIG_PINCTRL_SUNXI) += sunxi/
|
@@ -64,5 +64,5 @@ obj-$(CONFIG_PINCTRL_SUNXI) += sunxi/
|
||||||
obj-y += ti/
|
obj-y += ti/
|
||||||
obj-$(CONFIG_PINCTRL_UNIPHIER) += uniphier/
|
obj-$(CONFIG_PINCTRL_UNIPHIER) += uniphier/
|
||||||
obj-$(CONFIG_ARCH_VT8500) += vt8500/
|
obj-$(CONFIG_ARCH_VT8500) += vt8500/
|
||||||
-obj-$(CONFIG_PINCTRL_MTK) += mediatek/
|
-obj-$(CONFIG_PINCTRL_MTK) += mediatek/
|
||||||
+obj-y += mediatek/
|
+obj-y += mediatek/
|
||||||
obj-$(CONFIG_PINCTRL_ZX) += zte/
|
obj-$(CONFIG_PINCTRL_ZX) += zte/
|
||||||
diff --git a/drivers/pinctrl/mediatek/Kconfig b/drivers/pinctrl/mediatek/Kconfig
|
|
||||||
index 03b3023d5fe5..3e598740b379 100644
|
|
||||||
--- a/drivers/pinctrl/mediatek/Kconfig
|
--- a/drivers/pinctrl/mediatek/Kconfig
|
||||||
+++ b/drivers/pinctrl/mediatek/Kconfig
|
+++ b/drivers/pinctrl/mediatek/Kconfig
|
||||||
@@ -32,6 +32,16 @@ config PINCTRL_MT8127
|
@@ -32,6 +32,16 @@ config PINCTRL_MT8127
|
||||||
|
@ -64,11 +60,10 @@ index 03b3023d5fe5..3e598740b379 100644
|
||||||
config PINCTRL_MT8173
|
config PINCTRL_MT8173
|
||||||
bool "Mediatek MT8173 pin control"
|
bool "Mediatek MT8173 pin control"
|
||||||
depends on OF
|
depends on OF
|
||||||
diff --git a/drivers/pinctrl/mediatek/Makefile b/drivers/pinctrl/mediatek/Makefile
|
|
||||||
index e59c613d4ddd..6e3ca6bbda7a 100644
|
|
||||||
--- a/drivers/pinctrl/mediatek/Makefile
|
--- a/drivers/pinctrl/mediatek/Makefile
|
||||||
+++ b/drivers/pinctrl/mediatek/Makefile
|
+++ b/drivers/pinctrl/mediatek/Makefile
|
||||||
@@ -1,9 +1,10 @@
|
@@ -1,10 +1,11 @@
|
||||||
|
# SPDX-License-Identifier: GPL-2.0
|
||||||
# Core
|
# Core
|
||||||
-obj-y += pinctrl-mtk-common.o
|
-obj-y += pinctrl-mtk-common.o
|
||||||
+obj-$(CONFIG_PINCTRL_MTK) += pinctrl-mtk-common.o
|
+obj-$(CONFIG_PINCTRL_MTK) += pinctrl-mtk-common.o
|
||||||
|
@ -80,9 +75,6 @@ index e59c613d4ddd..6e3ca6bbda7a 100644
|
||||||
+obj-$(CONFIG_PINCTRL_MT7622) += pinctrl-mt7622.o
|
+obj-$(CONFIG_PINCTRL_MT7622) += pinctrl-mt7622.o
|
||||||
obj-$(CONFIG_PINCTRL_MT8173) += pinctrl-mt8173.o
|
obj-$(CONFIG_PINCTRL_MT8173) += pinctrl-mt8173.o
|
||||||
obj-$(CONFIG_PINCTRL_MT6397) += pinctrl-mt6397.o
|
obj-$(CONFIG_PINCTRL_MT6397) += pinctrl-mt6397.o
|
||||||
diff --git a/drivers/pinctrl/mediatek/pinctrl-mt7622.c b/drivers/pinctrl/mediatek/pinctrl-mt7622.c
|
|
||||||
new file mode 100644
|
|
||||||
index 000000000000..3824d82888ac
|
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ b/drivers/pinctrl/mediatek/pinctrl-mt7622.c
|
+++ b/drivers/pinctrl/mediatek/pinctrl-mt7622.c
|
||||||
@@ -0,0 +1,1595 @@
|
@@ -0,0 +1,1595 @@
|
||||||
|
@ -1681,6 +1673,3 @@ index 000000000000..3824d82888ac
|
||||||
+ return platform_driver_register(&mtk_pinctrl_driver);
|
+ return platform_driver_register(&mtk_pinctrl_driver);
|
||||||
+}
|
+}
|
||||||
+arch_initcall(mtk_pinctrl_init);
|
+arch_initcall(mtk_pinctrl_init);
|
||||||
--
|
|
||||||
2.11.0
|
|
||||||
|
|
||||||
|
|
|
@ -14,8 +14,6 @@ Signed-off-by: Stephen Boyd <sboyd@codeaurora.org>
|
||||||
drivers/clk/mediatek/Kconfig | 96 +++++++++++++++++++++++---------------------
|
drivers/clk/mediatek/Kconfig | 96 +++++++++++++++++++++++---------------------
|
||||||
1 file changed, 50 insertions(+), 46 deletions(-)
|
1 file changed, 50 insertions(+), 46 deletions(-)
|
||||||
|
|
||||||
diff --git a/drivers/clk/mediatek/Kconfig b/drivers/clk/mediatek/Kconfig
|
|
||||||
index 59dc0aad553c..7338f816c603 100644
|
|
||||||
--- a/drivers/clk/mediatek/Kconfig
|
--- a/drivers/clk/mediatek/Kconfig
|
||||||
+++ b/drivers/clk/mediatek/Kconfig
|
+++ b/drivers/clk/mediatek/Kconfig
|
||||||
@@ -1,136 +1,139 @@
|
@@ -1,136 +1,139 @@
|
||||||
|
@ -223,6 +221,3 @@ index 59dc0aad553c..7338f816c603 100644
|
||||||
- This driver supports Mediatek MT8173 clocks.
|
- This driver supports Mediatek MT8173 clocks.
|
||||||
+ This driver supports MediaTek MT8173 clocks.
|
+ This driver supports MediaTek MT8173 clocks.
|
||||||
+endmenu
|
+endmenu
|
||||||
--
|
|
||||||
2.11.0
|
|
||||||
|
|
||||||
|
|
|
@ -14,11 +14,9 @@ Signed-off-by: Stephen Boyd <sboyd@codeaurora.org>
|
||||||
drivers/clk/Makefile | 2 +-
|
drivers/clk/Makefile | 2 +-
|
||||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||||
|
|
||||||
diff --git a/drivers/clk/Makefile b/drivers/clk/Makefile
|
|
||||||
index c99f363826f0..838000f92b69 100644
|
|
||||||
--- a/drivers/clk/Makefile
|
--- a/drivers/clk/Makefile
|
||||||
+++ b/drivers/clk/Makefile
|
+++ b/drivers/clk/Makefile
|
||||||
@@ -66,7 +66,7 @@ obj-$(CONFIG_ARCH_MXC) += imx/
|
@@ -67,7 +67,7 @@ obj-$(CONFIG_ARCH_MXC) += imx/
|
||||||
obj-$(CONFIG_MACH_INGENIC) += ingenic/
|
obj-$(CONFIG_MACH_INGENIC) += ingenic/
|
||||||
obj-$(CONFIG_ARCH_KEYSTONE) += keystone/
|
obj-$(CONFIG_ARCH_KEYSTONE) += keystone/
|
||||||
obj-$(CONFIG_MACH_LOONGSON32) += loongson1/
|
obj-$(CONFIG_MACH_LOONGSON32) += loongson1/
|
||||||
|
@ -27,6 +25,3 @@ index c99f363826f0..838000f92b69 100644
|
||||||
obj-$(CONFIG_COMMON_CLK_AMLOGIC) += meson/
|
obj-$(CONFIG_COMMON_CLK_AMLOGIC) += meson/
|
||||||
obj-$(CONFIG_MACH_PIC32) += microchip/
|
obj-$(CONFIG_MACH_PIC32) += microchip/
|
||||||
ifeq ($(CONFIG_COMMON_CLK), y)
|
ifeq ($(CONFIG_COMMON_CLK), y)
|
||||||
--
|
|
||||||
2.11.0
|
|
||||||
|
|
||||||
|
|
|
@ -14,8 +14,6 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
|
||||||
Documentation/devicetree/bindings/net/mediatek-net.txt | 2 +-
|
Documentation/devicetree/bindings/net/mediatek-net.txt | 2 +-
|
||||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||||
|
|
||||||
diff --git a/Documentation/devicetree/bindings/net/mediatek-net.txt b/Documentation/devicetree/bindings/net/mediatek-net.txt
|
|
||||||
index 214eaa9a6683..53c13ee384a4 100644
|
|
||||||
--- a/Documentation/devicetree/bindings/net/mediatek-net.txt
|
--- a/Documentation/devicetree/bindings/net/mediatek-net.txt
|
||||||
+++ b/Documentation/devicetree/bindings/net/mediatek-net.txt
|
+++ b/Documentation/devicetree/bindings/net/mediatek-net.txt
|
||||||
@@ -28,7 +28,7 @@ Required properties:
|
@@ -28,7 +28,7 @@ Required properties:
|
||||||
|
@ -27,6 +25,3 @@ index 214eaa9a6683..53c13ee384a4 100644
|
||||||
|
|
||||||
Optional properties:
|
Optional properties:
|
||||||
- interrupt-parent: Should be the phandle for the interrupt controller
|
- interrupt-parent: Should be the phandle for the interrupt controller
|
||||||
--
|
|
||||||
2.11.0
|
|
||||||
|
|
||||||
|
|
|
@ -16,10 +16,8 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
|
||||||
drivers/net/ethernet/mediatek/mtk_eth_soc.h | 3 +++
|
drivers/net/ethernet/mediatek/mtk_eth_soc.h | 3 +++
|
||||||
2 files changed, 24 insertions(+), 14 deletions(-)
|
2 files changed, 24 insertions(+), 14 deletions(-)
|
||||||
|
|
||||||
Index: linux-4.14.37/drivers/net/ethernet/mediatek/mtk_eth_soc.c
|
--- a/drivers/net/ethernet/mediatek/mtk_eth_soc.c
|
||||||
===================================================================
|
+++ b/drivers/net/ethernet/mediatek/mtk_eth_soc.c
|
||||||
--- linux-4.14.37.orig/drivers/net/ethernet/mediatek/mtk_eth_soc.c
|
|
||||||
+++ linux-4.14.37/drivers/net/ethernet/mediatek/mtk_eth_soc.c
|
|
||||||
@@ -1976,14 +1976,16 @@ static int mtk_hw_init(struct mtk_eth *e
|
@@ -1976,14 +1976,16 @@ static int mtk_hw_init(struct mtk_eth *e
|
||||||
}
|
}
|
||||||
regmap_write(eth->ethsys, ETHSYS_SYSCFG0, val);
|
regmap_write(eth->ethsys, ETHSYS_SYSCFG0, val);
|
||||||
|
@ -86,10 +84,8 @@ Index: linux-4.14.37/drivers/net/ethernet/mediatek/mtk_eth_soc.c
|
||||||
};
|
};
|
||||||
|
|
||||||
const struct of_device_id of_mtk_match[] = {
|
const struct of_device_id of_mtk_match[] = {
|
||||||
Index: linux-4.14.37/drivers/net/ethernet/mediatek/mtk_eth_soc.h
|
--- a/drivers/net/ethernet/mediatek/mtk_eth_soc.h
|
||||||
===================================================================
|
+++ b/drivers/net/ethernet/mediatek/mtk_eth_soc.h
|
||||||
--- linux-4.14.37.orig/drivers/net/ethernet/mediatek/mtk_eth_soc.h
|
|
||||||
+++ linux-4.14.37/drivers/net/ethernet/mediatek/mtk_eth_soc.h
|
|
||||||
@@ -574,10 +574,13 @@ struct mtk_rx_ring {
|
@@ -574,10 +574,13 @@ struct mtk_rx_ring {
|
||||||
* @caps Flags shown the extra capability for the SoC
|
* @caps Flags shown the extra capability for the SoC
|
||||||
* @required_clks Flags shown the bitmap for required clocks on
|
* @required_clks Flags shown the bitmap for required clocks on
|
||||||
|
|
|
@ -56,8 +56,6 @@ Signed-off-by: Stephen Boyd <sboyd@codeaurora.org>
|
||||||
drivers/clk/mediatek/clk-mtk.h | 1 +
|
drivers/clk/mediatek/clk-mtk.h | 1 +
|
||||||
1 file changed, 1 insertion(+)
|
1 file changed, 1 insertion(+)
|
||||||
|
|
||||||
diff --git a/drivers/clk/mediatek/clk-mtk.h b/drivers/clk/mediatek/clk-mtk.h
|
|
||||||
index f10250dcece4..bf8006d41861 100644
|
|
||||||
--- a/drivers/clk/mediatek/clk-mtk.h
|
--- a/drivers/clk/mediatek/clk-mtk.h
|
||||||
+++ b/drivers/clk/mediatek/clk-mtk.h
|
+++ b/drivers/clk/mediatek/clk-mtk.h
|
||||||
@@ -20,6 +20,7 @@
|
@@ -20,6 +20,7 @@
|
||||||
|
@ -68,6 +66,3 @@ index f10250dcece4..bf8006d41861 100644
|
||||||
|
|
||||||
#define MAX_MUX_GATE_BIT 31
|
#define MAX_MUX_GATE_BIT 31
|
||||||
#define INVALID_MUX_GATE_BIT (MAX_MUX_GATE_BIT + 1)
|
#define INVALID_MUX_GATE_BIT (MAX_MUX_GATE_BIT + 1)
|
||||||
--
|
|
||||||
2.11.0
|
|
||||||
|
|
||||||
|
|
|
@ -16,11 +16,9 @@ Signed-off-by: Kishon Vijay Abraham I <kishon@ti.com>
|
||||||
drivers/phy/mediatek/phy-mtk-tphy.c | 19 +++++++------------
|
drivers/phy/mediatek/phy-mtk-tphy.c | 19 +++++++------------
|
||||||
1 file changed, 7 insertions(+), 12 deletions(-)
|
1 file changed, 7 insertions(+), 12 deletions(-)
|
||||||
|
|
||||||
diff --git a/drivers/phy/mediatek/phy-mtk-tphy.c b/drivers/phy/mediatek/phy-mtk-tphy.c
|
|
||||||
index 402385f2562a..54cc44b2d289 100644
|
|
||||||
--- a/drivers/phy/mediatek/phy-mtk-tphy.c
|
--- a/drivers/phy/mediatek/phy-mtk-tphy.c
|
||||||
+++ b/drivers/phy/mediatek/phy-mtk-tphy.c
|
+++ b/drivers/phy/mediatek/phy-mtk-tphy.c
|
||||||
@@ -440,9 +440,9 @@ static void u2_phy_instance_init(struct mtk_tphy *tphy,
|
@@ -440,9 +440,9 @@ static void u2_phy_instance_init(struct
|
||||||
u32 index = instance->index;
|
u32 index = instance->index;
|
||||||
u32 tmp;
|
u32 tmp;
|
||||||
|
|
||||||
|
@ -32,7 +30,7 @@ index 402385f2562a..54cc44b2d289 100644
|
||||||
tmp |= P2C_RG_XCVRSEL_VAL(1) | P2C_RG_DATAIN_VAL(0);
|
tmp |= P2C_RG_XCVRSEL_VAL(1) | P2C_RG_DATAIN_VAL(0);
|
||||||
writel(tmp, com + U3P_U2PHYDTM0);
|
writel(tmp, com + U3P_U2PHYDTM0);
|
||||||
|
|
||||||
@@ -502,10 +502,8 @@ static void u2_phy_instance_power_on(struct mtk_tphy *tphy,
|
@@ -502,10 +502,8 @@ static void u2_phy_instance_power_on(str
|
||||||
u32 index = instance->index;
|
u32 index = instance->index;
|
||||||
u32 tmp;
|
u32 tmp;
|
||||||
|
|
||||||
|
@ -44,7 +42,7 @@ index 402385f2562a..54cc44b2d289 100644
|
||||||
writel(tmp, com + U3P_U2PHYDTM0);
|
writel(tmp, com + U3P_U2PHYDTM0);
|
||||||
|
|
||||||
/* OTG Enable */
|
/* OTG Enable */
|
||||||
@@ -540,7 +538,6 @@ static void u2_phy_instance_power_off(struct mtk_tphy *tphy,
|
@@ -540,7 +538,6 @@ static void u2_phy_instance_power_off(st
|
||||||
|
|
||||||
tmp = readl(com + U3P_U2PHYDTM0);
|
tmp = readl(com + U3P_U2PHYDTM0);
|
||||||
tmp &= ~(P2C_RG_XCVRSEL | P2C_RG_DATAIN);
|
tmp &= ~(P2C_RG_XCVRSEL | P2C_RG_DATAIN);
|
||||||
|
@ -52,7 +50,7 @@ index 402385f2562a..54cc44b2d289 100644
|
||||||
writel(tmp, com + U3P_U2PHYDTM0);
|
writel(tmp, com + U3P_U2PHYDTM0);
|
||||||
|
|
||||||
/* OTG Disable */
|
/* OTG Disable */
|
||||||
@@ -548,18 +545,16 @@ static void u2_phy_instance_power_off(struct mtk_tphy *tphy,
|
@@ -548,18 +545,16 @@ static void u2_phy_instance_power_off(st
|
||||||
tmp &= ~PA6_RG_U2_OTG_VBUSCMP_EN;
|
tmp &= ~PA6_RG_U2_OTG_VBUSCMP_EN;
|
||||||
writel(tmp, com + U3P_USBPHYACR6);
|
writel(tmp, com + U3P_USBPHYACR6);
|
||||||
|
|
||||||
|
@ -75,6 +73,3 @@ index 402385f2562a..54cc44b2d289 100644
|
||||||
tmp = readl(com + U3D_U2PHYDCR0);
|
tmp = readl(com + U3D_U2PHYDCR0);
|
||||||
tmp &= ~P2C_RG_SIF_U2PLL_FORCE_ON;
|
tmp &= ~P2C_RG_SIF_U2PLL_FORCE_ON;
|
||||||
writel(tmp, com + U3D_U2PHYDCR0);
|
writel(tmp, com + U3D_U2PHYDCR0);
|
||||||
--
|
|
||||||
2.11.0
|
|
||||||
|
|
||||||
|
|
|
@ -13,11 +13,9 @@ Signed-off-by: Kishon Vijay Abraham I <kishon@ti.com>
|
||||||
drivers/phy/mediatek/phy-mtk-tphy.c | 5 +++--
|
drivers/phy/mediatek/phy-mtk-tphy.c | 5 +++--
|
||||||
1 file changed, 3 insertions(+), 2 deletions(-)
|
1 file changed, 3 insertions(+), 2 deletions(-)
|
||||||
|
|
||||||
diff --git a/drivers/phy/mediatek/phy-mtk-tphy.c b/drivers/phy/mediatek/phy-mtk-tphy.c
|
|
||||||
index 54cc44b2d289..11cab1d84a02 100644
|
|
||||||
--- a/drivers/phy/mediatek/phy-mtk-tphy.c
|
--- a/drivers/phy/mediatek/phy-mtk-tphy.c
|
||||||
+++ b/drivers/phy/mediatek/phy-mtk-tphy.c
|
+++ b/drivers/phy/mediatek/phy-mtk-tphy.c
|
||||||
@@ -1023,9 +1023,10 @@ static int mtk_tphy_probe(struct platform_device *pdev)
|
@@ -1023,9 +1023,10 @@ static int mtk_tphy_probe(struct platfor
|
||||||
tphy->dev = dev;
|
tphy->dev = dev;
|
||||||
platform_set_drvdata(pdev, tphy);
|
platform_set_drvdata(pdev, tphy);
|
||||||
|
|
||||||
|
@ -30,6 +28,3 @@ index 54cc44b2d289..11cab1d84a02 100644
|
||||||
tphy->sif_base = devm_ioremap_resource(dev, sif_res);
|
tphy->sif_base = devm_ioremap_resource(dev, sif_res);
|
||||||
if (IS_ERR(tphy->sif_base)) {
|
if (IS_ERR(tphy->sif_base)) {
|
||||||
dev_err(dev, "failed to remap sif regs\n");
|
dev_err(dev, "failed to remap sif regs\n");
|
||||||
--
|
|
||||||
2.11.0
|
|
||||||
|
|
||||||
|
|
|
@ -11,8 +11,6 @@ Signed-off-by: Kishon Vijay Abraham I <kishon@ti.com>
|
||||||
drivers/phy/mediatek/phy-mtk-tphy.c | 11 +++++------
|
drivers/phy/mediatek/phy-mtk-tphy.c | 11 +++++------
|
||||||
1 file changed, 5 insertions(+), 6 deletions(-)
|
1 file changed, 5 insertions(+), 6 deletions(-)
|
||||||
|
|
||||||
diff --git a/drivers/phy/mediatek/phy-mtk-tphy.c b/drivers/phy/mediatek/phy-mtk-tphy.c
|
|
||||||
index 11cab1d84a02..1e96d0740ef5 100644
|
|
||||||
--- a/drivers/phy/mediatek/phy-mtk-tphy.c
|
--- a/drivers/phy/mediatek/phy-mtk-tphy.c
|
||||||
+++ b/drivers/phy/mediatek/phy-mtk-tphy.c
|
+++ b/drivers/phy/mediatek/phy-mtk-tphy.c
|
||||||
@@ -20,6 +20,7 @@
|
@@ -20,6 +20,7 @@
|
||||||
|
@ -23,7 +21,7 @@ index 11cab1d84a02..1e96d0740ef5 100644
|
||||||
#include <linux/phy/phy.h>
|
#include <linux/phy/phy.h>
|
||||||
#include <linux/platform_device.h>
|
#include <linux/platform_device.h>
|
||||||
|
|
||||||
@@ -995,7 +996,6 @@ MODULE_DEVICE_TABLE(of, mtk_tphy_id_table);
|
@@ -995,7 +996,6 @@ MODULE_DEVICE_TABLE(of, mtk_tphy_id_tabl
|
||||||
|
|
||||||
static int mtk_tphy_probe(struct platform_device *pdev)
|
static int mtk_tphy_probe(struct platform_device *pdev)
|
||||||
{
|
{
|
||||||
|
@ -31,7 +29,7 @@ index 11cab1d84a02..1e96d0740ef5 100644
|
||||||
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 device_node *child_np;
|
struct device_node *child_np;
|
||||||
@@ -1005,15 +1005,14 @@ static int mtk_tphy_probe(struct platform_device *pdev)
|
@@ -1005,15 +1005,14 @@ static int mtk_tphy_probe(struct platfor
|
||||||
struct resource res;
|
struct resource res;
|
||||||
int port, retval;
|
int port, retval;
|
||||||
|
|
||||||
|
@ -51,6 +49,3 @@ index 11cab1d84a02..1e96d0740ef5 100644
|
||||||
tphy->nphys = of_get_child_count(np);
|
tphy->nphys = of_get_child_count(np);
|
||||||
tphy->phys = devm_kcalloc(dev, tphy->nphys,
|
tphy->phys = devm_kcalloc(dev, tphy->nphys,
|
||||||
sizeof(*tphy->phys), GFP_KERNEL);
|
sizeof(*tphy->phys), GFP_KERNEL);
|
||||||
--
|
|
||||||
2.11.0
|
|
||||||
|
|
||||||
|
|
|
@ -14,11 +14,9 @@ Signed-off-by: Mark Brown <broonie@kernel.org>
|
||||||
sound/soc/mediatek/mt2701/mt2701-afe-pcm.c | 31 ++++++++++++++----------------
|
sound/soc/mediatek/mt2701/mt2701-afe-pcm.c | 31 ++++++++++++++----------------
|
||||||
1 file changed, 14 insertions(+), 17 deletions(-)
|
1 file changed, 14 insertions(+), 17 deletions(-)
|
||||||
|
|
||||||
diff --git a/sound/soc/mediatek/mt2701/mt2701-afe-pcm.c b/sound/soc/mediatek/mt2701/mt2701-afe-pcm.c
|
|
||||||
index 8fda182f849b..a7362d1cda1b 100644
|
|
||||||
--- a/sound/soc/mediatek/mt2701/mt2701-afe-pcm.c
|
--- a/sound/soc/mediatek/mt2701/mt2701-afe-pcm.c
|
||||||
+++ b/sound/soc/mediatek/mt2701/mt2701-afe-pcm.c
|
+++ b/sound/soc/mediatek/mt2701/mt2701-afe-pcm.c
|
||||||
@@ -1590,12 +1590,16 @@ static int mt2701_afe_pcm_dev_probe(struct platform_device *pdev)
|
@@ -1590,12 +1590,16 @@ static int mt2701_afe_pcm_dev_probe(stru
|
||||||
}
|
}
|
||||||
|
|
||||||
platform_set_drvdata(pdev, afe);
|
platform_set_drvdata(pdev, afe);
|
||||||
|
@ -40,7 +38,7 @@ index 8fda182f849b..a7362d1cda1b 100644
|
||||||
if (ret) {
|
if (ret) {
|
||||||
dev_warn(dev, "err_platform\n");
|
dev_warn(dev, "err_platform\n");
|
||||||
goto err_platform;
|
goto err_platform;
|
||||||
@@ -1610,35 +1614,28 @@ static int mt2701_afe_pcm_dev_probe(struct platform_device *pdev)
|
@@ -1610,35 +1614,28 @@ static int mt2701_afe_pcm_dev_probe(stru
|
||||||
goto err_dai_component;
|
goto err_dai_component;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -81,6 +79,3 @@ index 8fda182f849b..a7362d1cda1b 100644
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
--
|
|
||||||
2.11.0
|
|
||||||
|
|
||||||
|
|
|
@ -30,8 +30,6 @@ Signed-off-by: Mark Brown <broonie@kernel.org>
|
||||||
sound/soc/mediatek/mt2701/mt2701-afe-pcm.c | 45 +-
|
sound/soc/mediatek/mt2701/mt2701-afe-pcm.c | 45 +-
|
||||||
4 files changed, 200 insertions(+), 442 deletions(-)
|
4 files changed, 200 insertions(+), 442 deletions(-)
|
||||||
|
|
||||||
diff --git a/sound/soc/mediatek/mt2701/mt2701-afe-clock-ctrl.c b/sound/soc/mediatek/mt2701/mt2701-afe-clock-ctrl.c
|
|
||||||
index affa7fb25dd9..75ccdca5811d 100644
|
|
||||||
--- a/sound/soc/mediatek/mt2701/mt2701-afe-clock-ctrl.c
|
--- a/sound/soc/mediatek/mt2701/mt2701-afe-clock-ctrl.c
|
||||||
+++ b/sound/soc/mediatek/mt2701/mt2701-afe-clock-ctrl.c
|
+++ b/sound/soc/mediatek/mt2701/mt2701-afe-clock-ctrl.c
|
||||||
@@ -21,442 +21,256 @@
|
@@ -21,442 +21,256 @@
|
||||||
|
@ -96,15 +94,14 @@ index affa7fb25dd9..75ccdca5811d 100644
|
||||||
{
|
{
|
||||||
struct mt2701_afe_private *afe_priv = afe->platform_priv;
|
struct mt2701_afe_private *afe_priv = afe->platform_priv;
|
||||||
- int i = 0;
|
- int i = 0;
|
||||||
-
|
+ int i;
|
||||||
|
|
||||||
- for (i = 0; i < MT2701_CLOCK_NUM; i++) {
|
- for (i = 0; i < MT2701_CLOCK_NUM; i++) {
|
||||||
- afe_priv->clocks[i] = devm_clk_get(afe->dev, aud_clks[i]);
|
- afe_priv->clocks[i] = devm_clk_get(afe->dev, aud_clks[i]);
|
||||||
- if (IS_ERR(afe_priv->clocks[i])) {
|
- if (IS_ERR(afe_priv->clocks[i])) {
|
||||||
- dev_warn(afe->dev, "%s devm_clk_get %s fail\n",
|
- dev_warn(afe->dev, "%s devm_clk_get %s fail\n",
|
||||||
- __func__, aud_clks[i]);
|
- __func__, aud_clks[i]);
|
||||||
- return PTR_ERR(aud_clks[i]);
|
- return PTR_ERR(aud_clks[i]);
|
||||||
+ int i;
|
|
||||||
+
|
|
||||||
+ for (i = 0; i < MT2701_BASE_CLK_NUM; i++) {
|
+ for (i = 0; i < MT2701_BASE_CLK_NUM; i++) {
|
||||||
+ afe_priv->base_ck[i] = devm_clk_get(afe->dev, base_clks[i]);
|
+ afe_priv->base_ck[i] = devm_clk_get(afe->dev, base_clks[i]);
|
||||||
+ if (IS_ERR(afe_priv->base_ck[i])) {
|
+ if (IS_ERR(afe_priv->base_ck[i])) {
|
||||||
|
@ -119,10 +116,7 @@ index affa7fb25dd9..75ccdca5811d 100644
|
||||||
+ for (i = 0; i < MT2701_I2S_NUM; i++) {
|
+ for (i = 0; i < MT2701_I2S_NUM; i++) {
|
||||||
+ struct mt2701_i2s_path *i2s_path = &afe_priv->i2s_path[i];
|
+ struct mt2701_i2s_path *i2s_path = &afe_priv->i2s_path[i];
|
||||||
+ char name[13];
|
+ char name[13];
|
||||||
|
+
|
||||||
-int mt2701_afe_enable_clock(struct mtk_base_afe *afe)
|
|
||||||
-{
|
|
||||||
- int ret = 0;
|
|
||||||
+ snprintf(name, sizeof(name), "i2s%d_src_sel", i);
|
+ snprintf(name, sizeof(name), "i2s%d_src_sel", i);
|
||||||
+ i2s_path->sel_ck = devm_clk_get(afe->dev, name);
|
+ i2s_path->sel_ck = devm_clk_get(afe->dev, name);
|
||||||
+ if (IS_ERR(i2s_path->sel_ck)) {
|
+ if (IS_ERR(i2s_path->sel_ck)) {
|
||||||
|
@ -130,12 +124,9 @@ index affa7fb25dd9..75ccdca5811d 100644
|
||||||
+ return PTR_ERR(i2s_path->sel_ck);
|
+ return PTR_ERR(i2s_path->sel_ck);
|
||||||
+ }
|
+ }
|
||||||
|
|
||||||
- ret = mt2701_turn_on_a1sys_clock(afe);
|
-int mt2701_afe_enable_clock(struct mtk_base_afe *afe)
|
||||||
- if (ret) {
|
-{
|
||||||
- dev_err(afe->dev, "%s turn_on_a1sys_clock fail %d\n",
|
- int ret = 0;
|
||||||
- __func__, ret);
|
|
||||||
- return ret;
|
|
||||||
- }
|
|
||||||
+ snprintf(name, sizeof(name), "i2s%d_src_div", i);
|
+ snprintf(name, sizeof(name), "i2s%d_src_div", i);
|
||||||
+ i2s_path->div_ck = devm_clk_get(afe->dev, name);
|
+ i2s_path->div_ck = devm_clk_get(afe->dev, name);
|
||||||
+ if (IS_ERR(i2s_path->div_ck)) {
|
+ if (IS_ERR(i2s_path->div_ck)) {
|
||||||
|
@ -143,11 +134,10 @@ index affa7fb25dd9..75ccdca5811d 100644
|
||||||
+ return PTR_ERR(i2s_path->div_ck);
|
+ return PTR_ERR(i2s_path->div_ck);
|
||||||
+ }
|
+ }
|
||||||
|
|
||||||
- ret = mt2701_turn_on_a2sys_clock(afe);
|
- ret = mt2701_turn_on_a1sys_clock(afe);
|
||||||
- if (ret) {
|
- if (ret) {
|
||||||
- dev_err(afe->dev, "%s turn_on_a2sys_clock fail %d\n",
|
- dev_err(afe->dev, "%s turn_on_a1sys_clock fail %d\n",
|
||||||
- __func__, ret);
|
- __func__, ret);
|
||||||
- mt2701_turn_off_a1sys_clock(afe);
|
|
||||||
- return ret;
|
- return ret;
|
||||||
- }
|
- }
|
||||||
+ snprintf(name, sizeof(name), "i2s%d_mclk_en", i);
|
+ snprintf(name, sizeof(name), "i2s%d_mclk_en", i);
|
||||||
|
@ -157,6 +147,20 @@ index affa7fb25dd9..75ccdca5811d 100644
|
||||||
+ return PTR_ERR(i2s_path->mclk_ck);
|
+ return PTR_ERR(i2s_path->mclk_ck);
|
||||||
+ }
|
+ }
|
||||||
|
|
||||||
|
- ret = mt2701_turn_on_a2sys_clock(afe);
|
||||||
|
- if (ret) {
|
||||||
|
- dev_err(afe->dev, "%s turn_on_a2sys_clock fail %d\n",
|
||||||
|
- __func__, ret);
|
||||||
|
- mt2701_turn_off_a1sys_clock(afe);
|
||||||
|
- return ret;
|
||||||
|
- }
|
||||||
|
+ snprintf(name, sizeof(name), "i2so%d_hop_ck", i);
|
||||||
|
+ i2s_path->hop_ck[I2S_OUT] = devm_clk_get(afe->dev, name);
|
||||||
|
+ if (IS_ERR(i2s_path->hop_ck[I2S_OUT])) {
|
||||||
|
+ dev_err(afe->dev, "failed to get %s\n", name);
|
||||||
|
+ return PTR_ERR(i2s_path->hop_ck[I2S_OUT]);
|
||||||
|
+ }
|
||||||
|
|
||||||
- ret = mt2701_turn_on_afe_clock(afe);
|
- ret = mt2701_turn_on_afe_clock(afe);
|
||||||
- if (ret) {
|
- if (ret) {
|
||||||
- dev_err(afe->dev, "%s turn_on_afe_clock fail %d\n",
|
- dev_err(afe->dev, "%s turn_on_afe_clock fail %d\n",
|
||||||
|
@ -164,13 +168,6 @@ index affa7fb25dd9..75ccdca5811d 100644
|
||||||
- mt2701_turn_off_a1sys_clock(afe);
|
- mt2701_turn_off_a1sys_clock(afe);
|
||||||
- mt2701_turn_off_a2sys_clock(afe);
|
- mt2701_turn_off_a2sys_clock(afe);
|
||||||
- return ret;
|
- return ret;
|
||||||
+ snprintf(name, sizeof(name), "i2so%d_hop_ck", i);
|
|
||||||
+ i2s_path->hop_ck[I2S_OUT] = devm_clk_get(afe->dev, name);
|
|
||||||
+ if (IS_ERR(i2s_path->hop_ck[I2S_OUT])) {
|
|
||||||
+ dev_err(afe->dev, "failed to get %s\n", name);
|
|
||||||
+ return PTR_ERR(i2s_path->hop_ck[I2S_OUT]);
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ snprintf(name, sizeof(name), "i2si%d_hop_ck", i);
|
+ snprintf(name, sizeof(name), "i2si%d_hop_ck", i);
|
||||||
+ i2s_path->hop_ck[I2S_IN] = devm_clk_get(afe->dev, name);
|
+ i2s_path->hop_ck[I2S_IN] = devm_clk_get(afe->dev, name);
|
||||||
+ if (IS_ERR(i2s_path->hop_ck[I2S_IN])) {
|
+ if (IS_ERR(i2s_path->hop_ck[I2S_IN])) {
|
||||||
|
@ -455,7 +452,9 @@ index affa7fb25dd9..75ccdca5811d 100644
|
||||||
|
|
||||||
- /* enable INFRA_SYS */
|
- /* enable INFRA_SYS */
|
||||||
- ret = clk_prepare_enable(afe_priv->clocks[MT2701_AUD_INFRA_SYS_AUDIO]);
|
- ret = clk_prepare_enable(afe_priv->clocks[MT2701_AUD_INFRA_SYS_AUDIO]);
|
||||||
- if (ret) {
|
+ /* Enable audio system */
|
||||||
|
+ ret = mt2701_afe_enable_audsys(afe);
|
||||||
|
if (ret) {
|
||||||
- dev_err(afe->dev, "%s clk_prepare_enable %s fail %d\n",
|
- dev_err(afe->dev, "%s clk_prepare_enable %s fail %d\n",
|
||||||
- __func__, aud_clks[MT2701_AUD_INFRA_SYS_AUDIO], ret);
|
- __func__, aud_clks[MT2701_AUD_INFRA_SYS_AUDIO], ret);
|
||||||
- goto AFE_AUD_INFRA_ERR;
|
- goto AFE_AUD_INFRA_ERR;
|
||||||
|
@ -497,9 +496,7 @@ index affa7fb25dd9..75ccdca5811d 100644
|
||||||
-
|
-
|
||||||
- /* Set MT2701_AUD_ASM_M_SEL to MT2701_AUD_UNIVPLL2_D4 */
|
- /* Set MT2701_AUD_ASM_M_SEL to MT2701_AUD_UNIVPLL2_D4 */
|
||||||
- ret = clk_prepare_enable(afe_priv->clocks[MT2701_AUD_ASM_M_SEL]);
|
- ret = clk_prepare_enable(afe_priv->clocks[MT2701_AUD_ASM_M_SEL]);
|
||||||
+ /* Enable audio system */
|
- if (ret) {
|
||||||
+ ret = mt2701_afe_enable_audsys(afe);
|
|
||||||
if (ret) {
|
|
||||||
- dev_err(afe->dev, "%s clk_prepare_enable %s fail %d\n",
|
- dev_err(afe->dev, "%s clk_prepare_enable %s fail %d\n",
|
||||||
- __func__, aud_clks[MT2701_AUD_ASM_M_SEL], ret);
|
- __func__, aud_clks[MT2701_AUD_ASM_M_SEL], ret);
|
||||||
- goto AFE_AUD_ASM_M_ERR;
|
- goto AFE_AUD_ASM_M_ERR;
|
||||||
|
@ -560,7 +557,8 @@ index affa7fb25dd9..75ccdca5811d 100644
|
||||||
+ AFE_DAC_CON0_AFE_ON, 0);
|
+ AFE_DAC_CON0_AFE_ON, 0);
|
||||||
|
|
||||||
- clk_disable_unprepare(afe_priv->clocks[MT2701_AUD_INFRA_SYS_AUDIO]);
|
- clk_disable_unprepare(afe_priv->clocks[MT2701_AUD_INFRA_SYS_AUDIO]);
|
||||||
-
|
+ mt2701_afe_disable_audsys(afe);
|
||||||
|
|
||||||
- clk_disable_unprepare(afe_priv->clocks[MT2701_AUD_AUDINTBUS]);
|
- clk_disable_unprepare(afe_priv->clocks[MT2701_AUD_AUDINTBUS]);
|
||||||
- clk_disable_unprepare(afe_priv->clocks[MT2701_AUD_ASM_H_SEL]);
|
- clk_disable_unprepare(afe_priv->clocks[MT2701_AUD_ASM_H_SEL]);
|
||||||
- clk_disable_unprepare(afe_priv->clocks[MT2701_AUD_ASM_M_SEL]);
|
- clk_disable_unprepare(afe_priv->clocks[MT2701_AUD_ASM_M_SEL]);
|
||||||
|
@ -579,8 +577,6 @@ index affa7fb25dd9..75ccdca5811d 100644
|
||||||
- regmap_update_bits(afe->regmap, AUDIO_TOP_CON4,
|
- regmap_update_bits(afe->regmap, AUDIO_TOP_CON4,
|
||||||
- AUDIO_TOP_CON4_PDN_AFE_CONN,
|
- AUDIO_TOP_CON4_PDN_AFE_CONN,
|
||||||
- AUDIO_TOP_CON4_PDN_AFE_CONN);
|
- AUDIO_TOP_CON4_PDN_AFE_CONN);
|
||||||
+ mt2701_afe_disable_audsys(afe);
|
|
||||||
+
|
|
||||||
+ return 0;
|
+ return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -643,8 +639,6 @@ index affa7fb25dd9..75ccdca5811d 100644
|
||||||
}
|
}
|
||||||
|
|
||||||
MODULE_DESCRIPTION("MT2701 afe clock control");
|
MODULE_DESCRIPTION("MT2701 afe clock control");
|
||||||
diff --git a/sound/soc/mediatek/mt2701/mt2701-afe-clock-ctrl.h b/sound/soc/mediatek/mt2701/mt2701-afe-clock-ctrl.h
|
|
||||||
index 6497d570cf09..15417d9d6597 100644
|
|
||||||
--- a/sound/soc/mediatek/mt2701/mt2701-afe-clock-ctrl.h
|
--- a/sound/soc/mediatek/mt2701/mt2701-afe-clock-ctrl.h
|
||||||
+++ b/sound/soc/mediatek/mt2701/mt2701-afe-clock-ctrl.h
|
+++ b/sound/soc/mediatek/mt2701/mt2701-afe-clock-ctrl.h
|
||||||
@@ -21,16 +21,15 @@ struct mtk_base_afe;
|
@@ -21,16 +21,15 @@ struct mtk_base_afe;
|
||||||
|
@ -671,8 +665,6 @@ index 6497d570cf09..15417d9d6597 100644
|
||||||
|
|
||||||
void mt2701_mclk_configuration(struct mtk_base_afe *afe, int id, int domain,
|
void mt2701_mclk_configuration(struct mtk_base_afe *afe, int id, int domain,
|
||||||
int mclk);
|
int mclk);
|
||||||
diff --git a/sound/soc/mediatek/mt2701/mt2701-afe-common.h b/sound/soc/mediatek/mt2701/mt2701-afe-common.h
|
|
||||||
index c19430e98adf..ce5bd4dc864d 100644
|
|
||||||
--- a/sound/soc/mediatek/mt2701/mt2701-afe-common.h
|
--- a/sound/soc/mediatek/mt2701/mt2701-afe-common.h
|
||||||
+++ b/sound/soc/mediatek/mt2701/mt2701-afe-common.h
|
+++ b/sound/soc/mediatek/mt2701/mt2701-afe-common.h
|
||||||
@@ -69,53 +69,14 @@ enum {
|
@@ -69,53 +69,14 @@ enum {
|
||||||
|
@ -764,11 +756,9 @@ index c19430e98adf..ce5bd4dc864d 100644
|
||||||
bool mrg_enable[MT2701_STREAM_DIR_NUM];
|
bool mrg_enable[MT2701_STREAM_DIR_NUM];
|
||||||
};
|
};
|
||||||
|
|
||||||
diff --git a/sound/soc/mediatek/mt2701/mt2701-afe-pcm.c b/sound/soc/mediatek/mt2701/mt2701-afe-pcm.c
|
|
||||||
index a7362d1cda1b..33f809228f25 100644
|
|
||||||
--- a/sound/soc/mediatek/mt2701/mt2701-afe-pcm.c
|
--- a/sound/soc/mediatek/mt2701/mt2701-afe-pcm.c
|
||||||
+++ b/sound/soc/mediatek/mt2701/mt2701-afe-pcm.c
|
+++ b/sound/soc/mediatek/mt2701/mt2701-afe-pcm.c
|
||||||
@@ -97,21 +97,12 @@ static int mt2701_afe_i2s_startup(struct snd_pcm_substream *substream,
|
@@ -97,21 +97,12 @@ static int mt2701_afe_i2s_startup(struct
|
||||||
{
|
{
|
||||||
struct snd_soc_pcm_runtime *rtd = substream->private_data;
|
struct snd_soc_pcm_runtime *rtd = substream->private_data;
|
||||||
struct mtk_base_afe *afe = snd_soc_platform_get_drvdata(rtd->platform);
|
struct mtk_base_afe *afe = snd_soc_platform_get_drvdata(rtd->platform);
|
||||||
|
@ -791,7 +781,7 @@ index a7362d1cda1b..33f809228f25 100644
|
||||||
}
|
}
|
||||||
|
|
||||||
static int mt2701_afe_i2s_path_shutdown(struct snd_pcm_substream *substream,
|
static int mt2701_afe_i2s_path_shutdown(struct snd_pcm_substream *substream,
|
||||||
@@ -151,9 +142,9 @@ static int mt2701_afe_i2s_path_shutdown(struct snd_pcm_substream *substream,
|
@@ -151,9 +142,9 @@ static int mt2701_afe_i2s_path_shutdown(
|
||||||
/* disable i2s */
|
/* disable i2s */
|
||||||
regmap_update_bits(afe->regmap, i2s_data->i2s_ctrl_reg,
|
regmap_update_bits(afe->regmap, i2s_data->i2s_ctrl_reg,
|
||||||
ASYS_I2S_CON_I2S_EN, 0);
|
ASYS_I2S_CON_I2S_EN, 0);
|
||||||
|
@ -804,7 +794,7 @@ index a7362d1cda1b..33f809228f25 100644
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -165,7 +156,6 @@ static void mt2701_afe_i2s_shutdown(struct snd_pcm_substream *substream,
|
@@ -165,7 +156,6 @@ static void mt2701_afe_i2s_shutdown(stru
|
||||||
struct mt2701_afe_private *afe_priv = afe->platform_priv;
|
struct mt2701_afe_private *afe_priv = afe->platform_priv;
|
||||||
int i2s_num = mt2701_dai_num_to_i2s(afe, dai->id);
|
int i2s_num = mt2701_dai_num_to_i2s(afe, dai->id);
|
||||||
struct mt2701_i2s_path *i2s_path;
|
struct mt2701_i2s_path *i2s_path;
|
||||||
|
@ -812,7 +802,7 @@ index a7362d1cda1b..33f809228f25 100644
|
||||||
|
|
||||||
if (i2s_num < 0)
|
if (i2s_num < 0)
|
||||||
return;
|
return;
|
||||||
@@ -185,7 +175,7 @@ static void mt2701_afe_i2s_shutdown(struct snd_pcm_substream *substream,
|
@@ -185,7 +175,7 @@ static void mt2701_afe_i2s_shutdown(stru
|
||||||
|
|
||||||
I2S_UNSTART:
|
I2S_UNSTART:
|
||||||
/* disable mclk */
|
/* disable mclk */
|
||||||
|
@ -821,7 +811,7 @@ index a7362d1cda1b..33f809228f25 100644
|
||||||
}
|
}
|
||||||
|
|
||||||
static int mt2701_i2s_path_prepare_enable(struct snd_pcm_substream *substream,
|
static int mt2701_i2s_path_prepare_enable(struct snd_pcm_substream *substream,
|
||||||
@@ -251,9 +241,7 @@ static int mt2701_i2s_path_prepare_enable(struct snd_pcm_substream *substream,
|
@@ -251,9 +241,7 @@ static int mt2701_i2s_path_prepare_enabl
|
||||||
fs << i2s_data->i2s_asrc_fs_shift);
|
fs << i2s_data->i2s_asrc_fs_shift);
|
||||||
|
|
||||||
/* enable i2s */
|
/* enable i2s */
|
||||||
|
@ -832,7 +822,7 @@ index a7362d1cda1b..33f809228f25 100644
|
||||||
|
|
||||||
/* reset i2s hw status before enable */
|
/* reset i2s hw status before enable */
|
||||||
regmap_update_bits(afe->regmap, i2s_data->i2s_ctrl_reg,
|
regmap_update_bits(afe->regmap, i2s_data->i2s_ctrl_reg,
|
||||||
@@ -339,9 +327,11 @@ static int mt2701_btmrg_startup(struct snd_pcm_substream *substream,
|
@@ -339,9 +327,11 @@ static int mt2701_btmrg_startup(struct s
|
||||||
struct snd_soc_pcm_runtime *rtd = substream->private_data;
|
struct snd_soc_pcm_runtime *rtd = substream->private_data;
|
||||||
struct mtk_base_afe *afe = snd_soc_platform_get_drvdata(rtd->platform);
|
struct mtk_base_afe *afe = snd_soc_platform_get_drvdata(rtd->platform);
|
||||||
struct mt2701_afe_private *afe_priv = afe->platform_priv;
|
struct mt2701_afe_private *afe_priv = afe->platform_priv;
|
||||||
|
@ -846,7 +836,7 @@ index a7362d1cda1b..33f809228f25 100644
|
||||||
|
|
||||||
afe_priv->mrg_enable[substream->stream] = 1;
|
afe_priv->mrg_enable[substream->stream] = 1;
|
||||||
return 0;
|
return 0;
|
||||||
@@ -406,9 +396,7 @@ static void mt2701_btmrg_shutdown(struct snd_pcm_substream *substream,
|
@@ -406,9 +396,7 @@ static void mt2701_btmrg_shutdown(struct
|
||||||
AFE_MRGIF_CON_MRG_EN, 0);
|
AFE_MRGIF_CON_MRG_EN, 0);
|
||||||
regmap_update_bits(afe->regmap, AFE_MRGIF_CON,
|
regmap_update_bits(afe->regmap, AFE_MRGIF_CON,
|
||||||
AFE_MRGIF_CON_MRG_I2S_EN, 0);
|
AFE_MRGIF_CON_MRG_I2S_EN, 0);
|
||||||
|
@ -857,7 +847,7 @@ index a7362d1cda1b..33f809228f25 100644
|
||||||
}
|
}
|
||||||
afe_priv->mrg_enable[substream->stream] = 0;
|
afe_priv->mrg_enable[substream->stream] = 0;
|
||||||
}
|
}
|
||||||
@@ -1386,14 +1374,12 @@ static const struct mt2701_i2s_data mt2701_i2s_data[MT2701_I2S_NUM][2] = {
|
@@ -1386,14 +1374,12 @@ static const struct mt2701_i2s_data mt27
|
||||||
{
|
{
|
||||||
{
|
{
|
||||||
.i2s_ctrl_reg = ASYS_I2SO1_CON,
|
.i2s_ctrl_reg = ASYS_I2SO1_CON,
|
||||||
|
@ -872,7 +862,7 @@ index a7362d1cda1b..33f809228f25 100644
|
||||||
.i2s_asrc_fs_shift = 0,
|
.i2s_asrc_fs_shift = 0,
|
||||||
.i2s_asrc_fs_mask = 0x1f,
|
.i2s_asrc_fs_mask = 0x1f,
|
||||||
|
|
||||||
@@ -1402,14 +1388,12 @@ static const struct mt2701_i2s_data mt2701_i2s_data[MT2701_I2S_NUM][2] = {
|
@@ -1402,14 +1388,12 @@ static const struct mt2701_i2s_data mt27
|
||||||
{
|
{
|
||||||
{
|
{
|
||||||
.i2s_ctrl_reg = ASYS_I2SO2_CON,
|
.i2s_ctrl_reg = ASYS_I2SO2_CON,
|
||||||
|
@ -887,7 +877,7 @@ index a7362d1cda1b..33f809228f25 100644
|
||||||
.i2s_asrc_fs_shift = 5,
|
.i2s_asrc_fs_shift = 5,
|
||||||
.i2s_asrc_fs_mask = 0x1f,
|
.i2s_asrc_fs_mask = 0x1f,
|
||||||
|
|
||||||
@@ -1418,14 +1402,12 @@ static const struct mt2701_i2s_data mt2701_i2s_data[MT2701_I2S_NUM][2] = {
|
@@ -1418,14 +1402,12 @@ static const struct mt2701_i2s_data mt27
|
||||||
{
|
{
|
||||||
{
|
{
|
||||||
.i2s_ctrl_reg = ASYS_I2SO3_CON,
|
.i2s_ctrl_reg = ASYS_I2SO3_CON,
|
||||||
|
@ -902,7 +892,7 @@ index a7362d1cda1b..33f809228f25 100644
|
||||||
.i2s_asrc_fs_shift = 10,
|
.i2s_asrc_fs_shift = 10,
|
||||||
.i2s_asrc_fs_mask = 0x1f,
|
.i2s_asrc_fs_mask = 0x1f,
|
||||||
|
|
||||||
@@ -1434,14 +1416,12 @@ static const struct mt2701_i2s_data mt2701_i2s_data[MT2701_I2S_NUM][2] = {
|
@@ -1434,14 +1416,12 @@ static const struct mt2701_i2s_data mt27
|
||||||
{
|
{
|
||||||
{
|
{
|
||||||
.i2s_ctrl_reg = ASYS_I2SO4_CON,
|
.i2s_ctrl_reg = ASYS_I2SO4_CON,
|
||||||
|
@ -917,7 +907,7 @@ index a7362d1cda1b..33f809228f25 100644
|
||||||
.i2s_asrc_fs_shift = 15,
|
.i2s_asrc_fs_shift = 15,
|
||||||
.i2s_asrc_fs_mask = 0x1f,
|
.i2s_asrc_fs_mask = 0x1f,
|
||||||
|
|
||||||
@@ -1483,8 +1463,7 @@ static int mt2701_afe_runtime_suspend(struct device *dev)
|
@@ -1483,8 +1463,7 @@ static int mt2701_afe_runtime_suspend(st
|
||||||
{
|
{
|
||||||
struct mtk_base_afe *afe = dev_get_drvdata(dev);
|
struct mtk_base_afe *afe = dev_get_drvdata(dev);
|
||||||
|
|
||||||
|
@ -927,6 +917,3 @@ index a7362d1cda1b..33f809228f25 100644
|
||||||
}
|
}
|
||||||
|
|
||||||
static int mt2701_afe_runtime_resume(struct device *dev)
|
static int mt2701_afe_runtime_resume(struct device *dev)
|
||||||
--
|
|
||||||
2.11.0
|
|
||||||
|
|
||||||
|
|
|
@ -15,8 +15,6 @@ Signed-off-by: Mark Brown <broonie@kernel.org>
|
||||||
sound/soc/mediatek/mt2701/mt2701-reg.h | 41 +---------
|
sound/soc/mediatek/mt2701/mt2701-reg.h | 41 +---------
|
||||||
4 files changed, 24 insertions(+), 145 deletions(-)
|
4 files changed, 24 insertions(+), 145 deletions(-)
|
||||||
|
|
||||||
diff --git a/sound/soc/mediatek/mt2701/mt2701-afe-clock-ctrl.c b/sound/soc/mediatek/mt2701/mt2701-afe-clock-ctrl.c
|
|
||||||
index 75ccdca5811d..56a057c78c9a 100644
|
|
||||||
--- a/sound/soc/mediatek/mt2701/mt2701-afe-clock-ctrl.c
|
--- a/sound/soc/mediatek/mt2701/mt2701-afe-clock-ctrl.c
|
||||||
+++ b/sound/soc/mediatek/mt2701/mt2701-afe-clock-ctrl.c
|
+++ b/sound/soc/mediatek/mt2701/mt2701-afe-clock-ctrl.c
|
||||||
@@ -14,10 +14,6 @@
|
@@ -14,10 +14,6 @@
|
||||||
|
@ -30,7 +28,7 @@ index 75ccdca5811d..56a057c78c9a 100644
|
||||||
#include "mt2701-afe-common.h"
|
#include "mt2701-afe-common.h"
|
||||||
#include "mt2701-afe-clock-ctrl.h"
|
#include "mt2701-afe-clock-ctrl.h"
|
||||||
|
|
||||||
@@ -223,8 +219,8 @@ int mt2701_afe_enable_clock(struct mtk_base_afe *afe)
|
@@ -223,8 +219,8 @@ int mt2701_afe_enable_clock(struct mtk_b
|
||||||
}
|
}
|
||||||
|
|
||||||
regmap_update_bits(afe->regmap, ASYS_TOP_CON,
|
regmap_update_bits(afe->regmap, ASYS_TOP_CON,
|
||||||
|
@ -41,7 +39,7 @@ index 75ccdca5811d..56a057c78c9a 100644
|
||||||
regmap_update_bits(afe->regmap, AFE_DAC_CON0,
|
regmap_update_bits(afe->regmap, AFE_DAC_CON0,
|
||||||
AFE_DAC_CON0_AFE_ON,
|
AFE_DAC_CON0_AFE_ON,
|
||||||
AFE_DAC_CON0_AFE_ON);
|
AFE_DAC_CON0_AFE_ON);
|
||||||
@@ -239,7 +235,7 @@ int mt2701_afe_enable_clock(struct mtk_base_afe *afe)
|
@@ -239,7 +235,7 @@ int mt2701_afe_enable_clock(struct mtk_b
|
||||||
int mt2701_afe_disable_clock(struct mtk_base_afe *afe)
|
int mt2701_afe_disable_clock(struct mtk_base_afe *afe)
|
||||||
{
|
{
|
||||||
regmap_update_bits(afe->regmap, ASYS_TOP_CON,
|
regmap_update_bits(afe->regmap, ASYS_TOP_CON,
|
||||||
|
@ -50,7 +48,7 @@ index 75ccdca5811d..56a057c78c9a 100644
|
||||||
regmap_update_bits(afe->regmap, AFE_DAC_CON0,
|
regmap_update_bits(afe->regmap, AFE_DAC_CON0,
|
||||||
AFE_DAC_CON0_AFE_ON, 0);
|
AFE_DAC_CON0_AFE_ON, 0);
|
||||||
|
|
||||||
@@ -272,7 +268,3 @@ void mt2701_mclk_configuration(struct mtk_base_afe *afe, int id, int domain,
|
@@ -272,7 +268,3 @@ void mt2701_mclk_configuration(struct mt
|
||||||
if (ret)
|
if (ret)
|
||||||
dev_err(afe->dev, "failed to set mclk divider %d\n", ret);
|
dev_err(afe->dev, "failed to set mclk divider %d\n", ret);
|
||||||
}
|
}
|
||||||
|
@ -58,8 +56,6 @@ index 75ccdca5811d..56a057c78c9a 100644
|
||||||
-MODULE_DESCRIPTION("MT2701 afe clock control");
|
-MODULE_DESCRIPTION("MT2701 afe clock control");
|
||||||
-MODULE_AUTHOR("Garlic Tseng <garlic.tseng@mediatek.com>");
|
-MODULE_AUTHOR("Garlic Tseng <garlic.tseng@mediatek.com>");
|
||||||
-MODULE_LICENSE("GPL v2");
|
-MODULE_LICENSE("GPL v2");
|
||||||
diff --git a/sound/soc/mediatek/mt2701/mt2701-afe-common.h b/sound/soc/mediatek/mt2701/mt2701-afe-common.h
|
|
||||||
index ce5bd4dc864d..9a2b301a4c21 100644
|
|
||||||
--- a/sound/soc/mediatek/mt2701/mt2701-afe-common.h
|
--- a/sound/soc/mediatek/mt2701/mt2701-afe-common.h
|
||||||
+++ b/sound/soc/mediatek/mt2701/mt2701-afe-common.h
|
+++ b/sound/soc/mediatek/mt2701/mt2701-afe-common.h
|
||||||
@@ -16,6 +16,7 @@
|
@@ -16,6 +16,7 @@
|
||||||
|
@ -98,7 +94,7 @@ index ce5bd4dc864d..9a2b301a4c21 100644
|
||||||
MT2701_IRQ_ASYS_IRQ2,
|
MT2701_IRQ_ASYS_IRQ2,
|
||||||
MT2701_IRQ_ASYS_IRQ3,
|
MT2701_IRQ_ASYS_IRQ3,
|
||||||
MT2701_IRQ_ASYS_END,
|
MT2701_IRQ_ASYS_END,
|
||||||
@@ -100,9 +91,6 @@ static const unsigned int mt2701_afe_backup_list[] = {
|
@@ -100,9 +91,6 @@ static const unsigned int mt2701_afe_bac
|
||||||
AFE_MEMIF_PBUF_SIZE,
|
AFE_MEMIF_PBUF_SIZE,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -117,8 +113,6 @@ index ce5bd4dc864d..9a2b301a4c21 100644
|
||||||
struct clk *hop_ck[I2S_DIR_NUM];
|
struct clk *hop_ck[I2S_DIR_NUM];
|
||||||
struct clk *sel_ck;
|
struct clk *sel_ck;
|
||||||
struct clk *div_ck;
|
struct clk *div_ck;
|
||||||
diff --git a/sound/soc/mediatek/mt2701/mt2701-afe-pcm.c b/sound/soc/mediatek/mt2701/mt2701-afe-pcm.c
|
|
||||||
index 33f809228f25..0edadca12a5e 100644
|
|
||||||
--- a/sound/soc/mediatek/mt2701/mt2701-afe-pcm.c
|
--- a/sound/soc/mediatek/mt2701/mt2701-afe-pcm.c
|
||||||
+++ b/sound/soc/mediatek/mt2701/mt2701-afe-pcm.c
|
+++ b/sound/soc/mediatek/mt2701/mt2701-afe-pcm.c
|
||||||
@@ -20,16 +20,12 @@
|
@@ -20,16 +20,12 @@
|
||||||
|
@ -138,7 +132,7 @@ index 33f809228f25..0edadca12a5e 100644
|
||||||
static const struct snd_pcm_hardware mt2701_afe_hardware = {
|
static const struct snd_pcm_hardware mt2701_afe_hardware = {
|
||||||
.info = SNDRV_PCM_INFO_MMAP | SNDRV_PCM_INFO_INTERLEAVED
|
.info = SNDRV_PCM_INFO_MMAP | SNDRV_PCM_INFO_INTERLEAVED
|
||||||
| SNDRV_PCM_INFO_RESUME | SNDRV_PCM_INFO_MMAP_VALID,
|
| SNDRV_PCM_INFO_RESUME | SNDRV_PCM_INFO_MMAP_VALID,
|
||||||
@@ -107,21 +103,16 @@ static int mt2701_afe_i2s_startup(struct snd_pcm_substream *substream,
|
@@ -107,21 +103,16 @@ static int mt2701_afe_i2s_startup(struct
|
||||||
|
|
||||||
static int mt2701_afe_i2s_path_shutdown(struct snd_pcm_substream *substream,
|
static int mt2701_afe_i2s_path_shutdown(struct snd_pcm_substream *substream,
|
||||||
struct snd_soc_dai *dai,
|
struct snd_soc_dai *dai,
|
||||||
|
@ -162,7 +156,7 @@ index 33f809228f25..0edadca12a5e 100644
|
||||||
if (dir_invert) {
|
if (dir_invert) {
|
||||||
if (stream_dir == SNDRV_PCM_STREAM_PLAYBACK)
|
if (stream_dir == SNDRV_PCM_STREAM_PLAYBACK)
|
||||||
stream_dir = SNDRV_PCM_STREAM_CAPTURE;
|
stream_dir = SNDRV_PCM_STREAM_CAPTURE;
|
||||||
@@ -167,11 +158,11 @@ static void mt2701_afe_i2s_shutdown(struct snd_pcm_substream *substream,
|
@@ -167,11 +158,11 @@ static void mt2701_afe_i2s_shutdown(stru
|
||||||
else
|
else
|
||||||
goto I2S_UNSTART;
|
goto I2S_UNSTART;
|
||||||
|
|
||||||
|
@ -176,7 +170,7 @@ index 33f809228f25..0edadca12a5e 100644
|
||||||
|
|
||||||
I2S_UNSTART:
|
I2S_UNSTART:
|
||||||
/* disable mclk */
|
/* disable mclk */
|
||||||
@@ -180,24 +171,19 @@ static void mt2701_afe_i2s_shutdown(struct snd_pcm_substream *substream,
|
@@ -180,24 +171,19 @@ I2S_UNSTART:
|
||||||
|
|
||||||
static int mt2701_i2s_path_prepare_enable(struct snd_pcm_substream *substream,
|
static int mt2701_i2s_path_prepare_enable(struct snd_pcm_substream *substream,
|
||||||
struct snd_soc_dai *dai,
|
struct snd_soc_dai *dai,
|
||||||
|
@ -203,7 +197,7 @@ index 33f809228f25..0edadca12a5e 100644
|
||||||
if (dir_invert) {
|
if (dir_invert) {
|
||||||
if (stream_dir == SNDRV_PCM_STREAM_PLAYBACK)
|
if (stream_dir == SNDRV_PCM_STREAM_PLAYBACK)
|
||||||
stream_dir = SNDRV_PCM_STREAM_CAPTURE;
|
stream_dir = SNDRV_PCM_STREAM_CAPTURE;
|
||||||
@@ -288,13 +274,13 @@ static int mt2701_afe_i2s_prepare(struct snd_pcm_substream *substream,
|
@@ -288,13 +274,13 @@ static int mt2701_afe_i2s_prepare(struct
|
||||||
mt2701_mclk_configuration(afe, i2s_num, clk_domain, mclk_rate);
|
mt2701_mclk_configuration(afe, i2s_num, clk_domain, mclk_rate);
|
||||||
|
|
||||||
if (substream->stream == SNDRV_PCM_STREAM_PLAYBACK) {
|
if (substream->stream == SNDRV_PCM_STREAM_PLAYBACK) {
|
||||||
|
@ -220,7 +214,7 @@ index 33f809228f25..0edadca12a5e 100644
|
||||||
}
|
}
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
@@ -562,7 +548,6 @@ static const struct snd_soc_dai_ops mt2701_single_memif_dai_ops = {
|
@@ -562,7 +548,6 @@ static const struct snd_soc_dai_ops mt27
|
||||||
.hw_free = mtk_afe_fe_hw_free,
|
.hw_free = mtk_afe_fe_hw_free,
|
||||||
.prepare = mtk_afe_fe_prepare,
|
.prepare = mtk_afe_fe_prepare,
|
||||||
.trigger = mtk_afe_fe_trigger,
|
.trigger = mtk_afe_fe_trigger,
|
||||||
|
@ -228,7 +222,7 @@ index 33f809228f25..0edadca12a5e 100644
|
||||||
};
|
};
|
||||||
|
|
||||||
static const struct snd_soc_dai_ops mt2701_dlm_memif_dai_ops = {
|
static const struct snd_soc_dai_ops mt2701_dlm_memif_dai_ops = {
|
||||||
@@ -903,31 +888,6 @@ static const struct snd_kcontrol_new mt2701_afe_multi_ch_out_i2s4[] = {
|
@@ -903,31 +888,6 @@ static const struct snd_kcontrol_new mt2
|
||||||
PWR2_TOP_CON, 19, 1, 0),
|
PWR2_TOP_CON, 19, 1, 0),
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -260,7 +254,7 @@ index 33f809228f25..0edadca12a5e 100644
|
||||||
static const struct snd_soc_dapm_widget mt2701_afe_pcm_widgets[] = {
|
static const struct snd_soc_dapm_widget mt2701_afe_pcm_widgets[] = {
|
||||||
/* inter-connections */
|
/* inter-connections */
|
||||||
SND_SOC_DAPM_MIXER("I00", SND_SOC_NOPM, 0, 0, NULL, 0),
|
SND_SOC_DAPM_MIXER("I00", SND_SOC_NOPM, 0, 0, NULL, 0),
|
||||||
@@ -987,19 +947,6 @@ static const struct snd_soc_dapm_widget mt2701_afe_pcm_widgets[] = {
|
@@ -987,19 +947,6 @@ static const struct snd_soc_dapm_widget
|
||||||
SND_SOC_DAPM_MIXER("I18I19", SND_SOC_NOPM, 0, 0,
|
SND_SOC_DAPM_MIXER("I18I19", SND_SOC_NOPM, 0, 0,
|
||||||
mt2701_afe_multi_ch_out_i2s3,
|
mt2701_afe_multi_ch_out_i2s3,
|
||||||
ARRAY_SIZE(mt2701_afe_multi_ch_out_i2s3)),
|
ARRAY_SIZE(mt2701_afe_multi_ch_out_i2s3)),
|
||||||
|
@ -280,7 +274,7 @@ index 33f809228f25..0edadca12a5e 100644
|
||||||
};
|
};
|
||||||
|
|
||||||
static const struct snd_soc_dapm_route mt2701_afe_pcm_routes[] = {
|
static const struct snd_soc_dapm_route mt2701_afe_pcm_routes[] = {
|
||||||
@@ -1009,7 +956,6 @@ static const struct snd_soc_dapm_route mt2701_afe_pcm_routes[] = {
|
@@ -1009,7 +956,6 @@ static const struct snd_soc_dapm_route m
|
||||||
|
|
||||||
{"I2S0 Playback", NULL, "O15"},
|
{"I2S0 Playback", NULL, "O15"},
|
||||||
{"I2S0 Playback", NULL, "O16"},
|
{"I2S0 Playback", NULL, "O16"},
|
||||||
|
@ -288,7 +282,7 @@ index 33f809228f25..0edadca12a5e 100644
|
||||||
{"I2S1 Playback", NULL, "O17"},
|
{"I2S1 Playback", NULL, "O17"},
|
||||||
{"I2S1 Playback", NULL, "O18"},
|
{"I2S1 Playback", NULL, "O18"},
|
||||||
{"I2S2 Playback", NULL, "O19"},
|
{"I2S2 Playback", NULL, "O19"},
|
||||||
@@ -1026,7 +972,6 @@ static const struct snd_soc_dapm_route mt2701_afe_pcm_routes[] = {
|
@@ -1026,7 +972,6 @@ static const struct snd_soc_dapm_route m
|
||||||
|
|
||||||
{"I00", NULL, "I2S0 Capture"},
|
{"I00", NULL, "I2S0 Capture"},
|
||||||
{"I01", NULL, "I2S0 Capture"},
|
{"I01", NULL, "I2S0 Capture"},
|
||||||
|
@ -296,7 +290,7 @@ index 33f809228f25..0edadca12a5e 100644
|
||||||
{"I02", NULL, "I2S1 Capture"},
|
{"I02", NULL, "I2S1 Capture"},
|
||||||
{"I03", NULL, "I2S1 Capture"},
|
{"I03", NULL, "I2S1 Capture"},
|
||||||
/* I02,03 link to UL2, also need to open I2S0 */
|
/* I02,03 link to UL2, also need to open I2S0 */
|
||||||
@@ -1034,15 +979,10 @@ static const struct snd_soc_dapm_route mt2701_afe_pcm_routes[] = {
|
@@ -1034,15 +979,10 @@ static const struct snd_soc_dapm_route m
|
||||||
|
|
||||||
{"I26", NULL, "BT Capture"},
|
{"I26", NULL, "BT Capture"},
|
||||||
|
|
||||||
|
@ -316,7 +310,7 @@ index 33f809228f25..0edadca12a5e 100644
|
||||||
|
|
||||||
{ "I12", NULL, "I12I13" },
|
{ "I12", NULL, "I12I13" },
|
||||||
{ "I13", NULL, "I12I13" },
|
{ "I13", NULL, "I12I13" },
|
||||||
@@ -1067,7 +1007,6 @@ static const struct snd_soc_dapm_route mt2701_afe_pcm_routes[] = {
|
@@ -1067,7 +1007,6 @@ static const struct snd_soc_dapm_route m
|
||||||
{ "O21", "I18 Switch", "I18" },
|
{ "O21", "I18 Switch", "I18" },
|
||||||
{ "O22", "I19 Switch", "I19" },
|
{ "O22", "I19 Switch", "I19" },
|
||||||
{ "O31", "I35 Switch", "I35" },
|
{ "O31", "I35 Switch", "I35" },
|
||||||
|
@ -324,7 +318,7 @@ index 33f809228f25..0edadca12a5e 100644
|
||||||
};
|
};
|
||||||
|
|
||||||
static const struct snd_soc_component_driver mt2701_afe_pcm_dai_component = {
|
static const struct snd_soc_component_driver mt2701_afe_pcm_dai_component = {
|
||||||
@@ -1484,12 +1423,13 @@ static int mt2701_afe_pcm_dev_probe(struct platform_device *pdev)
|
@@ -1484,12 +1423,13 @@ static int mt2701_afe_pcm_dev_probe(stru
|
||||||
afe = devm_kzalloc(&pdev->dev, sizeof(*afe), GFP_KERNEL);
|
afe = devm_kzalloc(&pdev->dev, sizeof(*afe), GFP_KERNEL);
|
||||||
if (!afe)
|
if (!afe)
|
||||||
return -ENOMEM;
|
return -ENOMEM;
|
||||||
|
@ -339,7 +333,7 @@ index 33f809228f25..0edadca12a5e 100644
|
||||||
afe->dev = &pdev->dev;
|
afe->dev = &pdev->dev;
|
||||||
dev = afe->dev;
|
dev = afe->dev;
|
||||||
|
|
||||||
@@ -1524,7 +1464,6 @@ static int mt2701_afe_pcm_dev_probe(struct platform_device *pdev)
|
@@ -1524,7 +1464,6 @@ static int mt2701_afe_pcm_dev_probe(stru
|
||||||
afe->memif_size = MT2701_MEMIF_NUM;
|
afe->memif_size = MT2701_MEMIF_NUM;
|
||||||
afe->memif = devm_kcalloc(dev, afe->memif_size, sizeof(*afe->memif),
|
afe->memif = devm_kcalloc(dev, afe->memif_size, sizeof(*afe->memif),
|
||||||
GFP_KERNEL);
|
GFP_KERNEL);
|
||||||
|
@ -347,7 +341,7 @@ index 33f809228f25..0edadca12a5e 100644
|
||||||
if (!afe->memif)
|
if (!afe->memif)
|
||||||
return -ENOMEM;
|
return -ENOMEM;
|
||||||
|
|
||||||
@@ -1537,7 +1476,6 @@ static int mt2701_afe_pcm_dev_probe(struct platform_device *pdev)
|
@@ -1537,7 +1476,6 @@ static int mt2701_afe_pcm_dev_probe(stru
|
||||||
afe->irqs_size = MT2701_IRQ_ASYS_END;
|
afe->irqs_size = MT2701_IRQ_ASYS_END;
|
||||||
afe->irqs = devm_kcalloc(dev, afe->irqs_size, sizeof(*afe->irqs),
|
afe->irqs = devm_kcalloc(dev, afe->irqs_size, sizeof(*afe->irqs),
|
||||||
GFP_KERNEL);
|
GFP_KERNEL);
|
||||||
|
@ -355,7 +349,7 @@ index 33f809228f25..0edadca12a5e 100644
|
||||||
if (!afe->irqs)
|
if (!afe->irqs)
|
||||||
return -ENOMEM;
|
return -ENOMEM;
|
||||||
|
|
||||||
@@ -1555,7 +1493,6 @@ static int mt2701_afe_pcm_dev_probe(struct platform_device *pdev)
|
@@ -1555,7 +1493,6 @@ static int mt2701_afe_pcm_dev_probe(stru
|
||||||
afe->mtk_afe_hardware = &mt2701_afe_hardware;
|
afe->mtk_afe_hardware = &mt2701_afe_hardware;
|
||||||
afe->memif_fs = mt2701_memif_fs;
|
afe->memif_fs = mt2701_memif_fs;
|
||||||
afe->irq_fs = mt2701_irq_fs;
|
afe->irq_fs = mt2701_irq_fs;
|
||||||
|
@ -363,13 +357,11 @@ index 33f809228f25..0edadca12a5e 100644
|
||||||
afe->reg_back_up_list = mt2701_afe_backup_list;
|
afe->reg_back_up_list = mt2701_afe_backup_list;
|
||||||
afe->reg_back_up_list_num = ARRAY_SIZE(mt2701_afe_backup_list);
|
afe->reg_back_up_list_num = ARRAY_SIZE(mt2701_afe_backup_list);
|
||||||
afe->runtime_resume = mt2701_afe_runtime_resume;
|
afe->runtime_resume = mt2701_afe_runtime_resume;
|
||||||
@@ -1646,4 +1583,3 @@ module_platform_driver(mt2701_afe_pcm_driver);
|
@@ -1646,4 +1583,3 @@ module_platform_driver(mt2701_afe_pcm_dr
|
||||||
MODULE_DESCRIPTION("Mediatek ALSA SoC AFE platform driver for 2701");
|
MODULE_DESCRIPTION("Mediatek ALSA SoC AFE platform driver for 2701");
|
||||||
MODULE_AUTHOR("Garlic Tseng <garlic.tseng@mediatek.com>");
|
MODULE_AUTHOR("Garlic Tseng <garlic.tseng@mediatek.com>");
|
||||||
MODULE_LICENSE("GPL v2");
|
MODULE_LICENSE("GPL v2");
|
||||||
-
|
-
|
||||||
diff --git a/sound/soc/mediatek/mt2701/mt2701-reg.h b/sound/soc/mediatek/mt2701/mt2701-reg.h
|
|
||||||
index bb62b1c55957..f17c76f37b5f 100644
|
|
||||||
--- a/sound/soc/mediatek/mt2701/mt2701-reg.h
|
--- a/sound/soc/mediatek/mt2701/mt2701-reg.h
|
||||||
+++ b/sound/soc/mediatek/mt2701/mt2701-reg.h
|
+++ b/sound/soc/mediatek/mt2701/mt2701-reg.h
|
||||||
@@ -17,17 +17,6 @@
|
@@ -17,17 +17,6 @@
|
||||||
|
@ -434,6 +426,3 @@ index bb62b1c55957..f17c76f37b5f 100644
|
||||||
|
|
||||||
/* PWR2_ASM_CON1 (0x1070) */
|
/* PWR2_ASM_CON1 (0x1070) */
|
||||||
#define PWR2_ASM_CON1_INIT_VAL (0x492492)
|
#define PWR2_ASM_CON1_INIT_VAL (0x492492)
|
||||||
--
|
|
||||||
2.11.0
|
|
||||||
|
|
||||||
|
|
|
@ -17,8 +17,6 @@ Signed-off-by: Mark Brown <broonie@kernel.org>
|
||||||
.../devicetree/bindings/sound/mt2701-afe-pcm.txt | 207 +++++++++------------
|
.../devicetree/bindings/sound/mt2701-afe-pcm.txt | 207 +++++++++------------
|
||||||
1 file changed, 91 insertions(+), 116 deletions(-)
|
1 file changed, 91 insertions(+), 116 deletions(-)
|
||||||
|
|
||||||
diff --git a/Documentation/devicetree/bindings/sound/mt2701-afe-pcm.txt b/Documentation/devicetree/bindings/sound/mt2701-afe-pcm.txt
|
|
||||||
index 77a57f84bed4..0450baad2813 100644
|
|
||||||
--- a/Documentation/devicetree/bindings/sound/mt2701-afe-pcm.txt
|
--- a/Documentation/devicetree/bindings/sound/mt2701-afe-pcm.txt
|
||||||
+++ b/Documentation/devicetree/bindings/sound/mt2701-afe-pcm.txt
|
+++ b/Documentation/devicetree/bindings/sound/mt2701-afe-pcm.txt
|
||||||
@@ -6,51 +6,44 @@ Required properties:
|
@@ -6,51 +6,44 @@ Required properties:
|
||||||
|
@ -258,6 +256,3 @@ index 77a57f84bed4..0450baad2813 100644
|
||||||
+ <&topckgen CLK_TOP_AUD2PLL_90M>;
|
+ <&topckgen CLK_TOP_AUD2PLL_90M>;
|
||||||
+ assigned-clock-rates = <0>, <0>, <49152000>, <45158400>;
|
+ assigned-clock-rates = <0>, <0>, <49152000>, <45158400>;
|
||||||
};
|
};
|
||||||
--
|
|
||||||
2.11.0
|
|
||||||
|
|
||||||
|
|
|
@ -12,8 +12,6 @@ Signed-off-by: Mark Brown <broonie@kernel.org>
|
||||||
sound/soc/mediatek/mt2701/mt2701-afe-common.h | 3 +++
|
sound/soc/mediatek/mt2701/mt2701-afe-common.h | 3 +++
|
||||||
2 files changed, 32 insertions(+), 1 deletion(-)
|
2 files changed, 32 insertions(+), 1 deletion(-)
|
||||||
|
|
||||||
diff --git a/sound/soc/mediatek/mt2701/mt2701-afe-clock-ctrl.c b/sound/soc/mediatek/mt2701/mt2701-afe-clock-ctrl.c
|
|
||||||
index 56a057c78c9a..949fc3a1d025 100644
|
|
||||||
--- a/sound/soc/mediatek/mt2701/mt2701-afe-clock-ctrl.c
|
--- a/sound/soc/mediatek/mt2701/mt2701-afe-clock-ctrl.c
|
||||||
+++ b/sound/soc/mediatek/mt2701/mt2701-afe-clock-ctrl.c
|
+++ b/sound/soc/mediatek/mt2701/mt2701-afe-clock-ctrl.c
|
||||||
@@ -18,8 +18,11 @@
|
@@ -18,8 +18,11 @@
|
||||||
|
@ -28,7 +26,7 @@ index 56a057c78c9a..949fc3a1d025 100644
|
||||||
[MT2701_AUDSYS_AFE] = "audio_afe_pd",
|
[MT2701_AUDSYS_AFE] = "audio_afe_pd",
|
||||||
[MT2701_AUDSYS_AFE_CONN] = "audio_afe_conn_pd",
|
[MT2701_AUDSYS_AFE_CONN] = "audio_afe_conn_pd",
|
||||||
[MT2701_AUDSYS_A1SYS] = "audio_a1sys_pd",
|
[MT2701_AUDSYS_A1SYS] = "audio_a1sys_pd",
|
||||||
@@ -169,10 +172,26 @@ static int mt2701_afe_enable_audsys(struct mtk_base_afe *afe)
|
@@ -169,10 +172,26 @@ static int mt2701_afe_enable_audsys(stru
|
||||||
struct mt2701_afe_private *afe_priv = afe->platform_priv;
|
struct mt2701_afe_private *afe_priv = afe->platform_priv;
|
||||||
int ret;
|
int ret;
|
||||||
|
|
||||||
|
@ -56,7 +54,7 @@ index 56a057c78c9a..949fc3a1d025 100644
|
||||||
ret = clk_prepare_enable(afe_priv->base_ck[MT2701_AUDSYS_A1SYS]);
|
ret = clk_prepare_enable(afe_priv->base_ck[MT2701_AUDSYS_A1SYS]);
|
||||||
if (ret)
|
if (ret)
|
||||||
goto err_audio_a1sys;
|
goto err_audio_a1sys;
|
||||||
@@ -193,6 +212,12 @@ static int mt2701_afe_enable_audsys(struct mtk_base_afe *afe)
|
@@ -193,6 +212,12 @@ err_audio_a2sys:
|
||||||
clk_disable_unprepare(afe_priv->base_ck[MT2701_AUDSYS_A1SYS]);
|
clk_disable_unprepare(afe_priv->base_ck[MT2701_AUDSYS_A1SYS]);
|
||||||
err_audio_a1sys:
|
err_audio_a1sys:
|
||||||
clk_disable_unprepare(afe_priv->base_ck[MT2701_AUDSYS_AFE]);
|
clk_disable_unprepare(afe_priv->base_ck[MT2701_AUDSYS_AFE]);
|
||||||
|
@ -69,7 +67,7 @@ index 56a057c78c9a..949fc3a1d025 100644
|
||||||
|
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
@@ -205,6 +230,9 @@ static void mt2701_afe_disable_audsys(struct mtk_base_afe *afe)
|
@@ -205,6 +230,9 @@ static void mt2701_afe_disable_audsys(st
|
||||||
clk_disable_unprepare(afe_priv->base_ck[MT2701_AUDSYS_A2SYS]);
|
clk_disable_unprepare(afe_priv->base_ck[MT2701_AUDSYS_A2SYS]);
|
||||||
clk_disable_unprepare(afe_priv->base_ck[MT2701_AUDSYS_A1SYS]);
|
clk_disable_unprepare(afe_priv->base_ck[MT2701_AUDSYS_A1SYS]);
|
||||||
clk_disable_unprepare(afe_priv->base_ck[MT2701_AUDSYS_AFE]);
|
clk_disable_unprepare(afe_priv->base_ck[MT2701_AUDSYS_AFE]);
|
||||||
|
@ -79,8 +77,6 @@ index 56a057c78c9a..949fc3a1d025 100644
|
||||||
}
|
}
|
||||||
|
|
||||||
int mt2701_afe_enable_clock(struct mtk_base_afe *afe)
|
int mt2701_afe_enable_clock(struct mtk_base_afe *afe)
|
||||||
diff --git a/sound/soc/mediatek/mt2701/mt2701-afe-common.h b/sound/soc/mediatek/mt2701/mt2701-afe-common.h
|
|
||||||
index 9a2b301a4c21..ae8ddeacfbfe 100644
|
|
||||||
--- a/sound/soc/mediatek/mt2701/mt2701-afe-common.h
|
--- a/sound/soc/mediatek/mt2701/mt2701-afe-common.h
|
||||||
+++ b/sound/soc/mediatek/mt2701/mt2701-afe-common.h
|
+++ b/sound/soc/mediatek/mt2701/mt2701-afe-common.h
|
||||||
@@ -61,8 +61,11 @@ enum {
|
@@ -61,8 +61,11 @@ enum {
|
||||||
|
@ -95,6 +91,3 @@ index 9a2b301a4c21..ae8ddeacfbfe 100644
|
||||||
MT2701_AUDSYS_AFE,
|
MT2701_AUDSYS_AFE,
|
||||||
MT2701_AUDSYS_AFE_CONN,
|
MT2701_AUDSYS_AFE_CONN,
|
||||||
MT2701_AUDSYS_A1SYS,
|
MT2701_AUDSYS_A1SYS,
|
||||||
--
|
|
||||||
2.11.0
|
|
||||||
|
|
||||||
|
|
|
@ -13,8 +13,6 @@ Signed-off-by: Mark Brown <broonie@kernel.org>
|
||||||
sound/soc/mediatek/mt2701/mt2701-reg.h | 1 -
|
sound/soc/mediatek/mt2701/mt2701-reg.h | 1 -
|
||||||
2 files changed, 20 insertions(+), 26 deletions(-)
|
2 files changed, 20 insertions(+), 26 deletions(-)
|
||||||
|
|
||||||
diff --git a/sound/soc/mediatek/mt2701/mt2701-afe-pcm.c b/sound/soc/mediatek/mt2701/mt2701-afe-pcm.c
|
|
||||||
index 0edadca12a5e..f0cd08fa5c5d 100644
|
|
||||||
--- a/sound/soc/mediatek/mt2701/mt2701-afe-pcm.c
|
--- a/sound/soc/mediatek/mt2701/mt2701-afe-pcm.c
|
||||||
+++ b/sound/soc/mediatek/mt2701/mt2701-afe-pcm.c
|
+++ b/sound/soc/mediatek/mt2701/mt2701-afe-pcm.c
|
||||||
@@ -17,6 +17,7 @@
|
@@ -17,6 +17,7 @@
|
||||||
|
@ -25,7 +23,7 @@ index 0edadca12a5e..f0cd08fa5c5d 100644
|
||||||
#include <linux/of.h>
|
#include <linux/of.h>
|
||||||
#include <linux/of_address.h>
|
#include <linux/of_address.h>
|
||||||
#include <linux/pm_runtime.h>
|
#include <linux/pm_runtime.h>
|
||||||
@@ -1368,14 +1369,6 @@ static const struct mt2701_i2s_data mt2701_i2s_data[MT2701_I2S_NUM][2] = {
|
@@ -1368,14 +1369,6 @@ static const struct mt2701_i2s_data mt27
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -40,7 +38,7 @@ index 0edadca12a5e..f0cd08fa5c5d 100644
|
||||||
static irqreturn_t mt2701_asys_isr(int irq_id, void *dev)
|
static irqreturn_t mt2701_asys_isr(int irq_id, void *dev)
|
||||||
{
|
{
|
||||||
int id;
|
int id;
|
||||||
@@ -1414,9 +1407,9 @@ static int mt2701_afe_runtime_resume(struct device *dev)
|
@@ -1414,9 +1407,9 @@ static int mt2701_afe_runtime_resume(str
|
||||||
|
|
||||||
static int mt2701_afe_pcm_dev_probe(struct platform_device *pdev)
|
static int mt2701_afe_pcm_dev_probe(struct platform_device *pdev)
|
||||||
{
|
{
|
||||||
|
@ -51,7 +49,7 @@ index 0edadca12a5e..f0cd08fa5c5d 100644
|
||||||
struct device *dev;
|
struct device *dev;
|
||||||
int i, irq_id, ret;
|
int i, irq_id, ret;
|
||||||
|
|
||||||
@@ -1446,17 +1439,11 @@ static int mt2701_afe_pcm_dev_probe(struct platform_device *pdev)
|
@@ -1446,17 +1439,11 @@ static int mt2701_afe_pcm_dev_probe(stru
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -74,7 +72,7 @@ index 0edadca12a5e..f0cd08fa5c5d 100644
|
||||||
|
|
||||||
mutex_init(&afe->irq_alloc_lock);
|
mutex_init(&afe->irq_alloc_lock);
|
||||||
|
|
||||||
@@ -1490,6 +1477,12 @@ static int mt2701_afe_pcm_dev_probe(struct platform_device *pdev)
|
@@ -1490,6 +1477,12 @@ static int mt2701_afe_pcm_dev_probe(stru
|
||||||
= &mt2701_i2s_data[i][I2S_IN];
|
= &mt2701_i2s_data[i][I2S_IN];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -87,7 +85,7 @@ index 0edadca12a5e..f0cd08fa5c5d 100644
|
||||||
afe->mtk_afe_hardware = &mt2701_afe_hardware;
|
afe->mtk_afe_hardware = &mt2701_afe_hardware;
|
||||||
afe->memif_fs = mt2701_memif_fs;
|
afe->memif_fs = mt2701_memif_fs;
|
||||||
afe->irq_fs = mt2701_irq_fs;
|
afe->irq_fs = mt2701_irq_fs;
|
||||||
@@ -1502,7 +1495,7 @@ static int mt2701_afe_pcm_dev_probe(struct platform_device *pdev)
|
@@ -1502,7 +1495,7 @@ static int mt2701_afe_pcm_dev_probe(stru
|
||||||
ret = mt2701_init_clock(afe);
|
ret = mt2701_init_clock(afe);
|
||||||
if (ret) {
|
if (ret) {
|
||||||
dev_err(dev, "init clock error\n");
|
dev_err(dev, "init clock error\n");
|
||||||
|
@ -96,7 +94,7 @@ index 0edadca12a5e..f0cd08fa5c5d 100644
|
||||||
}
|
}
|
||||||
|
|
||||||
platform_set_drvdata(pdev, afe);
|
platform_set_drvdata(pdev, afe);
|
||||||
@@ -1521,10 +1514,10 @@ static int mt2701_afe_pcm_dev_probe(struct platform_device *pdev)
|
@@ -1521,10 +1514,10 @@ static int mt2701_afe_pcm_dev_probe(stru
|
||||||
goto err_platform;
|
goto err_platform;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -111,7 +109,7 @@ index 0edadca12a5e..f0cd08fa5c5d 100644
|
||||||
if (ret) {
|
if (ret) {
|
||||||
dev_warn(dev, "err_dai_component\n");
|
dev_warn(dev, "err_dai_component\n");
|
||||||
goto err_dai_component;
|
goto err_dai_component;
|
||||||
@@ -1538,6 +1531,8 @@ static int mt2701_afe_pcm_dev_probe(struct platform_device *pdev)
|
@@ -1538,6 +1531,8 @@ err_platform:
|
||||||
pm_runtime_put_sync(dev);
|
pm_runtime_put_sync(dev);
|
||||||
err_pm_disable:
|
err_pm_disable:
|
||||||
pm_runtime_disable(dev);
|
pm_runtime_disable(dev);
|
||||||
|
@ -120,8 +118,6 @@ index 0edadca12a5e..f0cd08fa5c5d 100644
|
||||||
|
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
diff --git a/sound/soc/mediatek/mt2701/mt2701-reg.h b/sound/soc/mediatek/mt2701/mt2701-reg.h
|
|
||||||
index f17c76f37b5f..18e676974f22 100644
|
|
||||||
--- a/sound/soc/mediatek/mt2701/mt2701-reg.h
|
--- a/sound/soc/mediatek/mt2701/mt2701-reg.h
|
||||||
+++ b/sound/soc/mediatek/mt2701/mt2701-reg.h
|
+++ b/sound/soc/mediatek/mt2701/mt2701-reg.h
|
||||||
@@ -145,5 +145,4 @@
|
@@ -145,5 +145,4 @@
|
||||||
|
@ -130,6 +126,3 @@ index f17c76f37b5f..18e676974f22 100644
|
||||||
|
|
||||||
-#define AFE_END_ADDR 0x15e0
|
-#define AFE_END_ADDR 0x15e0
|
||||||
#endif
|
#endif
|
||||||
--
|
|
||||||
2.11.0
|
|
||||||
|
|
||||||
|
|
|
@ -13,8 +13,6 @@ Signed-off-by: Mark Brown <broonie@kernel.org>
|
||||||
.../devicetree/bindings/sound/mt2701-afe-pcm.txt | 171 +++++++++++----------
|
.../devicetree/bindings/sound/mt2701-afe-pcm.txt | 171 +++++++++++----------
|
||||||
1 file changed, 93 insertions(+), 78 deletions(-)
|
1 file changed, 93 insertions(+), 78 deletions(-)
|
||||||
|
|
||||||
diff --git a/Documentation/devicetree/bindings/sound/mt2701-afe-pcm.txt b/Documentation/devicetree/bindings/sound/mt2701-afe-pcm.txt
|
|
||||||
index 0450baad2813..6df87b97f7cb 100644
|
|
||||||
--- a/Documentation/devicetree/bindings/sound/mt2701-afe-pcm.txt
|
--- a/Documentation/devicetree/bindings/sound/mt2701-afe-pcm.txt
|
||||||
+++ b/Documentation/devicetree/bindings/sound/mt2701-afe-pcm.txt
|
+++ b/Documentation/devicetree/bindings/sound/mt2701-afe-pcm.txt
|
||||||
@@ -2,15 +2,17 @@ Mediatek AFE PCM controller for mt2701
|
@@ -2,15 +2,17 @@ Mediatek AFE PCM controller for mt2701
|
||||||
|
@ -84,6 +82,46 @@ index 0450baad2813..6df87b97f7cb 100644
|
||||||
- <&audiosys CLK_AUD_A1SYS>,
|
- <&audiosys CLK_AUD_A1SYS>,
|
||||||
- <&audiosys CLK_AUD_A2SYS>,
|
- <&audiosys CLK_AUD_A2SYS>,
|
||||||
- <&audiosys CLK_AUD_AFE_MRGIF>;
|
- <&audiosys CLK_AUD_AFE_MRGIF>;
|
||||||
|
-
|
||||||
|
- clock-names = "top_audio_mux1_sel",
|
||||||
|
- "top_audio_mux2_sel",
|
||||||
|
- "i2s0_src_sel",
|
||||||
|
- "i2s1_src_sel",
|
||||||
|
- "i2s2_src_sel",
|
||||||
|
- "i2s3_src_sel",
|
||||||
|
- "i2s0_src_div",
|
||||||
|
- "i2s1_src_div",
|
||||||
|
- "i2s2_src_div",
|
||||||
|
- "i2s3_src_div",
|
||||||
|
- "i2s0_mclk_en",
|
||||||
|
- "i2s1_mclk_en",
|
||||||
|
- "i2s2_mclk_en",
|
||||||
|
- "i2s3_mclk_en",
|
||||||
|
- "i2so0_hop_ck",
|
||||||
|
- "i2so1_hop_ck",
|
||||||
|
- "i2so2_hop_ck",
|
||||||
|
- "i2so3_hop_ck",
|
||||||
|
- "i2si0_hop_ck",
|
||||||
|
- "i2si1_hop_ck",
|
||||||
|
- "i2si2_hop_ck",
|
||||||
|
- "i2si3_hop_ck",
|
||||||
|
- "asrc0_out_ck",
|
||||||
|
- "asrc1_out_ck",
|
||||||
|
- "asrc2_out_ck",
|
||||||
|
- "asrc3_out_ck",
|
||||||
|
- "audio_afe_pd",
|
||||||
|
- "audio_afe_conn_pd",
|
||||||
|
- "audio_a1sys_pd",
|
||||||
|
- "audio_a2sys_pd",
|
||||||
|
- "audio_mrgif_pd";
|
||||||
|
-
|
||||||
|
- assigned-clocks = <&topckgen CLK_TOP_AUD_MUX1_SEL>,
|
||||||
|
- <&topckgen CLK_TOP_AUD_MUX2_SEL>,
|
||||||
|
- <&topckgen CLK_TOP_AUD_MUX1_DIV>,
|
||||||
|
- <&topckgen CLK_TOP_AUD_MUX2_DIV>;
|
||||||
|
- assigned-clock-parents = <&topckgen CLK_TOP_AUD1PLL_98M>,
|
||||||
|
- <&topckgen CLK_TOP_AUD2PLL_90M>;
|
||||||
|
- assigned-clock-rates = <0>, <0>, <49152000>, <45158400>;
|
||||||
+ audsys: audio-subsystem@11220000 {
|
+ audsys: audio-subsystem@11220000 {
|
||||||
+ compatible = "mediatek,mt2701-audsys", "syscon", "simple-mfd";
|
+ compatible = "mediatek,mt2701-audsys", "syscon", "simple-mfd";
|
||||||
+ ...
|
+ ...
|
||||||
|
@ -129,38 +167,7 @@ index 0450baad2813..6df87b97f7cb 100644
|
||||||
+ <&audsys CLK_AUD_A1SYS>,
|
+ <&audsys CLK_AUD_A1SYS>,
|
||||||
+ <&audsys CLK_AUD_A2SYS>,
|
+ <&audsys CLK_AUD_A2SYS>,
|
||||||
+ <&audsys CLK_AUD_AFE_MRGIF>;
|
+ <&audsys CLK_AUD_AFE_MRGIF>;
|
||||||
|
+
|
||||||
- clock-names = "top_audio_mux1_sel",
|
|
||||||
- "top_audio_mux2_sel",
|
|
||||||
- "i2s0_src_sel",
|
|
||||||
- "i2s1_src_sel",
|
|
||||||
- "i2s2_src_sel",
|
|
||||||
- "i2s3_src_sel",
|
|
||||||
- "i2s0_src_div",
|
|
||||||
- "i2s1_src_div",
|
|
||||||
- "i2s2_src_div",
|
|
||||||
- "i2s3_src_div",
|
|
||||||
- "i2s0_mclk_en",
|
|
||||||
- "i2s1_mclk_en",
|
|
||||||
- "i2s2_mclk_en",
|
|
||||||
- "i2s3_mclk_en",
|
|
||||||
- "i2so0_hop_ck",
|
|
||||||
- "i2so1_hop_ck",
|
|
||||||
- "i2so2_hop_ck",
|
|
||||||
- "i2so3_hop_ck",
|
|
||||||
- "i2si0_hop_ck",
|
|
||||||
- "i2si1_hop_ck",
|
|
||||||
- "i2si2_hop_ck",
|
|
||||||
- "i2si3_hop_ck",
|
|
||||||
- "asrc0_out_ck",
|
|
||||||
- "asrc1_out_ck",
|
|
||||||
- "asrc2_out_ck",
|
|
||||||
- "asrc3_out_ck",
|
|
||||||
- "audio_afe_pd",
|
|
||||||
- "audio_afe_conn_pd",
|
|
||||||
- "audio_a1sys_pd",
|
|
||||||
- "audio_a2sys_pd",
|
|
||||||
- "audio_mrgif_pd";
|
|
||||||
+ clock-names = "infra_sys_audio_clk",
|
+ clock-names = "infra_sys_audio_clk",
|
||||||
+ "top_audio_mux1_sel",
|
+ "top_audio_mux1_sel",
|
||||||
+ "top_audio_mux2_sel",
|
+ "top_audio_mux2_sel",
|
||||||
|
@ -195,14 +202,7 @@ index 0450baad2813..6df87b97f7cb 100644
|
||||||
+ "audio_a1sys_pd",
|
+ "audio_a1sys_pd",
|
||||||
+ "audio_a2sys_pd",
|
+ "audio_a2sys_pd",
|
||||||
+ "audio_mrgif_pd";
|
+ "audio_mrgif_pd";
|
||||||
|
+
|
||||||
- assigned-clocks = <&topckgen CLK_TOP_AUD_MUX1_SEL>,
|
|
||||||
- <&topckgen CLK_TOP_AUD_MUX2_SEL>,
|
|
||||||
- <&topckgen CLK_TOP_AUD_MUX1_DIV>,
|
|
||||||
- <&topckgen CLK_TOP_AUD_MUX2_DIV>;
|
|
||||||
- assigned-clock-parents = <&topckgen CLK_TOP_AUD1PLL_98M>,
|
|
||||||
- <&topckgen CLK_TOP_AUD2PLL_90M>;
|
|
||||||
- assigned-clock-rates = <0>, <0>, <49152000>, <45158400>;
|
|
||||||
+ assigned-clocks = <&topckgen CLK_TOP_AUD_MUX1_SEL>,
|
+ assigned-clocks = <&topckgen CLK_TOP_AUD_MUX1_SEL>,
|
||||||
+ <&topckgen CLK_TOP_AUD_MUX2_SEL>,
|
+ <&topckgen CLK_TOP_AUD_MUX2_SEL>,
|
||||||
+ <&topckgen CLK_TOP_AUD_MUX1_DIV>,
|
+ <&topckgen CLK_TOP_AUD_MUX1_DIV>,
|
||||||
|
@ -212,6 +212,3 @@ index 0450baad2813..6df87b97f7cb 100644
|
||||||
+ assigned-clock-rates = <0>, <0>, <49152000>, <45158400>;
|
+ assigned-clock-rates = <0>, <0>, <49152000>, <45158400>;
|
||||||
+ };
|
+ };
|
||||||
};
|
};
|
||||||
--
|
|
||||||
2.11.0
|
|
||||||
|
|
||||||
|
|
|
@ -13,11 +13,9 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
|
||||||
drivers/usb/mtu3/mtu3_plat.c | 2 +-
|
drivers/usb/mtu3/mtu3_plat.c | 2 +-
|
||||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||||
|
|
||||||
diff --git a/drivers/usb/mtu3/mtu3_plat.c b/drivers/usb/mtu3/mtu3_plat.c
|
|
||||||
index 9ff33579b42e..a2523ead46cf 100644
|
|
||||||
--- a/drivers/usb/mtu3/mtu3_plat.c
|
--- a/drivers/usb/mtu3/mtu3_plat.c
|
||||||
+++ b/drivers/usb/mtu3/mtu3_plat.c
|
+++ b/drivers/usb/mtu3/mtu3_plat.c
|
||||||
@@ -317,7 +317,7 @@ static int get_ssusb_rscs(struct platform_device *pdev, struct ssusb_mtk *ssusb)
|
@@ -317,7 +317,7 @@ static int get_ssusb_rscs(struct platfor
|
||||||
otg_sx->edev = extcon_get_edev_by_phandle(ssusb->dev, 0);
|
otg_sx->edev = extcon_get_edev_by_phandle(ssusb->dev, 0);
|
||||||
if (IS_ERR(otg_sx->edev)) {
|
if (IS_ERR(otg_sx->edev)) {
|
||||||
dev_err(ssusb->dev, "couldn't get extcon device\n");
|
dev_err(ssusb->dev, "couldn't get extcon device\n");
|
||||||
|
@ -26,6 +24,3 @@ index 9ff33579b42e..a2523ead46cf 100644
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
--
|
|
||||||
2.11.0
|
|
||||||
|
|
||||||
|
|
|
@ -18,8 +18,6 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
|
||||||
drivers/usb/mtu3/mtu3_plat.c | 8 +--
|
drivers/usb/mtu3/mtu3_plat.c | 8 +--
|
||||||
4 files changed, 70 insertions(+), 67 deletions(-)
|
4 files changed, 70 insertions(+), 67 deletions(-)
|
||||||
|
|
||||||
diff --git a/drivers/usb/mtu3/mtu3.h b/drivers/usb/mtu3/mtu3.h
|
|
||||||
index d80e4e813248..ed3aec46eda1 100644
|
|
||||||
--- a/drivers/usb/mtu3/mtu3.h
|
--- a/drivers/usb/mtu3/mtu3.h
|
||||||
+++ b/drivers/usb/mtu3/mtu3.h
|
+++ b/drivers/usb/mtu3/mtu3.h
|
||||||
@@ -238,7 +238,10 @@ struct otg_switch_mtk {
|
@@ -238,7 +238,10 @@ struct otg_switch_mtk {
|
||||||
|
@ -47,11 +45,9 @@ index d80e4e813248..ed3aec46eda1 100644
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
diff --git a/drivers/usb/mtu3/mtu3_dr.h b/drivers/usb/mtu3/mtu3_dr.h
|
|
||||||
index 0f0cbac00192..1fa62ce136b6 100644
|
|
||||||
--- a/drivers/usb/mtu3/mtu3_dr.h
|
--- a/drivers/usb/mtu3/mtu3_dr.h
|
||||||
+++ b/drivers/usb/mtu3/mtu3_dr.h
|
+++ b/drivers/usb/mtu3/mtu3_dr.h
|
||||||
@@ -27,8 +27,7 @@ int ssusb_wakeup_of_property_parse(struct ssusb_mtk *ssusb,
|
@@ -27,8 +27,7 @@ int ssusb_wakeup_of_property_parse(struc
|
||||||
struct device_node *dn);
|
struct device_node *dn);
|
||||||
int ssusb_host_enable(struct ssusb_mtk *ssusb);
|
int ssusb_host_enable(struct ssusb_mtk *ssusb);
|
||||||
int ssusb_host_disable(struct ssusb_mtk *ssusb, bool suspend);
|
int ssusb_host_disable(struct ssusb_mtk *ssusb, bool suspend);
|
||||||
|
@ -61,8 +57,6 @@ index 0f0cbac00192..1fa62ce136b6 100644
|
||||||
|
|
||||||
#else
|
#else
|
||||||
|
|
||||||
diff --git a/drivers/usb/mtu3/mtu3_host.c b/drivers/usb/mtu3/mtu3_host.c
|
|
||||||
index ec76b86dd887..1a1b6cf432a1 100644
|
|
||||||
--- a/drivers/usb/mtu3/mtu3_host.c
|
--- a/drivers/usb/mtu3/mtu3_host.c
|
||||||
+++ b/drivers/usb/mtu3/mtu3_host.c
|
+++ b/drivers/usb/mtu3/mtu3_host.c
|
||||||
@@ -27,66 +27,77 @@
|
@@ -27,66 +27,77 @@
|
||||||
|
@ -101,7 +95,8 @@ index ec76b86dd887..1a1b6cf432a1 100644
|
||||||
{
|
{
|
||||||
- u32 tmp;
|
- u32 tmp;
|
||||||
- struct regmap *pericfg = ssusb->pericfg;
|
- struct regmap *pericfg = ssusb->pericfg;
|
||||||
-
|
+ u32 reg, msk, val;
|
||||||
|
|
||||||
- regmap_read(pericfg, PERI_WK_CTRL1, &tmp);
|
- regmap_read(pericfg, PERI_WK_CTRL1, &tmp);
|
||||||
- tmp &= ~UWK_CTL1_IS_P;
|
- tmp &= ~UWK_CTL1_IS_P;
|
||||||
- tmp &= ~(UWK_CTL1_IS_C(0xf));
|
- tmp &= ~(UWK_CTL1_IS_C(0xf));
|
||||||
|
@ -121,8 +116,6 @@ index ec76b86dd887..1a1b6cf432a1 100644
|
||||||
- regmap_read(ssusb->pericfg, PERI_WK_CTRL1, &tmp);
|
- regmap_read(ssusb->pericfg, PERI_WK_CTRL1, &tmp);
|
||||||
- tmp &= ~UWK_CTL1_IS_E;
|
- tmp &= ~UWK_CTL1_IS_E;
|
||||||
- regmap_write(ssusb->pericfg, PERI_WK_CTRL1, tmp);
|
- regmap_write(ssusb->pericfg, PERI_WK_CTRL1, tmp);
|
||||||
+ u32 reg, msk, val;
|
|
||||||
+
|
|
||||||
+ switch (ssusb->uwk_vers) {
|
+ switch (ssusb->uwk_vers) {
|
||||||
+ case SSUSB_UWK_V1:
|
+ case SSUSB_UWK_V1:
|
||||||
+ reg = ssusb->uwk_reg_base + PERI_WK_CTRL1;
|
+ reg = ssusb->uwk_reg_base + PERI_WK_CTRL1;
|
||||||
|
@ -188,7 +181,7 @@ index ec76b86dd887..1a1b6cf432a1 100644
|
||||||
}
|
}
|
||||||
|
|
||||||
static void host_ports_num_get(struct ssusb_mtk *ssusb)
|
static void host_ports_num_get(struct ssusb_mtk *ssusb)
|
||||||
@@ -244,17 +255,3 @@ void ssusb_host_exit(struct ssusb_mtk *ssusb)
|
@@ -244,17 +255,3 @@ void ssusb_host_exit(struct ssusb_mtk *s
|
||||||
of_platform_depopulate(ssusb->dev);
|
of_platform_depopulate(ssusb->dev);
|
||||||
ssusb_host_cleanup(ssusb);
|
ssusb_host_cleanup(ssusb);
|
||||||
}
|
}
|
||||||
|
@ -206,11 +199,9 @@ index ec76b86dd887..1a1b6cf432a1 100644
|
||||||
- if (ssusb->wakeup_en)
|
- if (ssusb->wakeup_en)
|
||||||
- ssusb_wakeup_ip_sleep_dis(ssusb);
|
- ssusb_wakeup_ip_sleep_dis(ssusb);
|
||||||
-}
|
-}
|
||||||
diff --git a/drivers/usb/mtu3/mtu3_plat.c b/drivers/usb/mtu3/mtu3_plat.c
|
|
||||||
index a2523ead46cf..4cafd4ca8457 100644
|
|
||||||
--- a/drivers/usb/mtu3/mtu3_plat.c
|
--- a/drivers/usb/mtu3/mtu3_plat.c
|
||||||
+++ b/drivers/usb/mtu3/mtu3_plat.c
|
+++ b/drivers/usb/mtu3/mtu3_plat.c
|
||||||
@@ -291,8 +291,10 @@ static int get_ssusb_rscs(struct platform_device *pdev, struct ssusb_mtk *ssusb)
|
@@ -291,8 +291,10 @@ static int get_ssusb_rscs(struct platfor
|
||||||
|
|
||||||
/* if host role is supported */
|
/* if host role is supported */
|
||||||
ret = ssusb_wakeup_of_property_parse(ssusb, node);
|
ret = ssusb_wakeup_of_property_parse(ssusb, node);
|
||||||
|
@ -222,7 +213,7 @@ index a2523ead46cf..4cafd4ca8457 100644
|
||||||
|
|
||||||
/* optional property, ignore the error if it does not exist */
|
/* optional property, ignore the error if it does not exist */
|
||||||
of_property_read_u32(node, "mediatek,u3p-dis-msk",
|
of_property_read_u32(node, "mediatek,u3p-dis-msk",
|
||||||
@@ -466,7 +468,7 @@ static int __maybe_unused mtu3_suspend(struct device *dev)
|
@@ -466,7 +468,7 @@ static int __maybe_unused mtu3_suspend(s
|
||||||
ssusb_host_disable(ssusb, true);
|
ssusb_host_disable(ssusb, true);
|
||||||
ssusb_phy_power_off(ssusb);
|
ssusb_phy_power_off(ssusb);
|
||||||
ssusb_clks_disable(ssusb);
|
ssusb_clks_disable(ssusb);
|
||||||
|
@ -231,7 +222,7 @@ index a2523ead46cf..4cafd4ca8457 100644
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
@@ -482,7 +484,7 @@ static int __maybe_unused mtu3_resume(struct device *dev)
|
@@ -482,7 +484,7 @@ static int __maybe_unused mtu3_resume(st
|
||||||
if (!ssusb->is_host)
|
if (!ssusb->is_host)
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
|
@ -240,6 +231,3 @@ index a2523ead46cf..4cafd4ca8457 100644
|
||||||
ret = ssusb_clks_enable(ssusb);
|
ret = ssusb_clks_enable(ssusb);
|
||||||
if (ret)
|
if (ret)
|
||||||
goto clks_err;
|
goto clks_err;
|
||||||
--
|
|
||||||
2.11.0
|
|
||||||
|
|
||||||
|
|
|
@ -14,8 +14,6 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
|
||||||
Documentation/devicetree/bindings/usb/mediatek,mtu3.txt | 15 ++++++++++-----
|
Documentation/devicetree/bindings/usb/mediatek,mtu3.txt | 15 ++++++++++-----
|
||||||
1 file changed, 10 insertions(+), 5 deletions(-)
|
1 file changed, 10 insertions(+), 5 deletions(-)
|
||||||
|
|
||||||
diff --git a/Documentation/devicetree/bindings/usb/mediatek,mtu3.txt b/Documentation/devicetree/bindings/usb/mediatek,mtu3.txt
|
|
||||||
index b2271d8e6b50..d589a1ef96a1 100644
|
|
||||||
--- a/Documentation/devicetree/bindings/usb/mediatek,mtu3.txt
|
--- a/Documentation/devicetree/bindings/usb/mediatek,mtu3.txt
|
||||||
+++ b/Documentation/devicetree/bindings/usb/mediatek,mtu3.txt
|
+++ b/Documentation/devicetree/bindings/usb/mediatek,mtu3.txt
|
||||||
@@ -42,9 +42,14 @@ Optional properties:
|
@@ -42,9 +42,14 @@ Optional properties:
|
||||||
|
@ -47,6 +45,3 @@ index b2271d8e6b50..d589a1ef96a1 100644
|
||||||
#address-cells = <2>;
|
#address-cells = <2>;
|
||||||
#size-cells = <2>;
|
#size-cells = <2>;
|
||||||
ranges;
|
ranges;
|
||||||
--
|
|
||||||
2.11.0
|
|
||||||
|
|
||||||
|
|
|
@ -21,8 +21,6 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
|
||||||
drivers/usb/host/xhci-mtk.h | 6 +-
|
drivers/usb/host/xhci-mtk.h | 6 +-
|
||||||
2 files changed, 65 insertions(+), 118 deletions(-)
|
2 files changed, 65 insertions(+), 118 deletions(-)
|
||||||
|
|
||||||
diff --git a/drivers/usb/host/xhci-mtk.c b/drivers/usb/host/xhci-mtk.c
|
|
||||||
index e5caabe7eebe..8e51b3fec386 100644
|
|
||||||
--- a/drivers/usb/host/xhci-mtk.c
|
--- a/drivers/usb/host/xhci-mtk.c
|
||||||
+++ b/drivers/usb/host/xhci-mtk.c
|
+++ b/drivers/usb/host/xhci-mtk.c
|
||||||
@@ -66,26 +66,21 @@
|
@@ -66,26 +66,21 @@
|
||||||
|
@ -67,7 +65,7 @@ index e5caabe7eebe..8e51b3fec386 100644
|
||||||
};
|
};
|
||||||
|
|
||||||
static int xhci_mtk_host_enable(struct xhci_hcd_mtk *mtk)
|
static int xhci_mtk_host_enable(struct xhci_hcd_mtk *mtk)
|
||||||
@@ -308,112 +303,58 @@ static void xhci_mtk_clks_disable(struct xhci_hcd_mtk *mtk)
|
@@ -308,112 +303,58 @@ static void xhci_mtk_clks_disable(struct
|
||||||
}
|
}
|
||||||
|
|
||||||
/* only clocks can be turn off for ip-sleep wakeup mode */
|
/* only clocks can be turn off for ip-sleep wakeup mode */
|
||||||
|
@ -76,7 +74,8 @@ index e5caabe7eebe..8e51b3fec386 100644
|
||||||
{
|
{
|
||||||
- u32 tmp;
|
- u32 tmp;
|
||||||
- struct regmap *pericfg = mtk->pericfg;
|
- struct regmap *pericfg = mtk->pericfg;
|
||||||
-
|
+ u32 reg, msk, val;
|
||||||
|
|
||||||
- regmap_read(pericfg, PERI_WK_CTRL1, &tmp);
|
- regmap_read(pericfg, PERI_WK_CTRL1, &tmp);
|
||||||
- tmp &= ~UWK_CTL1_IS_P;
|
- tmp &= ~UWK_CTL1_IS_P;
|
||||||
- tmp &= ~(UWK_CTL1_IS_C(0xf));
|
- tmp &= ~(UWK_CTL1_IS_C(0xf));
|
||||||
|
@ -87,8 +86,15 @@ index e5caabe7eebe..8e51b3fec386 100644
|
||||||
- regmap_read(pericfg, PERI_WK_CTRL1, &tmp);
|
- regmap_read(pericfg, PERI_WK_CTRL1, &tmp);
|
||||||
- dev_dbg(mtk->dev, "%s(): WK_CTRL1[P6,E25,C26:29]=%#x\n",
|
- dev_dbg(mtk->dev, "%s(): WK_CTRL1[P6,E25,C26:29]=%#x\n",
|
||||||
- __func__, tmp);
|
- __func__, tmp);
|
||||||
+ u32 reg, msk, val;
|
-}
|
||||||
+
|
-
|
||||||
|
-static void usb_wakeup_ip_sleep_dis(struct xhci_hcd_mtk *mtk)
|
||||||
|
-{
|
||||||
|
- u32 tmp;
|
||||||
|
-
|
||||||
|
- regmap_read(mtk->pericfg, PERI_WK_CTRL1, &tmp);
|
||||||
|
- tmp &= ~UWK_CTL1_IS_E;
|
||||||
|
- regmap_write(mtk->pericfg, PERI_WK_CTRL1, tmp);
|
||||||
+ switch (mtk->uwk_vers) {
|
+ switch (mtk->uwk_vers) {
|
||||||
+ case SSUSB_UWK_V1:
|
+ case SSUSB_UWK_V1:
|
||||||
+ reg = mtk->uwk_reg_base + PERI_WK_CTRL1;
|
+ reg = mtk->uwk_reg_base + PERI_WK_CTRL1;
|
||||||
|
@ -106,29 +112,14 @@ index e5caabe7eebe..8e51b3fec386 100644
|
||||||
+ regmap_update_bits(mtk->uwk, reg, msk, val);
|
+ regmap_update_bits(mtk->uwk, reg, msk, val);
|
||||||
}
|
}
|
||||||
|
|
||||||
-static void usb_wakeup_ip_sleep_dis(struct xhci_hcd_mtk *mtk)
|
|
||||||
+static int usb_wakeup_of_property_parse(struct xhci_hcd_mtk *mtk,
|
|
||||||
+ struct device_node *dn)
|
|
||||||
{
|
|
||||||
- u32 tmp;
|
|
||||||
+ struct of_phandle_args args;
|
|
||||||
+ int ret;
|
|
||||||
|
|
||||||
- regmap_read(mtk->pericfg, PERI_WK_CTRL1, &tmp);
|
|
||||||
- tmp &= ~UWK_CTL1_IS_E;
|
|
||||||
- regmap_write(mtk->pericfg, PERI_WK_CTRL1, tmp);
|
|
||||||
-}
|
|
||||||
+ /* Wakeup function is optional */
|
|
||||||
+ mtk->uwk_en = of_property_read_bool(dn, "wakeup-source");
|
|
||||||
+ if (!mtk->uwk_en)
|
|
||||||
+ return 0;
|
|
||||||
|
|
||||||
-/*
|
-/*
|
||||||
-* for line-state wakeup mode, phy's power should not power-down
|
-* for line-state wakeup mode, phy's power should not power-down
|
||||||
-* and only support cable plug in/out
|
-* and only support cable plug in/out
|
||||||
-*/
|
-*/
|
||||||
-static void usb_wakeup_line_state_en(struct xhci_hcd_mtk *mtk)
|
-static void usb_wakeup_line_state_en(struct xhci_hcd_mtk *mtk)
|
||||||
-{
|
+static int usb_wakeup_of_property_parse(struct xhci_hcd_mtk *mtk,
|
||||||
|
+ struct device_node *dn)
|
||||||
|
{
|
||||||
- u32 tmp;
|
- u32 tmp;
|
||||||
- struct regmap *pericfg = mtk->pericfg;
|
- struct regmap *pericfg = mtk->pericfg;
|
||||||
-
|
-
|
||||||
|
@ -140,7 +131,9 @@ index e5caabe7eebe..8e51b3fec386 100644
|
||||||
- regmap_write(pericfg, PERI_WK_CTRL1, tmp);
|
- regmap_write(pericfg, PERI_WK_CTRL1, tmp);
|
||||||
- regmap_read(pericfg, PERI_WK_CTRL1, &tmp);
|
- regmap_read(pericfg, PERI_WK_CTRL1, &tmp);
|
||||||
- regmap_write(pericfg, PERI_WK_CTRL1, tmp | UWK_CTL1_0P_LS_E);
|
- regmap_write(pericfg, PERI_WK_CTRL1, tmp | UWK_CTL1_0P_LS_E);
|
||||||
-
|
+ struct of_phandle_args args;
|
||||||
|
+ int ret;
|
||||||
|
|
||||||
- /* line-state of u2-port1 */
|
- /* line-state of u2-port1 */
|
||||||
- regmap_read(pericfg, PERI_WK_CTRL0, &tmp);
|
- regmap_read(pericfg, PERI_WK_CTRL0, &tmp);
|
||||||
- tmp &= ~(UWK_CTL1_1P_LS_C(0xf));
|
- tmp &= ~(UWK_CTL1_1P_LS_C(0xf));
|
||||||
|
@ -148,26 +141,24 @@ index e5caabe7eebe..8e51b3fec386 100644
|
||||||
- regmap_write(pericfg, PERI_WK_CTRL0, tmp);
|
- regmap_write(pericfg, PERI_WK_CTRL0, tmp);
|
||||||
- regmap_write(pericfg, PERI_WK_CTRL0, tmp | UWK_CTL1_1P_LS_E);
|
- regmap_write(pericfg, PERI_WK_CTRL0, tmp | UWK_CTL1_1P_LS_E);
|
||||||
-}
|
-}
|
||||||
+ ret = of_parse_phandle_with_fixed_args(dn,
|
+ /* Wakeup function is optional */
|
||||||
+ "mediatek,syscon-wakeup", 2, 0, &args);
|
+ mtk->uwk_en = of_property_read_bool(dn, "wakeup-source");
|
||||||
+ if (ret)
|
+ if (!mtk->uwk_en)
|
||||||
+ return ret;
|
+ return 0;
|
||||||
|
|
||||||
-static void usb_wakeup_line_state_dis(struct xhci_hcd_mtk *mtk)
|
-static void usb_wakeup_line_state_dis(struct xhci_hcd_mtk *mtk)
|
||||||
-{
|
-{
|
||||||
- u32 tmp;
|
- u32 tmp;
|
||||||
- struct regmap *pericfg = mtk->pericfg;
|
- struct regmap *pericfg = mtk->pericfg;
|
||||||
-
|
+ ret = of_parse_phandle_with_fixed_args(dn,
|
||||||
|
+ "mediatek,syscon-wakeup", 2, 0, &args);
|
||||||
|
+ if (ret)
|
||||||
|
+ return ret;
|
||||||
|
|
||||||
- /* line-state of u2-port0 */
|
- /* line-state of u2-port0 */
|
||||||
- regmap_read(pericfg, PERI_WK_CTRL1, &tmp);
|
- regmap_read(pericfg, PERI_WK_CTRL1, &tmp);
|
||||||
- tmp &= ~UWK_CTL1_0P_LS_E;
|
- tmp &= ~UWK_CTL1_0P_LS_E;
|
||||||
- regmap_write(pericfg, PERI_WK_CTRL1, tmp);
|
- regmap_write(pericfg, PERI_WK_CTRL1, tmp);
|
||||||
-
|
|
||||||
- /* line-state of u2-port1 */
|
|
||||||
- regmap_read(pericfg, PERI_WK_CTRL0, &tmp);
|
|
||||||
- tmp &= ~UWK_CTL1_1P_LS_E;
|
|
||||||
- regmap_write(pericfg, PERI_WK_CTRL0, tmp);
|
|
||||||
-}
|
|
||||||
+ mtk->uwk_reg_base = args.args[0];
|
+ mtk->uwk_reg_base = args.args[0];
|
||||||
+ mtk->uwk_vers = args.args[1];
|
+ mtk->uwk_vers = args.args[1];
|
||||||
+ mtk->uwk = syscon_node_to_regmap(args.np);
|
+ mtk->uwk = syscon_node_to_regmap(args.np);
|
||||||
|
@ -175,27 +166,33 @@ index e5caabe7eebe..8e51b3fec386 100644
|
||||||
+ dev_info(mtk->dev, "uwk - reg:0x%x, version:%d\n",
|
+ dev_info(mtk->dev, "uwk - reg:0x%x, version:%d\n",
|
||||||
+ mtk->uwk_reg_base, mtk->uwk_vers);
|
+ mtk->uwk_reg_base, mtk->uwk_vers);
|
||||||
|
|
||||||
|
- /* line-state of u2-port1 */
|
||||||
|
- regmap_read(pericfg, PERI_WK_CTRL0, &tmp);
|
||||||
|
- tmp &= ~UWK_CTL1_1P_LS_E;
|
||||||
|
- regmap_write(pericfg, PERI_WK_CTRL0, tmp);
|
||||||
|
-}
|
||||||
|
+ return PTR_ERR_OR_ZERO(mtk->uwk);
|
||||||
|
|
||||||
-static void usb_wakeup_enable(struct xhci_hcd_mtk *mtk)
|
-static void usb_wakeup_enable(struct xhci_hcd_mtk *mtk)
|
||||||
-{
|
-{
|
||||||
- if (mtk->wakeup_src == SSUSB_WK_IP_SLEEP)
|
- if (mtk->wakeup_src == SSUSB_WK_IP_SLEEP)
|
||||||
- usb_wakeup_ip_sleep_en(mtk);
|
- usb_wakeup_ip_sleep_en(mtk);
|
||||||
- else if (mtk->wakeup_src == SSUSB_WK_LINE_STATE)
|
- else if (mtk->wakeup_src == SSUSB_WK_LINE_STATE)
|
||||||
- usb_wakeup_line_state_en(mtk);
|
- usb_wakeup_line_state_en(mtk);
|
||||||
-}
|
}
|
||||||
+ return PTR_ERR_OR_ZERO(mtk->uwk);
|
|
||||||
|
|
||||||
-static void usb_wakeup_disable(struct xhci_hcd_mtk *mtk)
|
-static void usb_wakeup_disable(struct xhci_hcd_mtk *mtk)
|
||||||
-{
|
+static void usb_wakeup_set(struct xhci_hcd_mtk *mtk, bool enable)
|
||||||
|
{
|
||||||
- if (mtk->wakeup_src == SSUSB_WK_IP_SLEEP)
|
- if (mtk->wakeup_src == SSUSB_WK_IP_SLEEP)
|
||||||
- usb_wakeup_ip_sleep_dis(mtk);
|
- usb_wakeup_ip_sleep_dis(mtk);
|
||||||
- else if (mtk->wakeup_src == SSUSB_WK_LINE_STATE)
|
- else if (mtk->wakeup_src == SSUSB_WK_LINE_STATE)
|
||||||
- usb_wakeup_line_state_dis(mtk);
|
- usb_wakeup_line_state_dis(mtk);
|
||||||
}
|
-}
|
||||||
|
-
|
||||||
-static int usb_wakeup_of_property_parse(struct xhci_hcd_mtk *mtk,
|
-static int usb_wakeup_of_property_parse(struct xhci_hcd_mtk *mtk,
|
||||||
- struct device_node *dn)
|
- struct device_node *dn)
|
||||||
+static void usb_wakeup_set(struct xhci_hcd_mtk *mtk, bool enable)
|
-{
|
||||||
{
|
|
||||||
- struct device *dev = mtk->dev;
|
- struct device *dev = mtk->dev;
|
||||||
-
|
-
|
||||||
- /*
|
- /*
|
||||||
|
@ -220,7 +217,7 @@ index e5caabe7eebe..8e51b3fec386 100644
|
||||||
}
|
}
|
||||||
|
|
||||||
static int xhci_mtk_setup(struct usb_hcd *hcd);
|
static int xhci_mtk_setup(struct usb_hcd *hcd);
|
||||||
@@ -595,8 +536,10 @@ static int xhci_mtk_probe(struct platform_device *pdev)
|
@@ -595,8 +536,10 @@ static int xhci_mtk_probe(struct platfor
|
||||||
&mtk->u3p_dis_msk);
|
&mtk->u3p_dis_msk);
|
||||||
|
|
||||||
ret = usb_wakeup_of_property_parse(mtk, node);
|
ret = usb_wakeup_of_property_parse(mtk, node);
|
||||||
|
@ -232,7 +229,7 @@ index e5caabe7eebe..8e51b3fec386 100644
|
||||||
|
|
||||||
mtk->num_phys = of_count_phandle_with_args(node,
|
mtk->num_phys = of_count_phandle_with_args(node,
|
||||||
"phys", "#phy-cells");
|
"phys", "#phy-cells");
|
||||||
@@ -780,7 +723,7 @@ static int __maybe_unused xhci_mtk_suspend(struct device *dev)
|
@@ -780,7 +723,7 @@ static int __maybe_unused xhci_mtk_suspe
|
||||||
xhci_mtk_host_disable(mtk);
|
xhci_mtk_host_disable(mtk);
|
||||||
xhci_mtk_phy_power_off(mtk);
|
xhci_mtk_phy_power_off(mtk);
|
||||||
xhci_mtk_clks_disable(mtk);
|
xhci_mtk_clks_disable(mtk);
|
||||||
|
@ -241,7 +238,7 @@ index e5caabe7eebe..8e51b3fec386 100644
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -790,7 +733,7 @@ static int __maybe_unused xhci_mtk_resume(struct device *dev)
|
@@ -790,7 +733,7 @@ static int __maybe_unused xhci_mtk_resum
|
||||||
struct usb_hcd *hcd = mtk->hcd;
|
struct usb_hcd *hcd = mtk->hcd;
|
||||||
struct xhci_hcd *xhci = hcd_to_xhci(hcd);
|
struct xhci_hcd *xhci = hcd_to_xhci(hcd);
|
||||||
|
|
||||||
|
@ -250,8 +247,6 @@ index e5caabe7eebe..8e51b3fec386 100644
|
||||||
xhci_mtk_clks_enable(mtk);
|
xhci_mtk_clks_enable(mtk);
|
||||||
xhci_mtk_phy_power_on(mtk);
|
xhci_mtk_phy_power_on(mtk);
|
||||||
xhci_mtk_host_enable(mtk);
|
xhci_mtk_host_enable(mtk);
|
||||||
diff --git a/drivers/usb/host/xhci-mtk.h b/drivers/usb/host/xhci-mtk.h
|
|
||||||
index 45ff5c67efb5..85c007ee1f52 100644
|
|
||||||
--- a/drivers/usb/host/xhci-mtk.h
|
--- a/drivers/usb/host/xhci-mtk.h
|
||||||
+++ b/drivers/usb/host/xhci-mtk.h
|
+++ b/drivers/usb/host/xhci-mtk.h
|
||||||
@@ -131,8 +131,12 @@ struct xhci_hcd_mtk {
|
@@ -131,8 +131,12 @@ struct xhci_hcd_mtk {
|
||||||
|
@ -268,6 +263,3 @@ index 45ff5c67efb5..85c007ee1f52 100644
|
||||||
};
|
};
|
||||||
|
|
||||||
static inline struct xhci_hcd_mtk *hcd_to_mtk(struct usb_hcd *hcd)
|
static inline struct xhci_hcd_mtk *hcd_to_mtk(struct usb_hcd *hcd)
|
||||||
--
|
|
||||||
2.11.0
|
|
||||||
|
|
||||||
|
|
|
@ -38,8 +38,6 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
|
||||||
drivers/usb/host/xhci.h | 2 ++
|
drivers/usb/host/xhci.h | 2 ++
|
||||||
7 files changed, 23 insertions(+), 5 deletions(-)
|
7 files changed, 23 insertions(+), 5 deletions(-)
|
||||||
|
|
||||||
diff --git a/Documentation/devicetree/bindings/usb/mediatek,mtk-xhci.txt b/Documentation/devicetree/bindings/usb/mediatek,mtk-xhci.txt
|
|
||||||
index 30595964876a..9ff560298498 100644
|
|
||||||
--- a/Documentation/devicetree/bindings/usb/mediatek,mtk-xhci.txt
|
--- a/Documentation/devicetree/bindings/usb/mediatek,mtk-xhci.txt
|
||||||
+++ b/Documentation/devicetree/bindings/usb/mediatek,mtk-xhci.txt
|
+++ b/Documentation/devicetree/bindings/usb/mediatek,mtk-xhci.txt
|
||||||
@@ -46,6 +46,7 @@ Optional properties:
|
@@ -46,6 +46,7 @@ Optional properties:
|
||||||
|
@ -58,11 +56,9 @@ index 30595964876a..9ff560298498 100644
|
||||||
};
|
};
|
||||||
|
|
||||||
2nd: dual-role mode with xHCI driver
|
2nd: dual-role mode with xHCI driver
|
||||||
diff --git a/Documentation/devicetree/bindings/usb/usb-xhci.txt b/Documentation/devicetree/bindings/usb/usb-xhci.txt
|
|
||||||
index 2d80b60eeabe..2390ae58636b 100644
|
|
||||||
--- a/Documentation/devicetree/bindings/usb/usb-xhci.txt
|
--- a/Documentation/devicetree/bindings/usb/usb-xhci.txt
|
||||||
+++ b/Documentation/devicetree/bindings/usb/usb-xhci.txt
|
+++ b/Documentation/devicetree/bindings/usb/usb-xhci.txt
|
||||||
@@ -28,6 +28,7 @@ Optional properties:
|
@@ -29,6 +29,7 @@ Optional properties:
|
||||||
- clocks: reference to a clock
|
- clocks: reference to a clock
|
||||||
- usb3-lpm-capable: determines if platform is USB3 LPM capable
|
- usb3-lpm-capable: determines if platform is USB3 LPM capable
|
||||||
- quirk-broken-port-ped: set if the controller has broken port disable mechanism
|
- quirk-broken-port-ped: set if the controller has broken port disable mechanism
|
||||||
|
@ -70,11 +66,9 @@ index 2d80b60eeabe..2390ae58636b 100644
|
||||||
|
|
||||||
Example:
|
Example:
|
||||||
usb@f0931000 {
|
usb@f0931000 {
|
||||||
diff --git a/drivers/usb/host/xhci-mtk.c b/drivers/usb/host/xhci-mtk.c
|
|
||||||
index 8e51b3fec386..8e4495be6592 100644
|
|
||||||
--- a/drivers/usb/host/xhci-mtk.c
|
--- a/drivers/usb/host/xhci-mtk.c
|
||||||
+++ b/drivers/usb/host/xhci-mtk.c
|
+++ b/drivers/usb/host/xhci-mtk.c
|
||||||
@@ -629,6 +629,15 @@ static int xhci_mtk_probe(struct platform_device *pdev)
|
@@ -629,6 +629,15 @@ static int xhci_mtk_probe(struct platfor
|
||||||
|
|
||||||
xhci = hcd_to_xhci(hcd);
|
xhci = hcd_to_xhci(hcd);
|
||||||
xhci->main_hcd = hcd;
|
xhci->main_hcd = hcd;
|
||||||
|
@ -90,11 +84,9 @@ index 8e51b3fec386..8e4495be6592 100644
|
||||||
xhci->shared_hcd = usb_create_shared_hcd(driver, dev,
|
xhci->shared_hcd = usb_create_shared_hcd(driver, dev,
|
||||||
dev_name(dev), hcd);
|
dev_name(dev), hcd);
|
||||||
if (!xhci->shared_hcd) {
|
if (!xhci->shared_hcd) {
|
||||||
diff --git a/drivers/usb/host/xhci-pci.c b/drivers/usb/host/xhci-pci.c
|
|
||||||
index 8071c8fdd15e..cdd7d7bdfc0f 100644
|
|
||||||
--- a/drivers/usb/host/xhci-pci.c
|
--- a/drivers/usb/host/xhci-pci.c
|
||||||
+++ b/drivers/usb/host/xhci-pci.c
|
+++ b/drivers/usb/host/xhci-pci.c
|
||||||
@@ -258,6 +258,9 @@ static int xhci_pci_setup(struct usb_hcd *hcd)
|
@@ -255,6 +255,9 @@ static int xhci_pci_setup(struct usb_hcd
|
||||||
if (!xhci->sbrn)
|
if (!xhci->sbrn)
|
||||||
pci_read_config_byte(pdev, XHCI_SBRN_OFFSET, &xhci->sbrn);
|
pci_read_config_byte(pdev, XHCI_SBRN_OFFSET, &xhci->sbrn);
|
||||||
|
|
||||||
|
@ -104,11 +96,9 @@ index 8071c8fdd15e..cdd7d7bdfc0f 100644
|
||||||
retval = xhci_gen_setup(hcd, xhci_pci_quirks);
|
retval = xhci_gen_setup(hcd, xhci_pci_quirks);
|
||||||
if (retval)
|
if (retval)
|
||||||
return retval;
|
return retval;
|
||||||
diff --git a/drivers/usb/host/xhci-plat.c b/drivers/usb/host/xhci-plat.c
|
|
||||||
index 163bafde709f..47230453a876 100644
|
|
||||||
--- a/drivers/usb/host/xhci-plat.c
|
--- a/drivers/usb/host/xhci-plat.c
|
||||||
+++ b/drivers/usb/host/xhci-plat.c
|
+++ b/drivers/usb/host/xhci-plat.c
|
||||||
@@ -265,6 +265,11 @@ static int xhci_plat_probe(struct platform_device *pdev)
|
@@ -269,6 +269,11 @@ static int xhci_plat_probe(struct platfo
|
||||||
if (device_property_read_bool(&pdev->dev, "quirk-broken-port-ped"))
|
if (device_property_read_bool(&pdev->dev, "quirk-broken-port-ped"))
|
||||||
xhci->quirks |= XHCI_BROKEN_PORT_PED;
|
xhci->quirks |= XHCI_BROKEN_PORT_PED;
|
||||||
|
|
||||||
|
@ -120,8 +110,6 @@ index 163bafde709f..47230453a876 100644
|
||||||
hcd->usb_phy = devm_usb_get_phy_by_phandle(sysdev, "usb-phy", 0);
|
hcd->usb_phy = devm_usb_get_phy_by_phandle(sysdev, "usb-phy", 0);
|
||||||
if (IS_ERR(hcd->usb_phy)) {
|
if (IS_ERR(hcd->usb_phy)) {
|
||||||
ret = PTR_ERR(hcd->usb_phy);
|
ret = PTR_ERR(hcd->usb_phy);
|
||||||
diff --git a/drivers/usb/host/xhci.c b/drivers/usb/host/xhci.c
|
|
||||||
index b2ff1ff1a02f..ac1b26a81e77 100644
|
|
||||||
--- a/drivers/usb/host/xhci.c
|
--- a/drivers/usb/host/xhci.c
|
||||||
+++ b/drivers/usb/host/xhci.c
|
+++ b/drivers/usb/host/xhci.c
|
||||||
@@ -597,11 +597,7 @@ int xhci_run(struct usb_hcd *hcd)
|
@@ -597,11 +597,7 @@ int xhci_run(struct usb_hcd *hcd)
|
||||||
|
@ -137,11 +125,9 @@ index b2ff1ff1a02f..ac1b26a81e77 100644
|
||||||
writel(temp, &xhci->ir_set->irq_control);
|
writel(temp, &xhci->ir_set->irq_control);
|
||||||
|
|
||||||
/* Set the HCD state before we enable the irqs */
|
/* Set the HCD state before we enable the irqs */
|
||||||
diff --git a/drivers/usb/host/xhci.h b/drivers/usb/host/xhci.h
|
|
||||||
index 2abaa4d6d39d..614380af0f96 100644
|
|
||||||
--- a/drivers/usb/host/xhci.h
|
--- a/drivers/usb/host/xhci.h
|
||||||
+++ b/drivers/usb/host/xhci.h
|
+++ b/drivers/usb/host/xhci.h
|
||||||
@@ -1723,6 +1723,8 @@ struct xhci_hcd {
|
@@ -1726,6 +1726,8 @@ struct xhci_hcd {
|
||||||
u8 max_interrupters;
|
u8 max_interrupters;
|
||||||
u8 max_ports;
|
u8 max_ports;
|
||||||
u8 isoc_threshold;
|
u8 isoc_threshold;
|
||||||
|
@ -150,6 +136,3 @@ index 2abaa4d6d39d..614380af0f96 100644
|
||||||
int event_ring_max;
|
int event_ring_max;
|
||||||
/* 4KB min, 128MB max */
|
/* 4KB min, 128MB max */
|
||||||
int page_size;
|
int page_size;
|
||||||
--
|
|
||||||
2.11.0
|
|
||||||
|
|
||||||
|
|
|
@ -15,8 +15,6 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
|
||||||
.../devicetree/bindings/usb/mediatek,mtk-xhci.txt | 16 ++++++++++------
|
.../devicetree/bindings/usb/mediatek,mtk-xhci.txt | 16 ++++++++++------
|
||||||
1 file changed, 10 insertions(+), 6 deletions(-)
|
1 file changed, 10 insertions(+), 6 deletions(-)
|
||||||
|
|
||||||
diff --git a/Documentation/devicetree/bindings/usb/mediatek,mtk-xhci.txt b/Documentation/devicetree/bindings/usb/mediatek,mtk-xhci.txt
|
|
||||||
index 9ff560298498..88d9f4a4b280 100644
|
|
||||||
--- a/Documentation/devicetree/bindings/usb/mediatek,mtk-xhci.txt
|
--- a/Documentation/devicetree/bindings/usb/mediatek,mtk-xhci.txt
|
||||||
+++ b/Documentation/devicetree/bindings/usb/mediatek,mtk-xhci.txt
|
+++ b/Documentation/devicetree/bindings/usb/mediatek,mtk-xhci.txt
|
||||||
@@ -35,10 +35,14 @@ Required properties:
|
@@ -35,10 +35,14 @@ Required properties:
|
||||||
|
@ -49,6 +47,3 @@ index 9ff560298498..88d9f4a4b280 100644
|
||||||
imod-interval-ns = <10000>;
|
imod-interval-ns = <10000>;
|
||||||
};
|
};
|
||||||
|
|
||||||
--
|
|
||||||
2.11.0
|
|
||||||
|
|
||||||
|
|
|
@ -32,10 +32,8 @@ Signed-off-by: Stephen Boyd <sboyd@codeaurora.org>
|
||||||
drivers/clk/mediatek/clk-mtk.h | 7 -------
|
drivers/clk/mediatek/clk-mtk.h | 7 -------
|
||||||
3 files changed, 3 insertions(+), 9 deletions(-)
|
3 files changed, 3 insertions(+), 9 deletions(-)
|
||||||
|
|
||||||
Index: linux-4.14.25/drivers/clk/mediatek/Kconfig
|
--- a/drivers/clk/mediatek/Kconfig
|
||||||
===================================================================
|
+++ b/drivers/clk/mediatek/Kconfig
|
||||||
--- linux-4.14.25.orig/drivers/clk/mediatek/Kconfig
|
|
||||||
+++ linux-4.14.25/drivers/clk/mediatek/Kconfig
|
|
||||||
@@ -6,6 +6,7 @@ menu "Clock driver for MediaTek SoC"
|
@@ -6,6 +6,7 @@ menu "Clock driver for MediaTek SoC"
|
||||||
|
|
||||||
config COMMON_CLK_MEDIATEK
|
config COMMON_CLK_MEDIATEK
|
||||||
|
@ -44,10 +42,8 @@ Index: linux-4.14.25/drivers/clk/mediatek/Kconfig
|
||||||
---help---
|
---help---
|
||||||
MediaTek SoCs' clock support.
|
MediaTek SoCs' clock support.
|
||||||
|
|
||||||
Index: linux-4.14.25/drivers/clk/mediatek/Makefile
|
--- a/drivers/clk/mediatek/Makefile
|
||||||
===================================================================
|
+++ b/drivers/clk/mediatek/Makefile
|
||||||
--- linux-4.14.25.orig/drivers/clk/mediatek/Makefile
|
|
||||||
+++ linux-4.14.25/drivers/clk/mediatek/Makefile
|
|
||||||
@@ -1,6 +1,5 @@
|
@@ -1,6 +1,5 @@
|
||||||
# SPDX-License-Identifier: GPL-2.0
|
# SPDX-License-Identifier: GPL-2.0
|
||||||
-obj-$(CONFIG_COMMON_CLK_MEDIATEK) += clk-mtk.o clk-pll.o clk-gate.o clk-apmixed.o clk-cpumux.o
|
-obj-$(CONFIG_COMMON_CLK_MEDIATEK) += clk-mtk.o clk-pll.o clk-gate.o clk-apmixed.o clk-cpumux.o
|
||||||
|
@ -56,10 +52,8 @@ Index: linux-4.14.25/drivers/clk/mediatek/Makefile
|
||||||
obj-$(CONFIG_COMMON_CLK_MT6797) += clk-mt6797.o
|
obj-$(CONFIG_COMMON_CLK_MT6797) += clk-mt6797.o
|
||||||
obj-$(CONFIG_COMMON_CLK_MT6797_IMGSYS) += clk-mt6797-img.o
|
obj-$(CONFIG_COMMON_CLK_MT6797_IMGSYS) += clk-mt6797-img.o
|
||||||
obj-$(CONFIG_COMMON_CLK_MT6797_MMSYS) += clk-mt6797-mm.o
|
obj-$(CONFIG_COMMON_CLK_MT6797_MMSYS) += clk-mt6797-mm.o
|
||||||
Index: linux-4.14.25/drivers/clk/mediatek/clk-mtk.h
|
--- a/drivers/clk/mediatek/clk-mtk.h
|
||||||
===================================================================
|
+++ b/drivers/clk/mediatek/clk-mtk.h
|
||||||
--- linux-4.14.25.orig/drivers/clk/mediatek/clk-mtk.h
|
|
||||||
+++ linux-4.14.25/drivers/clk/mediatek/clk-mtk.h
|
|
||||||
@@ -229,14 +229,7 @@ void mtk_clk_register_plls(struct device
|
@@ -229,14 +229,7 @@ void mtk_clk_register_plls(struct device
|
||||||
struct clk *mtk_clk_register_ref2usb_tx(const char *name,
|
struct clk *mtk_clk_register_ref2usb_tx(const char *name,
|
||||||
const char *parent_name, void __iomem *reg);
|
const char *parent_name, void __iomem *reg);
|
||||||
|
|
|
@ -31,8 +31,6 @@ Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
|
||||||
drivers/pinctrl/mediatek/pinctrl-mt7622.c | 6 ++++--
|
drivers/pinctrl/mediatek/pinctrl-mt7622.c | 6 ++++--
|
||||||
1 file changed, 4 insertions(+), 2 deletions(-)
|
1 file changed, 4 insertions(+), 2 deletions(-)
|
||||||
|
|
||||||
diff --git a/drivers/pinctrl/mediatek/pinctrl-mt7622.c b/drivers/pinctrl/mediatek/pinctrl-mt7622.c
|
|
||||||
index 3824d82888ac..dc32e3c3bd73 100644
|
|
||||||
--- a/drivers/pinctrl/mediatek/pinctrl-mt7622.c
|
--- a/drivers/pinctrl/mediatek/pinctrl-mt7622.c
|
||||||
+++ b/drivers/pinctrl/mediatek/pinctrl-mt7622.c
|
+++ b/drivers/pinctrl/mediatek/pinctrl-mt7622.c
|
||||||
@@ -1412,9 +1412,11 @@ static struct pinctrl_desc mtk_desc = {
|
@@ -1412,9 +1412,11 @@ static struct pinctrl_desc mtk_desc = {
|
||||||
|
@ -49,6 +47,3 @@ index 3824d82888ac..dc32e3c3bd73 100644
|
||||||
|
|
||||||
return !!value;
|
return !!value;
|
||||||
}
|
}
|
||||||
--
|
|
||||||
2.11.0
|
|
||||||
|
|
||||||
|
|
|
@ -14,11 +14,9 @@ Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
|
||||||
drivers/pinctrl/mediatek/pinctrl-mt7622.c | 8 ++++----
|
drivers/pinctrl/mediatek/pinctrl-mt7622.c | 8 ++++----
|
||||||
1 file changed, 4 insertions(+), 4 deletions(-)
|
1 file changed, 4 insertions(+), 4 deletions(-)
|
||||||
|
|
||||||
diff --git a/drivers/pinctrl/mediatek/pinctrl-mt7622.c b/drivers/pinctrl/mediatek/pinctrl-mt7622.c
|
|
||||||
index dc32e3c3bd73..06e8406c4440 100644
|
|
||||||
--- a/drivers/pinctrl/mediatek/pinctrl-mt7622.c
|
--- a/drivers/pinctrl/mediatek/pinctrl-mt7622.c
|
||||||
+++ b/drivers/pinctrl/mediatek/pinctrl-mt7622.c
|
+++ b/drivers/pinctrl/mediatek/pinctrl-mt7622.c
|
||||||
@@ -1160,7 +1160,7 @@ static int mtk_pinconf_get(struct pinctrl_dev *pctldev,
|
@@ -1160,7 +1160,7 @@ static int mtk_pinconf_get(struct pinctr
|
||||||
case PIN_CONFIG_OUTPUT_ENABLE:
|
case PIN_CONFIG_OUTPUT_ENABLE:
|
||||||
err = mtk_hw_get_value(hw, pin, PINCTRL_PIN_REG_DIR, &val);
|
err = mtk_hw_get_value(hw, pin, PINCTRL_PIN_REG_DIR, &val);
|
||||||
if (err)
|
if (err)
|
||||||
|
@ -27,7 +25,7 @@ index dc32e3c3bd73..06e8406c4440 100644
|
||||||
|
|
||||||
/* HW takes input mode as zero; output mode as non-zero */
|
/* HW takes input mode as zero; output mode as non-zero */
|
||||||
if ((val && param == PIN_CONFIG_INPUT_ENABLE) ||
|
if ((val && param == PIN_CONFIG_INPUT_ENABLE) ||
|
||||||
@@ -1184,11 +1184,11 @@ static int mtk_pinconf_get(struct pinctrl_dev *pctldev,
|
@@ -1184,11 +1184,11 @@ static int mtk_pinconf_get(struct pinctr
|
||||||
case PIN_CONFIG_DRIVE_STRENGTH:
|
case PIN_CONFIG_DRIVE_STRENGTH:
|
||||||
err = mtk_hw_get_value(hw, pin, PINCTRL_PIN_REG_E4, &val);
|
err = mtk_hw_get_value(hw, pin, PINCTRL_PIN_REG_E4, &val);
|
||||||
if (err)
|
if (err)
|
||||||
|
@ -41,7 +39,7 @@ index dc32e3c3bd73..06e8406c4440 100644
|
||||||
|
|
||||||
/* 4mA when (e8, e4) = (0, 0); 8mA when (e8, e4) = (0, 1)
|
/* 4mA when (e8, e4) = (0, 0); 8mA when (e8, e4) = (0, 1)
|
||||||
* 12mA when (e8, e4) = (1, 0); 16mA when (e8, e4) = (1, 1)
|
* 12mA when (e8, e4) = (1, 0); 16mA when (e8, e4) = (1, 1)
|
||||||
@@ -1203,7 +1203,7 @@ static int mtk_pinconf_get(struct pinctrl_dev *pctldev,
|
@@ -1203,7 +1203,7 @@ static int mtk_pinconf_get(struct pinctr
|
||||||
|
|
||||||
err = mtk_hw_get_value(hw, pin, reg, &val);
|
err = mtk_hw_get_value(hw, pin, reg, &val);
|
||||||
if (err)
|
if (err)
|
||||||
|
@ -50,6 +48,3 @@ index dc32e3c3bd73..06e8406c4440 100644
|
||||||
|
|
||||||
ret = val;
|
ret = val;
|
||||||
|
|
||||||
--
|
|
||||||
2.11.0
|
|
||||||
|
|
||||||
|
|
|
@ -14,8 +14,6 @@ Signed-off-by: Cyrille Pitchen <cyrille.pitchen@wedev4u.fr>
|
||||||
drivers/mtd/spi-nor/mtk-quadspi.c | 240 +++++++++++++++++++-------------------
|
drivers/mtd/spi-nor/mtk-quadspi.c | 240 +++++++++++++++++++-------------------
|
||||||
1 file changed, 120 insertions(+), 120 deletions(-)
|
1 file changed, 120 insertions(+), 120 deletions(-)
|
||||||
|
|
||||||
diff --git a/drivers/mtd/spi-nor/mtk-quadspi.c b/drivers/mtd/spi-nor/mtk-quadspi.c
|
|
||||||
index abe455ccd68b..5442993b71ff 100644
|
|
||||||
--- a/drivers/mtd/spi-nor/mtk-quadspi.c
|
--- a/drivers/mtd/spi-nor/mtk-quadspi.c
|
||||||
+++ b/drivers/mtd/spi-nor/mtk-quadspi.c
|
+++ b/drivers/mtd/spi-nor/mtk-quadspi.c
|
||||||
@@ -110,7 +110,7 @@
|
@@ -110,7 +110,7 @@
|
||||||
|
@ -90,7 +88,7 @@ index abe455ccd68b..5442993b71ff 100644
|
||||||
{
|
{
|
||||||
int len = 1 + txlen + rxlen;
|
int len = 1 + txlen + rxlen;
|
||||||
int i, ret, idx;
|
int i, ret, idx;
|
||||||
@@ -167,26 +167,26 @@ static int mt8173_nor_do_tx_rx(struct mt8173_nor *mt8173_nor, u8 op,
|
@@ -167,26 +167,26 @@ static int mt8173_nor_do_tx_rx(struct mt
|
||||||
if (len > MTK_NOR_MAX_SHIFT)
|
if (len > MTK_NOR_MAX_SHIFT)
|
||||||
return -EINVAL;
|
return -EINVAL;
|
||||||
|
|
||||||
|
@ -122,7 +120,7 @@ index abe455ccd68b..5442993b71ff 100644
|
||||||
if (ret)
|
if (ret)
|
||||||
return ret;
|
return ret;
|
||||||
|
|
||||||
@@ -195,20 +195,20 @@ static int mt8173_nor_do_tx_rx(struct mt8173_nor *mt8173_nor, u8 op,
|
@@ -195,20 +195,20 @@ static int mt8173_nor_do_tx_rx(struct mt
|
||||||
|
|
||||||
/* read out RX data */
|
/* read out RX data */
|
||||||
for (i = 0; i < rxlen; i++, idx--)
|
for (i = 0; i < rxlen; i++, idx--)
|
||||||
|
@ -149,7 +147,7 @@ index abe455ccd68b..5442993b71ff 100644
|
||||||
{
|
{
|
||||||
u8 reg;
|
u8 reg;
|
||||||
|
|
||||||
@@ -216,27 +216,27 @@ static int mt8173_nor_write_buffer_enable(struct mt8173_nor *mt8173_nor)
|
@@ -216,27 +216,27 @@ static int mt8173_nor_write_buffer_enabl
|
||||||
* 0: pre-fetch buffer use for read
|
* 0: pre-fetch buffer use for read
|
||||||
* 1: pre-fetch buffer use for page program
|
* 1: pre-fetch buffer use for page program
|
||||||
*/
|
*/
|
||||||
|
@ -185,7 +183,7 @@ index abe455ccd68b..5442993b71ff 100644
|
||||||
|
|
||||||
switch (nor->addr_width) {
|
switch (nor->addr_width) {
|
||||||
case 3:
|
case 3:
|
||||||
@@ -246,115 +246,115 @@ static void mt8173_nor_set_addr_width(struct mt8173_nor *mt8173_nor)
|
@@ -246,115 +246,115 @@ static void mt8173_nor_set_addr_width(st
|
||||||
val |= MTK_NOR_4B_ADDR_EN;
|
val |= MTK_NOR_4B_ADDR_EN;
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
|
@ -336,7 +334,7 @@ index abe455ccd68b..5442993b71ff 100644
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -362,72 +362,72 @@ static ssize_t mt8173_nor_write(struct spi_nor *nor, loff_t to, size_t len,
|
@@ -362,72 +362,72 @@ static ssize_t mt8173_nor_write(struct s
|
||||||
return len;
|
return len;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -429,7 +427,7 @@ index abe455ccd68b..5442993b71ff 100644
|
||||||
struct device_node *flash_node)
|
struct device_node *flash_node)
|
||||||
{
|
{
|
||||||
const struct spi_nor_hwcaps hwcaps = {
|
const struct spi_nor_hwcaps hwcaps = {
|
||||||
@@ -439,18 +439,18 @@ static int mtk_nor_init(struct mt8173_nor *mt8173_nor,
|
@@ -439,18 +439,18 @@ static int mtk_nor_init(struct mt8173_no
|
||||||
struct spi_nor *nor;
|
struct spi_nor *nor;
|
||||||
|
|
||||||
/* initialize controller to accept commands */
|
/* initialize controller to accept commands */
|
||||||
|
@ -456,7 +454,7 @@ index abe455ccd68b..5442993b71ff 100644
|
||||||
nor->mtd.name = "mtk_nor";
|
nor->mtd.name = "mtk_nor";
|
||||||
/* initialized with NULL */
|
/* initialized with NULL */
|
||||||
ret = spi_nor_scan(nor, NULL, &hwcaps);
|
ret = spi_nor_scan(nor, NULL, &hwcaps);
|
||||||
@@ -465,34 +465,34 @@ static int mtk_nor_drv_probe(struct platform_device *pdev)
|
@@ -465,34 +465,34 @@ static int mtk_nor_drv_probe(struct plat
|
||||||
struct device_node *flash_np;
|
struct device_node *flash_np;
|
||||||
struct resource *res;
|
struct resource *res;
|
||||||
int ret;
|
int ret;
|
||||||
|
@ -506,7 +504,7 @@ index abe455ccd68b..5442993b71ff 100644
|
||||||
if (ret)
|
if (ret)
|
||||||
return ret;
|
return ret;
|
||||||
|
|
||||||
@@ -503,20 +503,20 @@ static int mtk_nor_drv_probe(struct platform_device *pdev)
|
@@ -503,20 +503,20 @@ static int mtk_nor_drv_probe(struct plat
|
||||||
ret = -ENODEV;
|
ret = -ENODEV;
|
||||||
goto nor_free;
|
goto nor_free;
|
||||||
}
|
}
|
||||||
|
@ -531,7 +529,7 @@ index abe455ccd68b..5442993b71ff 100644
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
@@ -524,18 +524,18 @@ static int mtk_nor_drv_remove(struct platform_device *pdev)
|
@@ -524,18 +524,18 @@ static int mtk_nor_drv_remove(struct pla
|
||||||
#ifdef CONFIG_PM_SLEEP
|
#ifdef CONFIG_PM_SLEEP
|
||||||
static int mtk_nor_suspend(struct device *dev)
|
static int mtk_nor_suspend(struct device *dev)
|
||||||
{
|
{
|
||||||
|
@ -554,6 +552,3 @@ index abe455ccd68b..5442993b71ff 100644
|
||||||
}
|
}
|
||||||
|
|
||||||
static const struct dev_pm_ops mtk_nor_dev_pm_ops = {
|
static const struct dev_pm_ops mtk_nor_dev_pm_ops = {
|
||||||
--
|
|
||||||
2.11.0
|
|
||||||
|
|
||||||
|
|
|
@ -13,11 +13,9 @@ Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
|
||||||
drivers/char/hw_random/mtk-rng.c | 1 +
|
drivers/char/hw_random/mtk-rng.c | 1 +
|
||||||
1 file changed, 1 insertion(+)
|
1 file changed, 1 insertion(+)
|
||||||
|
|
||||||
diff --git a/drivers/char/hw_random/mtk-rng.c b/drivers/char/hw_random/mtk-rng.c
|
|
||||||
index 8da7bcf54105..7f99cd52b40e 100644
|
|
||||||
--- a/drivers/char/hw_random/mtk-rng.c
|
--- a/drivers/char/hw_random/mtk-rng.c
|
||||||
+++ b/drivers/char/hw_random/mtk-rng.c
|
+++ b/drivers/char/hw_random/mtk-rng.c
|
||||||
@@ -135,6 +135,7 @@ static int mtk_rng_probe(struct platform_device *pdev)
|
@@ -135,6 +135,7 @@ static int mtk_rng_probe(struct platform
|
||||||
#endif
|
#endif
|
||||||
priv->rng.read = mtk_rng_read;
|
priv->rng.read = mtk_rng_read;
|
||||||
priv->rng.priv = (unsigned long)&pdev->dev;
|
priv->rng.priv = (unsigned long)&pdev->dev;
|
||||||
|
@ -25,6 +23,3 @@ index 8da7bcf54105..7f99cd52b40e 100644
|
||||||
|
|
||||||
priv->clk = devm_clk_get(&pdev->dev, "rng");
|
priv->clk = devm_clk_get(&pdev->dev, "rng");
|
||||||
if (IS_ERR(priv->clk)) {
|
if (IS_ERR(priv->clk)) {
|
||||||
--
|
|
||||||
2.11.0
|
|
||||||
|
|
||||||
|
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Reference in a new issue