Re: [PATCH v6 1/2] ARM: dts: twl: Add GPADC data to device tree

2013-07-20 Thread Oleksandr Kozaruk
Hi Sergei,

On Fri, Jul 19, 2013 at 1:18 PM, Sergei Shtylyov
sergei.shtyl...@cogentembedded.com wrote:
 Hello.


 On 07/19/2013 07:40 PM, Grygorii Strashko wrote:

 GPADC is the general purpose ADC present on twl6030.
 The dt data is interrupt used to trigger end of ADC
 conversion.


 Signed-off-by: Oleksandr Kozaruk oleksandr.koza...@ti.com
 ---
   arch/arm/boot/dts/twl6030.dtsi | 6 ++
   1 file changed, 6 insertions(+)


 diff --git a/arch/arm/boot/dts/twl6030.dtsi
 b/arch/arm/boot/dts/twl6030.dtsi
 index 2e3bd31..d7d4c28 100644
 --- a/arch/arm/boot/dts/twl6030.dtsi
 +++ b/arch/arm/boot/dts/twl6030.dtsi
 @@ -103,4 +103,10 @@
   compatible = ti,twl6030-pwmled;
   #pwm-cells = 2;
   };
 +
 +adc: gpadc {


 Read my lips: the node should be called just adc, not gpadc.

 Are you sure?


I didn't know how to express my disappointment from Oleksandr's inability
 to understand what I wanted to convey to him from 2 attempts... first,
How would you comment the following code, v3.10-rc7:

arch/arm/boot/dts/dbx5x0.dtsi, line 375
375  ab8500-gpadc {
376  compatible =
stericsson,ab8500-gpadc;
377  interrupts = 32
IRQ_TYPE_LEVEL_HIGH
arch/arm/boot/dts/dbx5x0.dtsi:  ab8500-gpadc {
arch/arm/boot/dts/dbx5x0.dtsi:
compatible = stericsson,ab8500-gpadc;
arch/arm/boot/dts/dbx5x0.dtsi:
vddadc-supply = ab8500_ldo_tvout_reg;


arch/arm/boot/dts/sama5d3.dtsi: tsadcc: tsadcc@f8018000 {
arch/arm/boot/dts/sama5d3.dtsi: compatible =
atmel,at91sam9x5-tsadcc;
arch/arm/boot/dts/sama5d3.dtsi:
atmel,tsadcc_clock = 30;

arch/arm/boot/dts/am33xx.dtsi:  tscadc: tscadc@44e0d000 {
arch/arm/boot/dts/am33xx.dtsi:  compatible = ti,am3359-tscadc;
arch/arm/boot/dts/am33xx.dtsi:  ti,hwmods = adc_tsc;
arch/arm/boot/dts/am33xx.dtsi:  am335x_adc: adc {
arch/arm/boot/dts/am33xx.dtsi:  compatible =
ti,am3359-adc;

Regards,
Sasha.

 changed the label instead of the node name, then he only dropped twl6030_
 prefix from the name. I should probably have been even more specific before.


 Why? The name was selected according to the documentation on device
 General
 purpose analog-to-digital converter (GPADC).


Sigh, we simply don't care whether this ADC is general-purpose or not.
 The main thing it is ADC.


 PS. Following your logic - GPIO need to renamed to IO everywhere ;P


GPIO is well known and established abbreviation, contrasted to GPADC.
 Moreover, ePAPR spec lists gpio as a generic node name.


 WBR, Sergei

 --
 To unsubscribe from this list: send the line unsubscribe linux-omap in
 the body of a message to majord...@vger.kernel.org
 More majordomo info at  http://vger.kernel.org/majordomo-info.html
--
To unsubscribe from this list: send the line unsubscribe linux-omap in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: Regression 3.11-rc1: omap4panda: no usb and consequently no ethernet

2013-07-20 Thread Luciano Coelho
On Thu, 2013-07-18 at 01:59 -0700, Tony Lindgren wrote:
 * Arend van Spriel ar...@broadcom.com [130718 01:47]:
 Then for the SDIO with device tree, take a look at the following
 patches:
 
 [PATCH 0/3] WLAN support for omap4 when booted with devicetree
 http://comments.gmane.org/gmane.linux.ports.arm.omap/97522#
 
 The wl12xx .dts changes for pandaboard are still missing too.

Just for the record, I already have the DTS patches for wl12xx on Panda
(and a few other boards).

I held them back because I wanted the bindings to be properly defined
first.  I'll continue this work pretty soon, when I come back from my
summer vacations (in a week).

--
Cheers,
Luca.

--
To unsubscribe from this list: send the line unsubscribe linux-omap in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH] Documentation: dt: bindings: TI WiLink modules

2013-07-20 Thread Luciano Coelho
On Thu, 2013-07-18 at 01:58 +0200, Laurent Pinchart wrote:
 Hi Luciano,

Hi Laurent,

 On Monday 01 July 2013 15:39:30 Luciano Coelho wrote:
  The only thing I can come up with is to make a small clock driver (maybe
  even inside the WiLink module itself) that registers a new type of
  clock, ti,wilink-clock or something.  But this would really be
  overkill, wouldn't it?
  
  Any other ideas?
 
 One possibility would be to just call clk_get_rate() on the clock from the 
 WiLink driver, which would return the fixed frequency specified in DT, and 
 configure the WiLink hardware accordingly. This might be a bit hackish though.

The problem is not get the rate itself, the problem is knowing whether
the clock is XTAL or not.  The WiLink chip uses the clock in a slightly
different way if it is XTAL, due to some stabilization time constraints.

--
Luca.

--
To unsubscribe from this list: send the line unsubscribe linux-omap in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [net-next PATCH 1/1] drivers: net: cpsw: add support to show hw stats via ethtool get_regs

2013-07-20 Thread Mugunthan V N
On 7/20/2013 6:02 AM, David Miller wrote:
 From: Mugunthan V N mugunthan...@ti.com
 Date: Fri, 19 Jul 2013 19:37:21 +0530

 Add support to show CPSW hardware statistics to user via ethtool get_regs
 ops so user can find if there were any error reported or the system is
 over loaded duing hagh data rate transfer.

 Signed-off-by: Mugunthan V N mugunthan...@ti.com
 This is not the correct way to provide this functionality.  -get_regs()
 is for dumping the raw hardware registers to userspace for low level
 debugging purposes, not for providing HW specific statistics.

 The correct thing to do is provide an appropriate implementation of
 the -get_strings() and -get_ethtool_stats() methods.
Will change the implementation and resubmit the patch.

Regards
Mugunthan V N
--
To unsubscribe from this list: send the line unsubscribe linux-omap in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH v6 2/2] iio: twl6030-gpadc: TWL6030, TWL6032 GPADC driver

2013-07-20 Thread Jonathan Cameron
On 07/19/2013 10:27 AM, Oleksandr Kozaruk wrote:
 The GPADC is general purpose ADC found on TWL6030, and TWL6032 PMIC,
 known also as Phoenix and PhoenixLite.

 The TWL6030 and TWL6032 have GPADC with 17 and 19 channels
 respectively. Some channels have current source and are used for
 measuring voltage drop on resistive load for detecting battery ID
 resistance, or measuring voltage drop on NTC resistors for external
 temperature measurements. Some channels measure voltage, (i.e. battery
 voltage), and have voltage dividers, thus, capable to scale voltage.
 Some channels are dedicated for measuring die temperature.

 Some channels are calibrated in 2 points, having offsets from ideal
 values kept in trim registers. This is used to correct measurements.

 The differences between GPADC in TWL6030 and TWL6032:
 - 10 bit vs 12 bit ADC;
 - 17 vs 19 channels;
 - channels have different purpose(i.e. battery voltage
   channel 8 vs channel 18);
 - trim values are interpreted differently.

 Based on the driver patched from Balaji TK, Graeme Gregory, Ambresh K,
 Girish S Ghongdemath.

 Signed-off-by: Balaji T K balaj...@ti.com
 Signed-off-by: Graeme Gregory g...@slimlogic.co.uk
 Signed-off-by: Oleksandr Kozaruk oleksandr.koza...@ti.com
A few little bits and bobs inline.

My only major query is about the lack of info for the temperature
channels.  How do you convert these to useful real world units?

Jonathan

 ---
  drivers/iio/adc/Kconfig |  14 +
  drivers/iio/adc/Makefile|   1 +
  drivers/iio/adc/twl6030-gpadc.c | 991 
 
  3 files changed, 1006 insertions(+)
  create mode 100644 drivers/iio/adc/twl6030-gpadc.c

 diff --git a/drivers/iio/adc/Kconfig b/drivers/iio/adc/Kconfig
 index ab0767e6..3172461 100644
 --- a/drivers/iio/adc/Kconfig
 +++ b/drivers/iio/adc/Kconfig
 @@ -150,6 +150,20 @@ config TI_AM335X_ADC
 Say yes here to build support for Texas Instruments ADC
 driver which is also a MFD client.

 +config TWL6030_GPADC
 + tristate TWL6030 GPADC (General Purpose A/D Converter) Support
 + depends on TWL4030_CORE
 + default n
 + help
 +   Say yes here if you want support for the TWL6030/TWL6032 General
 +   Purpose A/D Converter. This will add support for battery type
 +   detection, battery voltage and temperature measurement, die
 +   temperature measurement, system supply voltage, audio accessory,
 +   USB ID detection.
 +
 +   This driver can also be built as a module. If so, the module will be
 +   called twl6030-gpadc.
 +
  config VIPERBOARD_ADC
   tristate Viperboard ADC support
   depends on MFD_VIPERBOARD  USB
 diff --git a/drivers/iio/adc/Makefile b/drivers/iio/adc/Makefile
 index 0a825be..996ba09 100644
 --- a/drivers/iio/adc/Makefile
 +++ b/drivers/iio/adc/Makefile
 @@ -16,4 +16,5 @@ obj-$(CONFIG_LP8788_ADC) += lp8788_adc.o
  obj-$(CONFIG_MAX1363) += max1363.o
  obj-$(CONFIG_TI_ADC081C) += ti-adc081c.o
  obj-$(CONFIG_TI_AM335X_ADC) += ti_am335x_adc.o
 +obj-$(CONFIG_TWL6030_GPADC) += twl6030-gpadc.o
  obj-$(CONFIG_VIPERBOARD_ADC) += viperboard_adc.o
 diff --git a/drivers/iio/adc/twl6030-gpadc.c b/drivers/iio/adc/twl6030-gpadc.c
 new file mode 100644
 index 000..b42cfd6
 --- /dev/null
 +++ b/drivers/iio/adc/twl6030-gpadc.c
 @@ -0,0 +1,991 @@
 +/*
 + * TWL6030 GPADC module driver
 + *
 + * Copyright (C) 2009-2013 Texas Instruments Inc.
 + * Nishant Kamat nska...@ti.com
 + * Balaji T K balaj...@ti.com
 + * Graeme Gregory g...@slimlogic.co.uk
 + * Girish S Ghongdemath giris...@ti.com
 + * Ambresh K ambr...@ti.com
 + * Oleksandr Kozaruk oleksandr.koza...@ti.com
 + *
 + * Based on twl4030-madc.c
 + * Copyright (C) 2008 Nokia Corporation
 + * Mikko Ylinen mikko.k.yli...@nokia.com
 + *
 + * This program is free software; you can redistribute it and/or
 + * modify it under the terms of the GNU General Public License
 + * version 2 as published by the Free Software Foundation.
 + *
 + * This program is distributed in the hope that it will be useful, but
 + * WITHOUT ANY WARRANTY; without even the implied warranty of
 + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 + * General Public License for more details.
 + *
 + * You should have received a copy of the GNU General Public License
 + * along with this program; if not, write to the Free Software
 + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
 + * 02110-1301 USA
 + *
 + */
 +#include linux/init.h
 +#include linux/interrupt.h
 +#include linux/kernel.h
 +#include linux/module.h
 +#include linux/platform_device.h
 +#include linux/of_platform.h
 +#include linux/i2c/twl.h
 +#include linux/iio/iio.h
 +#include linux/iio/sysfs.h
 +
 +#define DRIVER_NAME  twl6030_gpadc
 +
 +#define TWL6030_GPADC_MAX_CHANNELS 17
 +#define TWL6032_GPADC_MAX_CHANNELS 19
 +
 +#define TWL6030_GPADC_CTRL_P10x05
 +
 +#define TWL6032_GPADC_GPSELECT_ISB   0x07
 +#define 

Re: mcbsp.1 slave clkx ext problem

2013-07-20 Thread Michael Trimarchi
Hi Peter

On Fri, Jul 19, 2013 at 05:29:44PM +0200, Michael Trimarchi wrote:
 Hi
 
 On 07/19/2013 03:33 PM, Michael Trimarchi wrote:
  Hi
  
  I'm trying to understand what is wrong here with this small
  driver.
  
  /* McBSP1 */
  OMAP4_MUX(ABE_MCBSP1_CLKX, OMAP_MUX_MODE0 | OMAP_PIN_INPUT),
  OMAP4_MUX(ABE_MCBSP1_DR, OMAP_MUX_MODE0 | OMAP_PIN_INPUT_PULLDOWN),
  OMAP4_MUX(ABE_MCBSP1_DX, OMAP_MUX_MODE0 | OMAP_PIN_OUTPUT |
OMAP_PULL_ENA),
  OMAP4_MUX(ABE_MCBSP1_FSX, OMAP_MUX_MODE0 | OMAP_PIN_INPUT),
  
  kernel 3.8.0
  
 
 I have fixed my problem ;). I will send a description about it
 
 Michael
 

I will prepare a proper patch. But OMAP supports (both omap3/omap4) the
SND_SOC_DAIFMT_CBM_CFS format in this way. I have already tested it on
my devkit platform

diff --git a/sound/soc/omap/omap-mcbsp.c b/sound/soc/omap/omap-mcbsp.c
index 8d2defd..85dd415 100644
--- a/sound/soc/omap/omap-mcbsp.c
+++ b/sound/soc/omap/omap-mcbsp.c
@@ -435,6 +435,11 @@ static int omap_mcbsp_dai_set_dai_fmt(struct snd_soc_dai 
*cpu_dai,
/* Sample rate generator drives the FS */
regs-srgr2 |= FSGM;
break;
+   case SND_SOC_DAIFMT_CBM_CFS:
+   /* McBSP slave. FS clock as output */
+   regs-srgr2 |= FSGM;
+   regs-pcr0  |= FSXM;
+   break;
case SND_SOC_DAIFMT_CBM_CFM:
/* McBSP slave */
break;


Best regards
Michael

  [  107.276702] omap-mcbsp omap-mcbsp.1: Configuring McBSP1  phys_base: 
  0x40122000
  [  107.283691] omap-mcbsp omap-mcbsp.1:  McBSP1 regs 
  [  107.283721] omap-mcbsp omap-mcbsp.1: DRR2:  0x88260a09
  [  107.283721] omap-mcbsp omap-mcbsp.1: DRR1:  0x
  [  107.283752] omap-mcbsp omap-mcbsp.1: DXR2:  0x
  [  107.283752] omap-mcbsp omap-mcbsp.1: DXR1:  0x
  [  107.283752] omap-mcbsp omap-mcbsp.1: SPCR2: 0x0233
  [  107.283782] omap-mcbsp omap-mcbsp.1: SPCR1: 0x0030
  [  107.283782] omap-mcbsp omap-mcbsp.1: RCR2:  0x80a1
  [  107.283813] omap-mcbsp omap-mcbsp.1: RCR1:  0x00a0
  [  107.283813] omap-mcbsp omap-mcbsp.1: XCR2:  0x80a1
  [  107.283813] omap-mcbsp omap-mcbsp.1: XCR1:  0x00a0
  [  107.283843] omap-mcbsp omap-mcbsp.1: SRGR2: 0x203f
  [  107.283843] omap-mcbsp omap-mcbsp.1: SRGR1: 0x1f00
  [  107.283843] omap-mcbsp omap-mcbsp.1: PCR0:  0x008f
  [  107.283874] omap-mcbsp omap-mcbsp.1: ***
  [  119.926177] omap-dma-engine omap-dma-engine: freeing channel for 33
  
  Well basically it doesn't start the transfer. The clock is provided
  using the clkx pin. clkx is rate * channel * bitsxword and come from
  the codec. 
  
  What is wrong? (I know that how I register the card is deprecated)
  
  Regards Michael
  
  /*
   * dacmax.c  --  SoC audio for pandaboard demokit
   *
   * Author: Michael Trimarchi mich...@amarulasolutions.com
   *
   * Based on:
   * Author: Misael Lopez Cruz x0052...@ti.com
   *
   * This program is free software; you can redistribute it and/or
   * modify it under the terms of the GNU General Public License
   * version 2 as published by the Free Software Foundation.
   *
   * This program is distributed in the hope that it will be useful, but
   * WITHOUT ANY WARRANTY; without even the implied warranty of
   * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
   * General Public License for more details.
   *
   * You should have received a copy of the GNU General Public License
   * along with this program; if not, write to the Free Software
   * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
   * 02110-1301 USA
   *
   */
  
  #include linux/clk.h
  #include linux/platform_device.h
  #include sound/core.h
  #include sound/pcm.h
  #include sound/pcm_params.h
  #include sound/soc.h
  
  #include asm/mach-types.h
  #include linux/gpio.h
  #include linux/platform_data/asoc-ti-mcbsp.h
  
  #include linux/module.h
  #include omap-mcbsp.h
  
  static struct snd_soc_card snd_soc_dacmax;
  
  static int dacmax_hw_params(struct snd_pcm_substream *substream,
  struct snd_pcm_hw_params *params)
  {
  int ret;
  struct snd_soc_pcm_runtime *rtd = substream-private_data;
  struct snd_soc_dai *cpu_dai = rtd-cpu_dai;
  
  pr_info(%s: setting the params\n, __func__);
  
  ret = snd_soc_dai_set_sysclk(cpu_dai, OMAP_MCBSP_SYSCLK_CLKX_EXT, 0,
  SND_SOC_CLOCK_IN);
  if (ret  0) {
  printk(KERN_ERR can't set CPU system clock  \
  OMAP_MCBSP_CLKR_SRC_CLKX\n);
  }
  
  return 0;
  }
  
  static struct snd_soc_ops dacmax_ops = {
  .hw_params = dacmax_hw_params,
  };
  
  static int dacmax_init(struct snd_soc_pcm_runtime *rtd)
  {
  pr_info(%s: INIT\n, __func__);
  return 0;
  }
  
  /* Digital audio interface glue - connects codec -- CPU */
  static struct snd_soc_dai_link dacmax_dai = {
  .name = DACMAX-I2S,
  .stream_name = DACMAX-Audio,
  .cpu_dai_name = 

Re: [PATCH] GPIO: gpio-twl6040: Remove support for legacy (pdata) mode

2013-07-20 Thread Linus Walleij
On Fri, Jul 12, 2013 at 1:30 PM, Peter Ujfalusi peter.ujfal...@ti.com wrote:

 TWL6040 is used only with OMAP4/5 SoCs and they can only boot in in DT mode.
 The support for pdata/legacy boot can be removed.

 Signed-off-by: Peter Ujfalusi peter.ujfal...@ti.com

OK patch applied.

Yours,
Linus Walleij
--
To unsubscribe from this list: send the line unsubscribe linux-omap in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: Need help for DT GPIO probing

2013-07-20 Thread Linus Walleij
On Fri, Jul 12, 2013 at 4:05 PM, Soumya Sutar soumyasu...@gmail.com wrote:

 Hi Linus,

 I am facing DT GPIO probing problem same as below link.
 http://us.generation-nt.com/answer/gpio-crashed-when-not-using-help-208346861.html

 Could you know any patch is available for this issues or still we need to
 use gpio_request() in driver.

Please ask questions like this on the mailing lists and include
the OMAP GPIO maintainers (Santosh  Kevin).

And the answer is yes, all GPIO lines you are using need to
be requested by the driver.

Yours,
Linus Walleij
--
To unsubscribe from this list: send the line unsubscribe linux-omap in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH 01/15] drivers: phy: add generic PHY framework

2013-07-20 Thread Greg KH
On Sat, Jul 20, 2013 at 08:49:32AM +0530, Kishon Vijay Abraham I wrote:
 Hi,
 
 On Saturday 20 July 2013 05:20 AM, Greg KH wrote:
 On Fri, Jul 19, 2013 at 12:06:01PM +0530, Kishon Vijay Abraham I wrote:
 Hi,
 
 On Friday 19 July 2013 11:59 AM, Greg KH wrote:
 On Fri, Jul 19, 2013 at 11:25:44AM +0530, Kishon Vijay Abraham I wrote:
 Hi,
 
 On Friday 19 July 2013 11:13 AM, Greg KH wrote:
 On Fri, Jul 19, 2013 at 11:07:10AM +0530, Kishon Vijay Abraham I wrote:
 +   ret = dev_set_name(phy-dev, %s.%d, dev_name(dev), id);
 
 Your naming is odd, no phy anywhere in it?  You rely on the sender 
 to
 never send a duplicate name.id pair?  Why not create your own ids 
 based
 on the number of phys in the system, like almost all other classes 
 and
 subsystems do?
 
 hmm.. some PHY drivers use the id they provide to perform some of 
 their
 internal operation as in [1] (This is used only if a single PHY 
 provider
 implements multiple PHYS). Probably I'll add an option like 
 PLATFORM_DEVID_AUTO
 to give the PHY drivers an option to use auto id.
 
 [1] -
 http://archive.arm.linux.org.uk/lurker/message/20130628.134308.4a8f7668.ca.html
 
 No, who cares about the id?  No one outside of the phy core ever 
 should,
 because you pass back the only pointer that they really do care about,
 if they need to do anything with the device.  Use that, and then you 
 can
 
 hmm.. ok.
 
 rip out all of the search for a phy by a string logic, as that's not
 
 Actually this is needed for non-dt boot case. In the case of dt boot, 
 we use a
 phandle by which the controller can get a reference to the phy. But in 
 the case
 of non-dt boot, the controller can get a reference to the phy only by 
 label.
 
 I don't understand.  They registered the phy, and got back a pointer to
 it.  Why can't they save it in their local structure to use it again
 later if needed?  They should never have to ask for the device, as the
 
 One is a *PHY provider* driver which is a driver for some PHY device. 
 This will
 use phy_create to create the phy.
 The other is a *PHY consumer* driver which might be any controller driver 
 (can
 be USB/SATA/PCIE). The PHY consumer will use phy_get to get a reference 
 to the
 phy (by *phandle* in the case of dt boot and *label* in the case of 
 non-dt boot).
 device id might be unknown if there are multiple devices in the system.
 
 I agree with you on the device id part. That need not be known to the PHY 
 driver.
 
 How does a consumer know which label to use in a non-dt system if
 there are multiple PHYs in the system?
 
 That should be passed using platform data.
 
 Ick, don't pass strings around, pass pointers.  If you have platform
 data you can get to, then put the pointer there, don't use a name.
 
 I don't think I understood you here :-s We wont have phy pointer
 when we create the device for the controller no?(it'll be done in
 board file). Probably I'm missing something.

Why will you not have that pointer?  You can't rely on the name as the
device id will not match up, so you should be able to rely on the
pointer being in the structure that the board sets up, right?

Don't use names, especially as ids can, and will, change, that is going
to cause big problems.  Use pointers, this is C, we are supposed to be
doing that :)

thanks,

greg k-h
--
To unsubscribe from this list: send the line unsubscribe linux-omap in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH 01/15] drivers: phy: add generic PHY framework

2013-07-20 Thread Alan Stern
On Sat, 20 Jul 2013, Greg KH wrote:

  That should be passed using platform data.
  
  Ick, don't pass strings around, pass pointers.  If you have platform
  data you can get to, then put the pointer there, don't use a name.
  
  I don't think I understood you here :-s We wont have phy pointer
  when we create the device for the controller no?(it'll be done in
  board file). Probably I'm missing something.
 
 Why will you not have that pointer?  You can't rely on the name as the
 device id will not match up, so you should be able to rely on the
 pointer being in the structure that the board sets up, right?
 
 Don't use names, especially as ids can, and will, change, that is going
 to cause big problems.  Use pointers, this is C, we are supposed to be
 doing that :)

Kishon, I think what Greg means is this:  The name you are using must
be stored somewhere in a data structure constructed by the board file,
right?  Or at least, associated with some data structure somehow.  
Otherwise the platform code wouldn't know which PHY hardware
corresponded to a particular name.

Greg's suggestion is that you store the address of that data structure 
in the platform data instead of storing the name string.  Have the 
consumer pass the data structure's address when it calls phy_create, 
instead of passing the name.  Then you don't have to worry about two 
PHYs accidentally ending up with the same name or any other similar 
problems.

Alan Stern

--
To unsubscribe from this list: send the line unsubscribe linux-omap in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH 01/15] drivers: phy: add generic PHY framework

2013-07-20 Thread Greg KH
On Sat, Jul 20, 2013 at 10:32:26PM -0400, Alan Stern wrote:
 On Sat, 20 Jul 2013, Greg KH wrote:
 
   That should be passed using platform data.
   
   Ick, don't pass strings around, pass pointers.  If you have platform
   data you can get to, then put the pointer there, don't use a name.
   
   I don't think I understood you here :-s We wont have phy pointer
   when we create the device for the controller no?(it'll be done in
   board file). Probably I'm missing something.
  
  Why will you not have that pointer?  You can't rely on the name as the
  device id will not match up, so you should be able to rely on the
  pointer being in the structure that the board sets up, right?
  
  Don't use names, especially as ids can, and will, change, that is going
  to cause big problems.  Use pointers, this is C, we are supposed to be
  doing that :)
 
 Kishon, I think what Greg means is this:  The name you are using must
 be stored somewhere in a data structure constructed by the board file,
 right?  Or at least, associated with some data structure somehow.  
 Otherwise the platform code wouldn't know which PHY hardware
 corresponded to a particular name.
 
 Greg's suggestion is that you store the address of that data structure 
 in the platform data instead of storing the name string.  Have the 
 consumer pass the data structure's address when it calls phy_create, 
 instead of passing the name.  Then you don't have to worry about two 
 PHYs accidentally ending up with the same name or any other similar 
 problems.

