All of lore.kernel.org
 help / color / mirror / Atom feed
From: Adam YH Lee <adam.yh.lee-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
To: linux-omap-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
	linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org
Cc: linux-iio-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
	sre-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org,
	jic23-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org,
	pmeerw-jW+XmwGofnusTnJN9+BGXg@public.gmane.org,
	Adam YH Lee <adam.yh.lee-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
Subject: [PATCH] [TWL4030 MADC] Fix ADC[3:6] readings
Date: Mon, 20 Jul 2015 11:14:18 -0700	[thread overview]
Message-ID: <1437416058-24586-2-git-send-email-adam.yh.lee@gmail.com> (raw)
In-Reply-To: <1437416058-24586-1-git-send-email-adam.yh.lee-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>

MADC[3:6] reads incorrect values without these two following changes:

- enable the 3v1 bias regulator for ADC[3:6]
- configure ADC[3:6] lines as input, not as USB

Signed-off-by: Adam YH Lee <adam.yh.lee-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
---
 drivers/iio/adc/twl4030-madc.c | 14 ++++++++++++++
 drivers/phy/phy-twl4030-usb.c  |  7 +++++++
 2 files changed, 21 insertions(+)

diff --git a/drivers/iio/adc/twl4030-madc.c b/drivers/iio/adc/twl4030-madc.c
index 94c5f05..b5020ab 100644
--- a/drivers/iio/adc/twl4030-madc.c
+++ b/drivers/iio/adc/twl4030-madc.c
@@ -45,6 +45,7 @@
 #include <linux/types.h>
 #include <linux/gfp.h>
 #include <linux/err.h>
+#include <linux/regulator/consumer.h>
 
 #include <linux/iio/iio.h>
 
@@ -52,6 +53,7 @@
  * struct twl4030_madc_data - a container for madc info
  * @dev:		Pointer to device structure for madc
  * @lock:		Mutex protecting this data structure
+ * @regulator:		Pointer to bias regulator for madc
  * @requests:		Array of request struct corresponding to SW1, SW2 and RT
  * @use_second_irq:	IRQ selection (main or co-processor)
  * @imr:		Interrupt mask register of MADC
@@ -60,6 +62,7 @@
 struct twl4030_madc_data {
 	struct device *dev;
 	struct mutex lock;	/* mutex protecting this data structure */
+	struct regulator *usb3v1;
 	struct twl4030_madc_request requests[TWL4030_MADC_NUM_METHODS];
 	bool use_second_irq;
 	u8 imr;
@@ -848,6 +851,14 @@ static int twl4030_madc_probe(struct platform_device *pdev)
 		goto err_i2c;
 	}
 
+	madc->usb3v1 = devm_regulator_get(madc->dev, "vusb3v1");
+	if (IS_ERR(madc->usb3v1))
+		return -ENODEV;
+
+	ret = regulator_enable(madc->usb3v1);
+	if (ret)
+		dev_err(madc->dev, "could not be enable 3v1 bias regulator\n");
+
 	return 0;
 
 err_i2c:
@@ -867,6 +878,9 @@ static int twl4030_madc_remove(struct platform_device *pdev)
 	twl4030_madc_set_current_generator(madc, 0, 0);
 	twl4030_madc_set_power(madc, 0);
 
+	regulator_disable(madc->usb3v1);
+	regulator_put(madc->usb3v1);
+
 	return 0;
 }
 
diff --git a/drivers/phy/phy-twl4030-usb.c b/drivers/phy/phy-twl4030-usb.c
index 7b04bef..88fc7d7 100644
--- a/drivers/phy/phy-twl4030-usb.c
+++ b/drivers/phy/phy-twl4030-usb.c
@@ -144,6 +144,9 @@
 #define PMBR1				0x0D
 #define GPIO_USB_4PIN_ULPI_2430C	(3 << 0)
 
