From: Heikki Krogerus <heikki.krogerus@linux.intel.com>
To: Li Jun <jun.li@nxp.com>
Cc: gregkh@linuxfoundation.org, robh+dt@kernel.org,
linux@roeck-us.net, a.hajda@samsung.com, mark.rutland@arm.com,
yueyao@google.com, peter.chen@nxp.com, garsilva@embeddedor.com,
o_leveque@orange.fr, shufan_lee@richtek.com,
linux-usb@vger.kernel.org, devicetree@vger.kernel.org,
linux-imx@nxp.com
Subject: [v2,03/12] staging: typec: tcpci: support port config passed via dt
Date: Mon, 26 Feb 2018 16:06:04 +0200 [thread overview]
Message-ID: <20180226140604.GD25535@kuha.fi.intel.com> (raw)
Hi,
On Mon, Feb 26, 2018 at 07:49:10PM +0800, Li Jun wrote:
> User can define the typec port properties in tcpci node to setup
> the port config.
>
> Signed-off-by: Li Jun <jun.li@nxp.com>
> ---
> Changes for v2:
> - Use infra APIs to get sink and source config.
> - Improve the error message.
>
> drivers/staging/typec/tcpci.c | 70 ++++++++++++++++++++++++++++++++++++++-----
> include/linux/usb/tcpm.h | 6 ++--
> 2 files changed, 66 insertions(+), 10 deletions(-)
>
> diff --git a/drivers/staging/typec/tcpci.c b/drivers/staging/typec/tcpci.c
> index b6abaf7..be6ed16 100644
> --- a/drivers/staging/typec/tcpci.c
> +++ b/drivers/staging/typec/tcpci.c
> @@ -426,17 +426,73 @@ static const struct regmap_config tcpci_regmap_config = {
> .max_register = 0x7F, /* 0x80 .. 0xFF are vendor defined */
> };
>
> -static const struct tcpc_config tcpci_tcpc_config = {
> - .type = TYPEC_PORT_DFP,
> - .default_role = TYPEC_SINK,
> -};
> -
> +/* Populate struct tcpc_config from device-tree */
> static int tcpci_parse_config(struct tcpci *tcpci)
> {
> + struct tcpc_config *tcfg;
> + struct device_node *child;
> + int ret = -EINVAL;
> +
> tcpci->controls_vbus = true; /* XXX */
>
> - /* TODO: Populate struct tcpc_config from ACPI/device-tree */
> - tcpci->tcpc.config = &tcpci_tcpc_config;
> + tcpci->tcpc.config = devm_kzalloc(tcpci->dev, sizeof(*tcfg),
> + GFP_KERNEL);
> + if (!tcpci->tcpc.config)
> + return -ENOMEM;
> +
> + tcfg = tcpci->tcpc.config;
> +
> + child = of_get_child_by_name(tcpci->dev->of_node, "connector");
> + if (!child) {
> + dev_err(tcpci->dev, "failed to get connector node.\n");
> + return -EINVAL;
> + }
Why do you need separate child node for the connector? You will always
have only one connector per tcpc, i.e. the tcpci already represents the
connector and all its capabilities.
Thanks,
WARNING: multiple messages have this Message-ID (diff)
From: Heikki Krogerus <heikki.krogerus@linux.intel.com>
To: Li Jun <jun.li@nxp.com>
Cc: gregkh@linuxfoundation.org, robh+dt@kernel.org,
linux@roeck-us.net, a.hajda@samsung.com, mark.rutland@arm.com,
yueyao@google.com, peter.chen@nxp.com, garsilva@embeddedor.com,
o_leveque@orange.fr, shufan_lee@richtek.com,
linux-usb@vger.kernel.org, devicetree@vger.kernel.org,
linux-imx@nxp.com
Subject: Re: [PATCH v2 03/12] staging: typec: tcpci: support port config passed via dt
Date: Mon, 26 Feb 2018 16:06:04 +0200 [thread overview]
Message-ID: <20180226140604.GD25535@kuha.fi.intel.com> (raw)
In-Reply-To: <1519645759-12701-4-git-send-email-jun.li@nxp.com>
Hi,
On Mon, Feb 26, 2018 at 07:49:10PM +0800, Li Jun wrote:
> User can define the typec port properties in tcpci node to setup
> the port config.
>
> Signed-off-by: Li Jun <jun.li@nxp.com>
> ---
> Changes for v2:
> - Use infra APIs to get sink and source config.
> - Improve the error message.
>
> drivers/staging/typec/tcpci.c | 70 ++++++++++++++++++++++++++++++++++++++-----
> include/linux/usb/tcpm.h | 6 ++--
> 2 files changed, 66 insertions(+), 10 deletions(-)
>
> diff --git a/drivers/staging/typec/tcpci.c b/drivers/staging/typec/tcpci.c
> index b6abaf7..be6ed16 100644
> --- a/drivers/staging/typec/tcpci.c
> +++ b/drivers/staging/typec/tcpci.c
> @@ -426,17 +426,73 @@ static const struct regmap_config tcpci_regmap_config = {
> .max_register = 0x7F, /* 0x80 .. 0xFF are vendor defined */
> };
>
> -static const struct tcpc_config tcpci_tcpc_config = {
> - .type = TYPEC_PORT_DFP,
> - .default_role = TYPEC_SINK,
> -};
> -
> +/* Populate struct tcpc_config from device-tree */
> static int tcpci_parse_config(struct tcpci *tcpci)
> {
> + struct tcpc_config *tcfg;
> + struct device_node *child;
> + int ret = -EINVAL;
> +
> tcpci->controls_vbus = true; /* XXX */
>
> - /* TODO: Populate struct tcpc_config from ACPI/device-tree */
> - tcpci->tcpc.config = &tcpci_tcpc_config;
> + tcpci->tcpc.config = devm_kzalloc(tcpci->dev, sizeof(*tcfg),
> + GFP_KERNEL);
> + if (!tcpci->tcpc.config)
> + return -ENOMEM;
> +
> + tcfg = tcpci->tcpc.config;
> +
> + child = of_get_child_by_name(tcpci->dev->of_node, "connector");
> + if (!child) {
> + dev_err(tcpci->dev, "failed to get connector node.\n");
> + return -EINVAL;
> + }
Why do you need separate child node for the connector? You will always
have only one connector per tcpc, i.e. the tcpci already represents the
connector and all its capabilities.
Thanks,
--
heikki
next reply other threads:[~2018-02-26 14:06 UTC|newest]
Thread overview: 77+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-02-26 14:06 Heikki Krogerus [this message]
2018-02-26 14:06 ` [PATCH v2 03/12] staging: typec: tcpci: support port config passed via dt Heikki Krogerus
-- strict thread matches above, loose matches on Subject: below --
2018-03-09 7:34 [v2,10/12] dt-bindings: connector: add properties for typec power delivery Heikki Krogerus
2018-03-09 7:34 ` [PATCH v2 10/12] " Heikki Krogerus
2018-03-08 1:41 [v2,10/12] " Jun Li
2018-03-08 1:41 ` [PATCH v2 10/12] " Jun Li
2018-03-06 12:02 [v2,10/12] " Heikki Krogerus
2018-03-06 12:02 ` [PATCH v2 10/12] " Heikki Krogerus
2018-03-06 11:54 [v2,10/12] " Andrzej Hajda
2018-03-06 11:54 ` [PATCH v2 10/12] " Andrzej Hajda
2018-03-06 9:38 [v2,10/12] " Jun Li
2018-03-06 9:38 ` [PATCH v2 10/12] " Jun Li
2018-03-05 12:38 [v2,03/12] staging: typec: tcpci: support port config passed via dt Jun Li
2018-03-05 12:38 ` [PATCH v2 03/12] " Jun Li
2018-03-05 12:25 [v2,10/12] dt-bindings: connector: add properties for typec power delivery Jun Li
2018-03-05 12:25 ` [PATCH v2 10/12] " Jun Li
2018-03-05 11:30 [v2,03/12] staging: typec: tcpci: support port config passed via dt Heikki Krogerus
2018-03-05 11:30 ` [PATCH v2 03/12] " Heikki Krogerus
2018-03-05 10:35 [v2,03/12] " Jun Li
2018-03-05 10:35 ` [PATCH v2 03/12] " Jun Li
2018-03-05 9:59 [v2,10/12] dt-bindings: connector: add properties for typec power delivery Andrzej Hajda
2018-03-05 9:59 ` [PATCH v2 10/12] " Andrzej Hajda
2018-03-05 9:53 [v2,03/12] staging: typec: tcpci: support port config passed via dt Heikki Krogerus
2018-03-05 9:53 ` [PATCH v2 03/12] " Heikki Krogerus
2018-03-05 8:53 [v2,03/12] " Jun Li
2018-03-05 8:53 ` [PATCH v2 03/12] " Jun Li
2018-03-05 8:40 [v2,02/12] usb: typec: add API to get sink and source config Jun Li
2018-03-05 8:40 ` [PATCH v2 02/12] " Jun Li
2018-03-05 7:54 [v2,01/12] usb: typec: add API to get port type and preferred role Jun Li
2018-03-05 7:54 ` [PATCH v2 01/12] " Jun Li
2018-03-05 7:52 [v2,10/12] dt-bindings: connector: add properties for typec power delivery Jun Li
2018-03-05 7:52 ` [PATCH v2 10/12] " Jun Li
2018-03-05 7:07 [v2,10/12] " Jun Li
2018-03-05 7:07 ` [PATCH v2 10/12] " Jun Li
2018-03-05 7:00 [v2,10/12] " Jun Li
2018-03-05 7:00 ` [PATCH v2 10/12] " Jun Li
2018-03-02 22:56 [v2,11/12] dt-bindings: usb: add documentation for typec port controller(TCPCI) Rob Herring
2018-03-02 22:56 ` [PATCH v2 11/12] " Rob Herring
2018-03-02 22:38 [v2,10/12] dt-bindings: connector: add properties for typec power delivery Rob Herring
2018-03-02 22:38 ` [PATCH v2 10/12] " Rob Herring
2018-03-02 22:29 [v2,10/12] " Rob Herring
2018-03-02 22:29 ` [PATCH v2 10/12] " Rob Herring
2018-02-27 11:03 [v2,03/12] staging: typec: tcpci: support port config passed via dt Heikki Krogerus
2018-02-27 11:03 ` [PATCH v2 03/12] " Heikki Krogerus
2018-02-27 8:41 [v2,10/12] dt-bindings: connector: add properties for typec power delivery Andrzej Hajda
2018-02-27 8:41 ` [PATCH v2 10/12] " Andrzej Hajda
2018-02-26 14:30 [v2,03/12] staging: typec: tcpci: support port config passed via dt Jun Li
2018-02-26 14:30 ` [PATCH v2 03/12] " Jun Li
2018-02-26 13:32 [v2,02/12] usb: typec: add API to get sink and source config Heikki Krogerus
2018-02-26 13:32 ` [PATCH v2 02/12] " Heikki Krogerus
2018-02-26 13:19 [v2,01/12] usb: typec: add API to get port type and preferred role Heikki Krogerus
2018-02-26 13:19 ` [PATCH v2 01/12] " Heikki Krogerus
2018-02-26 11:49 [v2,12/12] staging: typec: tcpci: move tcpci driver out of staging Jun Li
2018-02-26 11:49 ` [PATCH v2 12/12] " Li Jun
2018-02-26 11:49 [v2,11/12] dt-bindings: usb: add documentation for typec port controller(TCPCI) Jun Li
2018-02-26 11:49 ` [PATCH v2 11/12] " Li Jun
2018-02-26 11:49 [v2,10/12] dt-bindings: connector: add properties for typec power delivery Jun Li
2018-02-26 11:49 ` [PATCH v2 10/12] " Li Jun
2018-02-26 11:49 [v2,09/12] staging: typec: tcpci: Only touch target bit when enable vconn Jun Li
2018-02-26 11:49 ` [PATCH v2 09/12] " Li Jun
2018-02-26 11:49 [v2,08/12] staging: typec: tcpci: keep the uncontact cc line open Jun Li
2018-02-26 11:49 ` [PATCH v2 08/12] " Li Jun
2018-02-26 11:49 [v2,07/12] staging: typec: tcpci: correct drp toggling Jun Li
2018-02-26 11:49 ` [PATCH v2 07/12] " Li Jun
2018-02-26 11:49 [v2,06/12] typec: tcpm: add starting value for " Jun Li
2018-02-26 11:49 ` [PATCH v2 06/12] " Li Jun
2018-02-26 11:49 [v2,05/12] staging: typec: tcpci: enable vbus detection Jun Li
2018-02-26 11:49 ` [PATCH v2 05/12] " Li Jun
2018-02-26 11:49 [v2,04/12] staging: typec: tcpci: register port before request irq Jun Li
2018-02-26 11:49 ` [PATCH v2 04/12] " Li Jun
2018-02-26 11:49 [v2,03/12] staging: typec: tcpci: support port config passed via dt Jun Li
2018-02-26 11:49 ` [PATCH v2 03/12] " Li Jun
2018-02-26 11:49 [v2,02/12] usb: typec: add API to get sink and source config Jun Li
2018-02-26 11:49 ` [PATCH v2 02/12] " Li Jun
2018-02-26 11:49 [v2,01/12] usb: typec: add API to get port type and preferred role Jun Li
2018-02-26 11:49 ` [PATCH v2 01/12] " Li Jun
2018-02-26 11:49 [PATCH v2 00/12] staging: typec: tcpci: move out of staging Li Jun
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=20180226140604.GD25535@kuha.fi.intel.com \
--to=heikki.krogerus@linux.intel.com \
--cc=a.hajda@samsung.com \
--cc=devicetree@vger.kernel.org \
--cc=garsilva@embeddedor.com \
--cc=gregkh@linuxfoundation.org \
--cc=jun.li@nxp.com \
--cc=linux-imx@nxp.com \
--cc=linux-usb@vger.kernel.org \
--cc=linux@roeck-us.net \
--cc=mark.rutland@arm.com \
--cc=o_leveque@orange.fr \
--cc=peter.chen@nxp.com \
--cc=robh+dt@kernel.org \
--cc=shufan_lee@richtek.com \
--cc=yueyao@google.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 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.