Close, but the issue is that whatever returns from phy_create() should
then be used, no need to call any find functions, as you can just use
the pointer that phy_create() returns.  Much like all other class api
functions in the kernel work.

thanks,

greg k-h
--
To unsubscribe from this list: send the line unsubscribe linux-omap in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: Need help for DT GPIO probing

2013-07-20 Thread Javier Martinez Canillas
Hi Soumya

On Saturday, July 20, 2013, Linus Walleij wrote:

 On Fri, Jul 12, 2013 at 4:05 PM, Soumya Sutar soumyasu...@gmail.com wrote:

  Hi Linus,
 
  I am facing DT GPIO probing problem same as below link.
  http://us.generation-nt.com/answer/gpio-crashed-when-not-using-help-208346861.html
 
  Could you know any patch is available for this issues or still we need to
  use gpio_request() in driver.


Yes, Linus W has already queued some patches for gpio-omap on the
for-next branch of his linux-gpio tree [1] that solves this issue.

Take a look to commit b4419e1a (gpio/omap: auto request GPIO as input
if used as IRQ via DT) although this patch depends on others so you
should merge the whole branch to make it work.

Linus, are you still planing to send this patches as fixes for the
v3.11 -rc cycle or did you decide to wait for v3.12?


 Please ask questions like this on the mailing lists and include
 the OMAP GPIO maintainers (Santosh  Kevin).

 And the answer is yes, all GPIO lines you are using need to
 be requested by the driver.

 Yours,
 Linus Walleij
 --

Thanks a lot and best regards,
Javier

[1]:  
https://git.kernel.org/cgit/linux/kernel/git/linusw/linux-gpio.git/log/?h=for-next
--
To unsubscribe from this list: send the line unsubscribe linux-omap in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html