+#define TWL4030_USB_SEL_MADC_MCPC	(1<<3)
+#define TWL4030_USB_CARKIT_ANA_CTRL	0xBB
+
 struct twl4030_usb {
 	struct usb_phy		phy;
 	struct device		*dev;
@@ -459,6 +462,10 @@ static int twl4030_phy_power_on(struct phy *phy)
 		twl4030_i2c_access(twl, 0);
 	schedule_delayed_work(&twl->id_workaround_work, 0);
 
+	twl4030_usb_write(twl, TWL4030_USB_CARKIT_ANA_CTRL,
+		twl4030_usb_read(twl, TWL4030_USB_CARKIT_ANA_CTRL) |
+		TWL4030_USB_SEL_MADC_MCPC);
+
 	return 0;
 }
 
-- 
2.1.4

WARNING: multiple messages have this Message-ID (diff)
From: Adam YH Lee <adam.yh.lee@gmail.com>
To: linux-omap@vger.kernel.org, linux-arm-kernel@lists.infradead.org
Cc: linux-iio@vger.kernel.org, sre@kernel.org, jic23@kernel.org,
	pmeerw@pmeerw.net, Adam YH Lee <adam.yh.lee@gmail.com>
Subject: [PATCH] [TWL4030 MADC] Fix ADC[3:6] readings
Date: Mon, 20 Jul 2015 11:14:18 -0700	[thread overview]
Message-ID: <1437416058-24586-2-git-send-email-adam.yh.lee@gmail.com> (raw)
In-Reply-To: <1437416058-24586-1-git-send-email-adam.yh.lee@gmail.com>

MADC[3:6] reads incorrect values without these two following changes:

- enable the 3v1 bias regulator for ADC[3:6]
- configure ADC[3:6] lines as input, not as USB

Signed-off-by: Adam YH Lee <adam.yh.lee@gmail.com>
---
 drivers/iio/adc/twl4030-madc.c | 14 ++++++++++++++
 drivers/phy/phy-twl4030-usb.c  |  7 +++++++
 2 files changed, 21 insertions(+)

diff --git a/drivers/iio/adc/twl4030-madc.c b/drivers/iio/adc/twl4030-madc.c
index 94c5f05..b5020ab 100644
--- a/drivers/iio/adc/twl4030-madc.c
+++ b/drivers/iio/adc/twl4030-madc.c
@@ -45,6 +45,7 @@
 #include <linux/types.h>
 #include <linux/gfp.h>
 #include <linux/err.h>
+#include <linux/regulator/consumer.h>
 
 #include <linux/iio/iio.h>
 
@@ -52,6 +53,7 @@
  * struct twl4030_madc_data - a container for madc info
  * @dev:		Pointer to device structure for madc
  * @lock:		Mutex protecting this data structure
+ * @regulator:		Pointer to bias regulator for madc
  * @requests:		Array of request struct corresponding to SW1, SW2 and RT
  * @use_second_irq:	IRQ selection (main or co-processor)
  * @imr:		Interrupt mask register of MADC
@@ -60,6 +62,7 @@
 struct twl4030_madc_data {
 	struct device *dev;
 	struct mutex lock;	/* mutex protecting this data structure */
+	struct regulator *usb3v1;
 	struct twl4030_madc_request requests[TWL4030_MADC_NUM_METHODS];
 	bool use_second_irq;
 	u8 imr;
@@ -848,6 +851,14 @@ static int twl4030_madc_probe(struct platform_device *pdev)
 		goto err_i2c;
 	}
 
+	madc->usb3v1 = devm_regulator_get(madc->dev, "vusb3v1");
+	if (IS_ERR(madc->usb3v1))
+		return -ENODEV;
+
+	ret = regulator_enable(madc->usb3v1);
+	if (ret)
+		dev_err(madc->dev, "could not be enable 3v1 bias regulator\n");
+
 	return 0;
 
 err_i2c:
@@ -867,6 +878,9 @@ static int twl4030_madc_remove(struct platform_device *pdev)
 	twl4030_madc_set_current_generator(madc, 0, 0);
 	twl4030_madc_set_power(madc, 0);
 
+	regulator_disable(madc->usb3v1);
+	regulator_put(madc->usb3v1);
+
 	return 0;
 }
 
diff --git a/drivers/phy/phy-twl4030-usb.c b/drivers/phy/phy-twl4030-usb.c
index 7b04bef..88fc7d7 100644
--- a/drivers/phy/phy-twl4030-usb.c
+++ b/drivers/phy/phy-twl4030-usb.c
@@ -144,6 +144,9 @@
 #define PMBR1				0x0D
 #define GPIO_USB_4PIN_ULPI_2430C	(3 << 0)
 
