Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > linux.kernel > #1441452

[PATCH RT 05/20] usb: gadget: atmel: access the PMC using regmap

From Steven Rostedt <rostedt@goodmis.org>
Newsgroups linux.kernel
Subject [PATCH RT 05/20] usb: gadget: atmel: access the PMC using regmap
Date 2016-07-12 16:40 +0200
Message-ID <rU70T-6aC-59@gated-at.bofh.it> (permalink)
References <rU6Rb-66R-3@gated-at.bofh.it>
Organization linux.* mail to news gateway

Show all headers | View raw


4.1.27-rt31-rc1 stable review patch.
If anyone has any objections, please let me know.

------------------

From: Alexandre Belloni <alexandre.belloni@free-electrons.com>

Use regmap to access the PMC to avoid using at91_pmc_read and
at91_pmc_write.

Signed-off-by: Alexandre Belloni <alexandre.belloni@free-electrons.com>
Acked-by: Boris Brezillon <boris.brezillon@free-electrons.com>
Acked-by: Felipe Balbi <balbi@ti.com>
Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Signed-off-by: Steven Rostedt <rostedt@goodmis.org>
---
 drivers/usb/gadget/udc/atmel_usba_udc.c | 20 ++++++++++----------
 drivers/usb/gadget/udc/atmel_usba_udc.h |  2 ++
 2 files changed, 12 insertions(+), 10 deletions(-)

diff --git a/drivers/usb/gadget/udc/atmel_usba_udc.c b/drivers/usb/gadget/udc/atmel_usba_udc.c
index d6ca3697d3c8..ee6bc64f9656 100644
--- a/drivers/usb/gadget/udc/atmel_usba_udc.c
+++ b/drivers/usb/gadget/udc/atmel_usba_udc.c
@@ -17,7 +17,9 @@
 #include <linux/device.h>
 #include <linux/dma-mapping.h>
 #include <linux/list.h>
+#include <linux/mfd/syscon.h>
 #include <linux/platform_device.h>
+#include <linux/regmap.h>
 #include <linux/usb/ch9.h>
 #include <linux/usb/gadget.h>
 #include <linux/usb/atmel_usba_udc.h>
@@ -1889,20 +1891,15 @@ static int atmel_usba_stop(struct usb_gadget *gadget)
 #ifdef CONFIG_OF
 static void at91sam9rl_toggle_bias(struct usba_udc *udc, int is_on)
 {
-	unsigned int uckr = at91_pmc_read(AT91_CKGR_UCKR);
-
-	if (is_on)
-		at91_pmc_write(AT91_CKGR_UCKR, uckr | AT91_PMC_BIASEN);
-	else
-		at91_pmc_write(AT91_CKGR_UCKR, uckr & ~(AT91_PMC_BIASEN));
+	regmap_update_bits(udc->pmc, AT91_CKGR_UCKR, AT91_PMC_BIASEN,
+			   is_on ? AT91_PMC_BIASEN : 0);
 }
 
 static void at91sam9g45_pulse_bias(struct usba_udc *udc)
 {
-	unsigned int uckr = at91_pmc_read(AT91_CKGR_UCKR);
-
-	at91_pmc_write(AT91_CKGR_UCKR, uckr & ~(AT91_PMC_BIASEN));
-	at91_pmc_write(AT91_CKGR_UCKR, uckr | AT91_PMC_BIASEN);
+	regmap_update_bits(udc->pmc, AT91_CKGR_UCKR, AT91_PMC_BIASEN, 0);
+	regmap_update_bits(udc->pmc, AT91_CKGR_UCKR, AT91_PMC_BIASEN,
+			   AT91_PMC_BIASEN);
 }
 
 static const struct usba_udc_errata at91sam9rl_errata = {
@@ -1939,6 +1936,9 @@ static struct usba_ep * atmel_udc_of_init(struct platform_device *pdev,
 		return ERR_PTR(-EINVAL);
 
 	udc->errata = match->data;
+	udc->pmc = syscon_regmap_lookup_by_compatible("atmel,at91sam9g45-pmc");
+	if (udc->errata && IS_ERR(udc->pmc))
+		return ERR_CAST(udc->pmc);
 
 	udc->num_ep = 0;
 
diff --git a/drivers/usb/gadget/udc/atmel_usba_udc.h b/drivers/usb/gadget/udc/atmel_usba_udc.h
index ea448a344767..3e1c9d589dfa 100644
--- a/drivers/usb/gadget/udc/atmel_usba_udc.h
+++ b/drivers/usb/gadget/udc/atmel_usba_udc.h
@@ -354,6 +354,8 @@ struct usba_udc {
 	struct dentry *debugfs_root;
 	struct dentry *debugfs_regs;
 #endif
+
+	struct regmap *pmc;
 };
 
 static inline struct usba_ep *to_usba_ep(struct usb_ep *ep)
-- 
2.8.1

Back to linux.kernel | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread


Thread

[PATCH RT 00/20] Linux 4.1.27-rt31-rc1 Steven Rostedt <rostedt@goodmis.org> - 2016-07-12 16:30 +0200
  [PATCH RT 18/20] mm: perform lru_add_drain_all() remotely Steven Rostedt <rostedt@goodmis.org> - 2016-07-12 16:30 +0200
  [PATCH RT 13/20] perf/x86/intel/rapl: Make PMU lock raw Steven Rostedt <rostedt@goodmis.org> - 2016-07-12 16:30 +0200
  [PATCH RT 08/20] net: dev: always take qdiscs busylock in __dev_xmit_skb() Steven Rostedt <rostedt@goodmis.org> - 2016-07-12 16:40 +0200
  [PATCH RT 19/20] trace: correct off by one while recording the trace-event Steven Rostedt <rostedt@goodmis.org> - 2016-07-12 16:40 +0200
  [PATCH RT 09/20] drivers/block/zram: Replace bit spinlocks with rtmutex for -rt Steven Rostedt <rostedt@goodmis.org> - 2016-07-12 16:40 +0200
  [PATCH RT 07/20] mm/zsmalloc: Use get/put_cpu_light in  zs_map_object()/zs_unmap_object() Steven Rostedt <rostedt@goodmis.org> - 2016-07-12 16:40 +0200
  [PATCH RT 15/20] kernel/printk: Dont try to print from IRQ/NMI region Steven Rostedt <rostedt@goodmis.org> - 2016-07-12 16:40 +0200
  [PATCH RT 03/20] ARM: at91: pm: move idle functions to pm.c Steven Rostedt <rostedt@goodmis.org> - 2016-07-12 16:40 +0200
  [PATCH RT 04/20] ARM: at91: remove useless includes and function prototypes Steven Rostedt <rostedt@goodmis.org> - 2016-07-12 16:40 +0200
  [PATCH RT 05/20] usb: gadget: atmel: access the PMC using regmap Steven Rostedt <rostedt@goodmis.org> - 2016-07-12 16:40 +0200
  [PATCH RT 01/20] ARM: at91: pm: simply call at91_pm_init Steven Rostedt <rostedt@goodmis.org> - 2016-07-12 16:40 +0200
  [PATCH RT 10/20] list_bl: fixup bogus lockdep warning Steven Rostedt <rostedt@goodmis.org> - 2016-07-12 16:40 +0200
  Linux 4.1.27-rt31-rc2 Steven Rostedt <rostedt@goodmis.org> - 2016-07-13 01:20 +0200

csiph-web