All of lore.kernel.org
 help / color / mirror / Atom feed
From: Mugunthan V N <mugunthanvnm@ti.com>
To: u-boot@lists.denx.de
Subject: [U-Boot] [PATCH v3 01/12] drivers: core: device: add support to check dt compatible for a device/machine
Date: Tue, 3 May 2016 21:06:20 +0530	[thread overview]
Message-ID: <5728C574.2050009@ti.com> (raw)
In-Reply-To: <CAPnjgZ2gE00oVQAGHLpLa_wzEzkmECSud=f6d4ji+f5HdrtE_w@mail.gmail.com>

On Monday 02 May 2016 12:24 AM, Simon Glass wrote:
> Hi Mugunthan,
> 
> On 28 April 2016 at 04:06, Mugunthan V N <mugunthanvnm@ti.com> wrote:
>> Provide an api to check whether the given device or machine is
>> compatible with the given compat string which helps in making
>> decisions in drivers based on device or machine compatible.
>>
>> Idea taken from Linux.
>>
>> Signed-off-by: Mugunthan V N <mugunthanvnm@ti.com>
>> Reviewed-by: Joe Hershberger <joe.hershberger@ni.com>
>> ---
>>  drivers/core/device.c | 14 ++++++++++++++
>>  include/dm/device.h   | 23 +++++++++++++++++++++++
>>  2 files changed, 37 insertions(+)
>>
>> diff --git a/drivers/core/device.c b/drivers/core/device.c
>> index 1322991..8fdd193 100644
>> --- a/drivers/core/device.c
>> +++ b/drivers/core/device.c
>> @@ -715,3 +715,17 @@ int device_set_name(struct udevice *dev, const char *name)
>>
>>         return 0;
>>  }
>> +
>> +bool of_device_is_compatible(struct udevice *dev, const char *compat)
> 
> This function is in device.h, so I think device_is_compatible() is a
> better name. Where does compat come from? Is it another device, or
> something else entirely?

I have used the funtion names as is from the kernel so that porting
kernel driver to U-boot will be easier.

The compat comes from the driver which uses the API, compat is the
device compatible string like "ti,am3517-emac"

> 
>> +{
>> +       const void *fdt = gd->fdt_blob;
>> +
>> +       return !fdt_node_check_compatible(fdt, dev->of_offset, compat);
>> +}
>> +
>> +bool of_machine_is_compatible(const char *compat)
> 
> This should go in fdtdec.h I think. It doesn't have anything to do
> with devices. So fdtdec_machine_is_compatible().

I have used the funtion names as is from the kernel so that porting
kernel driver to U-boot will be easier.