+#define TWL4030_USB_SEL_MADC_MCPC	(1<<3)
+#define TWL4030_USB_CARKIT_ANA_CTRL	0xBB
+
 struct twl4030_usb {
 	struct usb_phy		phy;
 	struct device		*dev;
@@ -459,6 +462,10 @@ static int twl4030_phy_power_on(struct phy *phy)
 		twl4030_i2c_access(twl, 0);
 	schedule_delayed_work(&twl->id_workaround_work, 0);
 
+	twl4030_usb_write(twl, TWL4030_USB_CARKIT_ANA_CTRL,
+		twl4030_usb_read(twl, TWL4030_USB_CARKIT_ANA_CTRL) |
+		TWL4030_USB_SEL_MADC_MCPC);
+
 	return 0;
 }
 
-- 
2.1.4

WARNING: multiple messages have this Message-ID (diff)
From: adam.yh.lee@gmail.com (Adam YH Lee)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH] [TWL4030 MADC] Fix ADC[3:6] readings
Date: Mon, 20 Jul 2015 11:14:18 -0700	[thread overview]
Message-ID: <1437416058-24586-2-git-send-email-adam.yh.lee@gmail.com> (raw)
In-Reply-To: <1437416058-24586-1-git-send-email-adam.yh.lee@gmail.com>

MADC[3:6] reads incorrect values without these two following changes:

- enable the 3v1 bias regulator for ADC[3:6]
- configure ADC[3:6] lines as input, not as USB

Signed-off-by: Adam YH Lee <adam.yh.lee@gmail.com>
---
 drivers/iio/adc/twl4030-madc.c | 14 ++++++++++++++
 drivers/phy/phy-twl4030-usb.c  |  7 +++++++
 2 files changed, 21 insertions(+)

diff --git a/drivers/iio/adc/twl4030-madc.c b/drivers/iio/adc/twl4030-madc.c
index 94c5f05..b5020ab 100644
--- a/drivers/iio/adc/twl4030-madc.c
+++ b/drivers/iio/adc/twl4030-madc.c
@@ -45,6 +45,7 @@
 #include <linux/types.h>
 #include <linux/gfp.h>
 #include <linux/err.h>
+#include <linux/regulator/consumer.h>
 
 #include <linux/iio/iio.h>
 
@@ -52,6 +53,7 @@
  * struct twl4030_madc_data - a container for madc info
  * @dev:		Pointer to device structure for madc
  * @lock:		Mutex protecting this data structure
+ * @regulator:		Pointer to bias regulator for madc
  * @requests:		Array of request struct corresponding to SW1, SW2 and RT
  * @use_second_irq:	IRQ selection (main or co-processor)
  * @imr:		Interrupt mask register of MADC
@@ -60,6 +62,7 @@
 struct twl4030_madc_data {
 	struct device *dev;
 	struct mutex lock;	/* mutex protecting this data structure */
+	struct regulator *usb3v1;
 	struct twl4030_madc_request requests[TWL4030_MADC_NUM_METHODS];
 	bool use_second_irq;
 	u8 imr;
@@ -848,6 +851,14 @@ static int twl4030_madc_probe(struct platform_device *pdev)
 		goto err_i2c;
 	}
 
+	madc->usb3v1 = devm_regulator_get(madc->dev, "vusb3v1");
+	if (IS_ERR(madc->usb3v1))
+		return -ENODEV;
+
+	ret = regulator_enable(madc->usb3v1);
+	if (ret)
+		dev_err(madc->dev, "could not be enable 3v1 bias regulator\n");
+
 	return 0;
 
 err_i2c:
@@ -867,6 +878,9 @@ static int twl4030_madc_remove(struct platform_device *pdev)
 	twl4030_madc_set_current_generator(madc, 0, 0);
 	twl4030_madc_set_power(madc, 0);
 
+	regulator_disable(madc->usb3v1);
+	regulator_put(madc->usb3v1);
+
 	return 0;
 }
 
