From: Santosh Shilimkar <santosh.shilimkar@ti.com>
To: Mugunthan V N <mugunthanvnm@ti.com>
Cc: Daniel Mack <zonque@gmail.com>, <netdev@vger.kernel.org>,
<bcousson@baylibre.com>, <nsekhar@ti.com>,
<sergei.shtylyov@cogentembedded.com>, <davem@davemloft.net>,
<ujhelyi.m@gmail.com>, <vaibhav.bedia@ti.com>, <d-gerlach@ti.com>,
<linux-arm-kernel@lists.infradead.org>,
<linux-omap@vger.kernel.org>, <devicetree@vger.kernel.org>
Subject: Re: [PATCH v4 3/5] net: ethernet: cpsw: introduce ti,am3352-cpsw compatible string
Date: Fri, 23 Aug 2013 13:05:22 -0400 [thread overview]
Message-ID: <52179652.9090704@ti.com> (raw)
In-Reply-To: <521791C1.2060803@ti.com>
On Friday 23 August 2013 12:45 PM, Mugunthan V N wrote:
> On Friday 23 August 2013 07:53 PM, Santosh Shilimkar wrote:
>> On Friday 23 August 2013 10:16 AM, Daniel Mack wrote:
>>> In order to support features that are specific to the AM335x IP, we have
>>> to add hardware types and another compatible string.
>>>
>>> Signed-off-by: Daniel Mack <zonque@gmail.com>
>>> ---
>>> Documentation/devicetree/bindings/net/cpsw.txt | 3 ++-
>>> drivers/net/ethernet/ti/cpsw.c | 32 ++++++++++++++++++++------
>>> drivers/net/ethernet/ti/cpsw.h | 1 +
>>> 3 files changed, 28 insertions(+), 8 deletions(-)
>>>
>>> diff --git a/Documentation/devicetree/bindings/net/cpsw.txt b/Documentation/devicetree/bindings/net/cpsw.txt
>>> index 4e5ca54..b717458 100644
>>> --- a/Documentation/devicetree/bindings/net/cpsw.txt
>>> +++ b/Documentation/devicetree/bindings/net/cpsw.txt
>>> @@ -2,7 +2,8 @@ TI SoC Ethernet Switch Controller Device Tree Bindings
>>> ------------------------------------------------------
>>>
>>> Required properties:
>>> -- compatible : Should be "ti,cpsw"
>>> +- compatible : Should be "ti,cpsw" for generic cpsw support, or
>>> + "ti,am3352-cpsw" for AM3352 SoCs
>>> - reg : physical base address and size of the cpsw
>>> registers map.
>>> An optional third memory region can be supplied if
>>> diff --git a/drivers/net/ethernet/ti/cpsw.c b/drivers/net/ethernet/ti/cpsw.c
>>> index 7a25ff4..73c44cb6 100644
>>> --- a/drivers/net/ethernet/ti/cpsw.c
>>> +++ b/drivers/net/ethernet/ti/cpsw.c
>>> @@ -155,6 +155,11 @@ do { \
>>> ((priv->data.dual_emac) ? priv->emac_port : \
>>> priv->data.active_slave)
>>>
>>> +enum {
>>> + CPSW_TYPE_GENERIC,
>>> + CPSW_TYPE_AM33XX
>>> +};
>>> +
>>> static int debug_level;
>>> module_param(debug_level, int, 0);
>>> MODULE_PARM_DESC(debug_level, "cpsw debug level (NETIF_MSG bits)");
>>> @@ -1692,17 +1697,36 @@ static void cpsw_slave_init(struct cpsw_slave *slave, struct cpsw_priv *priv,
>>> slave->port_vlan = data->dual_emac_res_vlan;
>>> }
>>>
>>> +static const struct of_device_id cpsw_of_mtable[] = {
>>> + {
>>> + .compatible = "ti,am3352-cpsw",
>> I didn't notice this earlier, but can't you use the IP version
>> as a compatible instead of using a SOC name. Whats really SOC specific
>> on this IP ? Sorry i have missed any earlier discussion on this but
>> this approach doesn't seem good. Its like adding SOC checks in the
>> driver subsystem.
>>
>>
> But the same IP can be used in different SoC as well where the control
> register may be different as per the Silicon Integration team's decision?
>
> Ideally there should be a separate control module driver so that it can
> take care of different SoC related needs.
>
Instead of having one control module driver to address all the requirements
in various IP's, you could specifically address that in subsystem driver layer.
SOC guys invariably use control modules for certain functionality since it
is easy and quick fix. And their is uniformity in the way they are
implemented for different IP needs.
In this specific case, if the CPSW IP version has some part of the
functionality implemented using control module that is just harfaware
choice. Its not mandatory to partition that in two sub-system. Rather
consider it as a special IP version and treat it accordingly in the
driver.
Regards,
Santosh
next prev parent reply other threads:[~2013-08-23 17:05 UTC|newest]
Thread overview: 33+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-08-23 14:16 [PATCH v4 0/5] cpsw: support for control module register Daniel Mack
2013-08-23 14:16 ` [PATCH v4 1/5] net: ethernet: cpsw: switch to devres allocations Daniel Mack
2013-08-23 18:10 ` Sergei Shtylyov
2013-08-23 18:34 ` Daniel Mack
2013-08-23 14:16 ` [PATCH v4 2/5] net: ethernet: cpsw: add optional third memory region for CONTROL module Daniel Mack
2013-08-23 14:59 ` Sergei Shtylyov
2013-08-23 16:21 ` Daniel Mack
2013-08-23 17:37 ` Sergei Shtylyov
2013-08-23 14:16 ` [PATCH v4 3/5] net: ethernet: cpsw: introduce ti,am3352-cpsw compatible string Daniel Mack
2013-08-23 14:23 ` Santosh Shilimkar
2013-08-23 15:22 ` Benoit Cousson
2013-08-23 15:54 ` Santosh Shilimkar
2013-08-23 16:30 ` Daniel Mack
2013-08-23 16:56 ` Santosh Shilimkar
2013-08-23 17:09 ` Sekhar Nori
2013-08-23 17:17 ` Daniel Mack
2013-08-23 17:19 ` Santosh Shilimkar
2013-08-23 17:24 ` Daniel Mack
2013-08-23 17:28 ` Santosh Shilimkar
2013-08-23 17:39 ` Sekhar Nori
2013-08-23 18:10 ` Santosh Shilimkar
2013-08-23 18:29 ` Mugunthan V N
2013-08-23 19:54 ` Santosh Shilimkar
2013-08-26 5:59 ` Mugunthan V N
2013-08-26 6:45 ` Sekhar Nori
2013-08-23 17:23 ` Mugunthan V N
2013-08-26 5:22 ` Gupta, Pekon
2013-08-23 16:31 ` Sekhar Nori
2013-08-23 16:45 ` Mugunthan V N
2013-08-23 17:05 ` Santosh Shilimkar [this message]
2013-08-23 14:16 ` [PATCH v4 4/5] net: ethernet: cpsw: add support for hardware interface mode config Daniel Mack
2013-08-23 16:50 ` Mugunthan V N
2013-08-23 14:16 ` [PATCH v4 5/5] ARM: dts: am33xx: adopt to cpsw changes Daniel Mack
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=52179652.9090704@ti.com \
--to=santosh.shilimkar@ti.com \
--cc=bcousson@baylibre.com \
--cc=d-gerlach@ti.com \
--cc=davem@davemloft.net \
--cc=devicetree@vger.kernel.org \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-omap@vger.kernel.org \
--cc=mugunthanvnm@ti.com \
--cc=netdev@vger.kernel.org \
--cc=nsekhar@ti.com \
--cc=sergei.shtylyov@cogentembedded.com \
--cc=ujhelyi.m@gmail.com \
--cc=vaibhav.bedia@ti.com \
--cc=zonque@gmail.com \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).