> 
>> +{
>> +       const void *fdt = gd->fdt_blob;
>> +
>> +       return !fdt_node_check_compatible(fdt, 0, compat);
>> +}
>> diff --git a/include/dm/device.h b/include/dm/device.h
>> index 8970fc0..cd18e82 100644
>> --- a/include/dm/device.h
>> +++ b/include/dm/device.h
>> @@ -532,6 +532,29 @@ bool device_is_last_sibling(struct udevice *dev);
>>  int device_set_name(struct udevice *dev, const char *name);
>>
>>  /**
>> + * of_device_is_compatible() - check if the device is compatible with the compat
>> + *
>> + * This allows to check whether the device is comaptible with the compat.
>> + *
>> + * @dev:       udevice pointer for which compatible needs to be verified.
>> + * @compat:    Compatible string which needs to verified in the given
>> + *             device
>> + * @return true if OK, false if the compatible is not found
> 
> Does this mean false if @compat is not found in the device's
> compatible string list? Can you beef up the comment a bit to be
> specific?

Yes, return true if compatible is found. Will modify like below.

@return true if the compatible is found, false if the compatible is not
found

> 
>> + */
>> +bool of_device_is_compatible(struct udevice *dev, const char *compat);
>> +
>> +/**
>> + * of_machine_is_compatible() - check if the machine is compatible with
>> + *                             the compat
>> + *
>> + * This allows to check whether the machine is comaptible with the compat.
> 
> Again can you beef up the comment? What is machine? Where does it actually look?
> 

Will do.

>> + *
>> + * @compat:    Compatible string which needs to verified
>> + * @return true if OK, false if the compatible is not found
>> + */
>> +bool of_machine_is_compatible(const char *compat);
>> +
>> +/**
>>   * device_is_on_pci_bus - Test if a device is on a PCI bus
>>   *
>>   * @dev:       device to test
>> --
>> 2.8.1.339.g3ad15fd
>>
> 

Regards
Mugunthan V N

  reply	other threads:[~2016-05-03 15:36 UTC|newest]

Thread overview: 28+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-04-28 10:06 [U-Boot] [PATCH v3 00/12] cpsw: enable DM_ETH on dra74 and am437x evms Mugunthan V N
2016-04-28 10:06 ` [U-Boot] [PATCH v3 01/12] drivers: core: device: add support to check dt compatible for a device/machine Mugunthan V N
2016-05-01 18:54   ` Simon Glass
2016-05-03 15:36     ` Mugunthan V N [this message]
2016-05-03 20:58       ` Simon Glass
2016-05-03 20:17   ` [U-Boot] " Joe Hershberger
2016-04-28 10:06 ` [U-Boot] [PATCH v3 02/12] ti_omap5_common: eth: do not define DM_ETH for spl Mugunthan V N
2016-05-03 20:17   ` [U-Boot] " Joe Hershberger
2016-04-28 10:06 ` [U-Boot] [PATCH v3 03/12] drivers: net: cpsw: fix cpsw dp parse when num slaves as 1 Mugunthan V N
2016-05-03 20:17   ` [U-Boot] " Joe Hershberger
2016-04-28 10:06 ` [U-Boot] [PATCH v3 04/12] ARM: omap5: add platform specific ethernet phy modes configurations Mugunthan V N
2016-05-03 20:17   ` [U-Boot] " Joe Hershberger
2016-04-28 10:06 ` [U-Boot] [PATCH v3 05/12] drivers: net: cpsw: fix get mdio base and gmii_sel reg from DT Mugunthan V N
2016-05-03 20:17   ` [U-Boot] " Joe Hershberger
2016-04-28 10:06 ` [U-Boot] [PATCH v3 06/12] drivers: net: cpsw: add support for reading mac address from efuse Mugunthan V N
2016-05-03 20:17   ` [U-Boot] " Joe Hershberger
2016-04-28 10:06 ` [U-Boot] [PATCH v3 07/12] arm: dts: am4372: add syscon node to cpsw to read mac address Mugunthan V N
2016-05-03 20:17   ` [U-Boot] " Joe Hershberger
2016-04-28 10:06 ` [U-Boot] [PATCH v3 08/12] arm: dts: dra7: " Mugunthan V N
2016-05-03 20:17   ` [U-Boot] " Joe Hershberger
2016-04-28 10:06 ` [U-Boot] [PATCH v3 09/12] arm: dts: dra7: fix ethernet name with proper device address Mugunthan V N
2016-05-03 20:17   ` [U-Boot] " Joe Hershberger
2016-04-28 10:06 ` [U-Boot] [PATCH v3 10/12] defconfig: am437x_gp_evm: enable eth driver model Mugunthan V N
2016-05-03 20:17   ` [U-Boot] " Joe Hershberger
2016-04-28 10:06 ` [U-Boot] [PATCH v3 11/12] defconfig: am437x_sk_evm: " Mugunthan V N
2016-05-03 20:17   ` [U-Boot] " Joe Hershberger
2016-04-28 10:06 ` [U-Boot] [PATCH v3 12/12] defconfig: dra74_evm: " Mugunthan V N
2016-05-03 20:17   ` [U-Boot] " Joe Hershberger

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=5728C574.2050009@ti.com \
    --to=mugunthanvnm@ti.com \
    --cc=u-boot@lists.denx.de \
    /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.