diff --git a/drivers/phy/phy-twl4030-usb.c b/drivers/phy/phy-twl4030-usb.c
index 7b04bef..88fc7d7 100644
--- a/drivers/phy/phy-twl4030-usb.c
+++ b/drivers/phy/phy-twl4030-usb.c
@@ -144,6 +144,9 @@
 #define PMBR1				0x0D
 #define GPIO_USB_4PIN_ULPI_2430C	(3 << 0)
 
+#define TWL4030_USB_SEL_MADC_MCPC	(1<<3)
+#define TWL4030_USB_CARKIT_ANA_CTRL	0xBB
+
 struct twl4030_usb {
 	struct usb_phy		phy;
 	struct device		*dev;
@@ -459,6 +462,10 @@ static int twl4030_phy_power_on(struct phy *phy)
 		twl4030_i2c_access(twl, 0);
 	schedule_delayed_work(&twl->id_workaround_work, 0);
 
+	twl4030_usb_write(twl, TWL4030_USB_CARKIT_ANA_CTRL,
+		twl4030_usb_read(twl, TWL4030_USB_CARKIT_ANA_CTRL) |
+		TWL4030_USB_SEL_MADC_MCPC);
+
 	return 0;
 }
 
-- 
2.1.4

  parent reply	other threads:[~2015-07-20 18:14 UTC|newest]

Thread overview: 28+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-07-20 18:14 [PATCH] Fix incomplete initialization of ADC[3:6]$ Adam YH Lee
2015-07-20 18:14 ` Adam YH Lee
2015-07-20 18:14 ` Adam YH Lee
     [not found] ` <1437416058-24586-1-git-send-email-adam.yh.lee-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2015-07-20 18:14   ` Adam YH Lee [this message]
2015-07-20 18:14     ` [PATCH] [TWL4030 MADC] Fix ADC[3:6] readings Adam YH Lee
2015-07-20 18:14     ` Adam YH Lee
     [not found]     ` <1437416058-24586-2-git-send-email-adam.yh.lee-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2015-07-20 18:54       ` Peter Meerwald
2015-07-20 18:54         ` Peter Meerwald
2015-07-20 18:54         ` Peter Meerwald
     [not found]         ` <alpine.DEB.2.02.1507202051270.18050-jW+XmwGofnusTnJN9+BGXg@public.gmane.org>
2015-07-20 19:19           ` Adam Lee
2015-07-20 19:19             ` Adam Lee
2015-07-20 19:19             ` Adam Lee
  -- strict thread matches above, loose matches on Subject: below --
2015-07-16 22:20 [PATCH] Fix incomplete initialization of ADC[3:6] Adam YH Lee
2015-07-16 22:20 ` [PATCH] [TWL4030 MADC] Fix ADC[3:6] readings Adam YH Lee
2015-07-16 22:20   ` Adam YH Lee
2015-07-17  9:00   ` Sebastian Reichel
2015-07-17  9:00     ` Sebastian Reichel
2015-07-17  9:42     ` Peter Meerwald
2015-07-17  9:42       ` Peter Meerwald
2015-07-17  9:42       ` Peter Meerwald
     [not found]       ` <alpine.DEB.2.02.1507171136180.14972-jW+XmwGofnusTnJN9+BGXg@public.gmane.org>
2015-07-20 17:47         ` Adam Lee
2015-07-20 17:47           ` Adam Lee
2015-07-20 17:47           ` Adam Lee
     [not found]           ` <CAFeBWL6ARBReHq8jom3kGu3iOaPib41nOJ3-gx358nYwsGKLfw-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2015-07-20 17:54             ` Jonathan Cameron
2015-07-20 17:54               ` Jonathan Cameron
2015-07-20 17:54               ` Jonathan Cameron
     [not found]               ` <55AD35D1.7000607-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org>
2015-07-20 18:23                 ` Adam Lee
2015-07-20 18:23                   ` Adam Lee
2015-07-20 18:23                   ` Adam Lee

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1437416058-24586-2-git-send-email-adam.yh.lee@gmail.com \
    --to=adam.yh.lee-re5jqeeqqe8avxtiumwx3w@public.gmane.org \
    --cc=jic23-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org \
    --cc=linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org \
    --cc=linux-iio-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
    --cc=linux-omap-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
    --cc=pmeerw-jW+XmwGofnusTnJN9+BGXg@public.gmane.org \
    --cc=sre-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.