* [PATCH net-next v2 0/2] net: pse-pd: tps23881: Reset GPIO support
@ 2024-08-22 22:01 Kyle Swenson
2024-08-22 22:01 ` [PATCH net-next v2 1/2] dt-bindings: pse: tps23881: add reset-gpios Kyle Swenson
` (2 more replies)
0 siblings, 3 replies; 8+ messages in thread
From: Kyle Swenson @ 2024-08-22 22:01 UTC (permalink / raw)
To: o.rempel@pengutronix.de, kory.maincent@bootlin.com,
davem@davemloft.net, edumazet@google.com, kuba@kernel.org,
pabeni@redhat.com
Cc: robh@kernel.org, krzk+dt@kernel.org, conor+dt@kernel.org,
thomas.petazzoni@bootlin.com, Kyle Swenson,
netdev@vger.kernel.org, devicetree@vger.kernel.org
On some boards, the TPS2388x's reset line (active low) is pulled low to
keep the chip in reset until the SoC pulls the device out of reset.
This series updates the device-tree binding for the tps23881 and then
adds support for the reset gpio handling in the tps23881 driver.
Signed-off-by: Kyle Swenson <kyle.swenson@est.tech>
v1 -> v2:
- Changed the reset pulse duration to be between 5us and 10us, per the
TPS23880 datasheet
- Changed the delay after reset to be 50ms instead of 1-10ms in order
to meet the minimum recommended time before SRAM programming.
v1: https://lore.kernel.org/netdev/20240819190151.93253-1-kyle.swenson@est.tech/
Kyle Swenson (2):
dt-bindings: pse: tps23881: add reset-gpios
net: pse-pd: tps23881: Support reset-gpios
.../bindings/net/pse-pd/ti,tps23881.yaml | 3 +++
drivers/net/pse-pd/tps23881.c | 21 +++++++++++++++++++
2 files changed, 24 insertions(+)
--
2.43.0
^ permalink raw reply [flat|nested] 8+ messages in thread
* [PATCH net-next v2 1/2] dt-bindings: pse: tps23881: add reset-gpios
2024-08-22 22:01 [PATCH net-next v2 0/2] net: pse-pd: tps23881: Reset GPIO support Kyle Swenson
@ 2024-08-22 22:01 ` Kyle Swenson
2024-08-23 5:04 ` Oleksij Rempel
2024-08-23 21:35 ` Kory Maincent
2024-08-22 22:01 ` [PATCH net-next v2 2/2] net: pse-pd: tps23881: Support reset-gpios Kyle Swenson
2024-08-27 13:03 ` [PATCH net-next v2 0/2] net: pse-pd: tps23881: Reset GPIO support Paolo Abeni
2 siblings, 2 replies; 8+ messages in thread
From: Kyle Swenson @ 2024-08-22 22:01 UTC (permalink / raw)
To: o.rempel@pengutronix.de, kory.maincent@bootlin.com,
davem@davemloft.net, edumazet@google.com, kuba@kernel.org,
pabeni@redhat.com
Cc: robh@kernel.org, krzk+dt@kernel.org, conor+dt@kernel.org,
thomas.petazzoni@bootlin.com, Kyle Swenson,
netdev@vger.kernel.org, devicetree@vger.kernel.org,
Krzysztof Kozlowski
The TPS23881 has an active-low reset pin that can be connected to an
SoC. Document this with the device-tree binding.
Signed-off-by: Kyle Swenson <kyle.swenson@est.tech>
Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
---
Documentation/devicetree/bindings/net/pse-pd/ti,tps23881.yaml | 3 +++
1 file changed, 3 insertions(+)
diff --git a/Documentation/devicetree/bindings/net/pse-pd/ti,tps23881.yaml b/Documentation/devicetree/bindings/net/pse-pd/ti,tps23881.yaml
index 6992d56832bf..d08abcb01211 100644
--- a/Documentation/devicetree/bindings/net/pse-pd/ti,tps23881.yaml
+++ b/Documentation/devicetree/bindings/net/pse-pd/ti,tps23881.yaml
@@ -21,10 +21,13 @@ properties:
maxItems: 1
'#pse-cells':
const: 1
+ reset-gpios:
+ maxItems: 1
+
channels:
description: each set of 8 ports can be assigned to one physical
channels or two for PoE4. This parameter describes the configuration
of the ports conversion matrix that establishes relationship between
the logical ports and the physical channels.
--
2.43.0
^ permalink raw reply related [flat|nested] 8+ messages in thread
* [PATCH net-next v2 2/2] net: pse-pd: tps23881: Support reset-gpios
2024-08-22 22:01 [PATCH net-next v2 0/2] net: pse-pd: tps23881: Reset GPIO support Kyle Swenson
2024-08-22 22:01 ` [PATCH net-next v2 1/2] dt-bindings: pse: tps23881: add reset-gpios Kyle Swenson
@ 2024-08-22 22:01 ` Kyle Swenson
2024-08-23 5:03 ` Oleksij Rempel
2024-08-23 21:34 ` Kory Maincent
2024-08-27 13:03 ` [PATCH net-next v2 0/2] net: pse-pd: tps23881: Reset GPIO support Paolo Abeni
2 siblings, 2 replies; 8+ messages in thread
From: Kyle Swenson @ 2024-08-22 22:01 UTC (permalink / raw)
To: o.rempel@pengutronix.de, kory.maincent@bootlin.com,
davem@davemloft.net, edumazet@google.com, kuba@kernel.org,
pabeni@redhat.com
Cc: robh@kernel.org, krzk+dt@kernel.org, conor+dt@kernel.org,
thomas.petazzoni@bootlin.com, Kyle Swenson,
netdev@vger.kernel.org, devicetree@vger.kernel.org
The TPS23880/1 has an active-low reset pin that some boards connect to
the SoC to control when the TPS23880 is pulled out of reset.
Add support for this via a reset-gpios property in the DTS.
Signed-off-by: Kyle Swenson <kyle.swenson@est.tech>
---
drivers/net/pse-pd/tps23881.c | 21 +++++++++++++++++++++
1 file changed, 21 insertions(+)
diff --git a/drivers/net/pse-pd/tps23881.c b/drivers/net/pse-pd/tps23881.c
index 2ea75686a319..5c4e88be46ee 100644
--- a/drivers/net/pse-pd/tps23881.c
+++ b/drivers/net/pse-pd/tps23881.c
@@ -6,10 +6,11 @@
*/
#include <linux/bitfield.h>
#include <linux/delay.h>
#include <linux/firmware.h>
+#include <linux/gpio/consumer.h>
#include <linux/i2c.h>
#include <linux/module.h>
#include <linux/of.h>
#include <linux/platform_device.h>
#include <linux/pse-pd/pse.h>
@@ -735,10 +736,11 @@ static int tps23881_flash_sram_fw(struct i2c_client *client)
static int tps23881_i2c_probe(struct i2c_client *client)
{
struct device *dev = &client->dev;
struct tps23881_priv *priv;
+ struct gpio_desc *reset;
int ret;
u8 val;
if (!i2c_check_functionality(client->adapter, I2C_FUNC_I2C)) {
dev_err(dev, "i2c check functionality failed\n");
@@ -747,10 +749,29 @@ static int tps23881_i2c_probe(struct i2c_client *client)
priv = devm_kzalloc(dev, sizeof(*priv), GFP_KERNEL);
if (!priv)
return -ENOMEM;
+ reset = devm_gpiod_get_optional(dev, "reset", GPIOD_OUT_HIGH);
+ if (IS_ERR(reset))
+ return dev_err_probe(&client->dev, PTR_ERR(reset), "Failed to get reset GPIO\n");
+
+ if (reset) {
+ /* TPS23880 datasheet (Rev G) indicates minimum reset pulse is 5us */
+ usleep_range(5, 10);
+ gpiod_set_value_cansleep(reset, 0); /* De-assert reset */
+
+ /* TPS23880 datasheet indicates the minimum time after power on reset
+ * should be 20ms, but the document describing how to load SRAM ("How
+ * to Load TPS2388x SRAM and Parity Code over I2C" (Rev E))
+ * indicates we should delay that programming by at least 50ms. So
+ * we'll wait the entire 50ms here to ensure we're safe to go to the
+ * SRAM loading proceedure.
+ */
+ msleep(50);
+ }
+
ret = i2c_smbus_read_byte_data(client, TPS23881_REG_DEVID);
if (ret < 0)
return ret;
if (FIELD_GET(TPS23881_REG_DEVID_MASK, ret) != TPS23881_DEVICE_ID) {
--
2.43.0
^ permalink raw reply related [flat|nested] 8+ messages in thread
* Re: [PATCH net-next v2 2/2] net: pse-pd: tps23881: Support reset-gpios
2024-08-22 22:01 ` [PATCH net-next v2 2/2] net: pse-pd: tps23881: Support reset-gpios Kyle Swenson
@ 2024-08-23 5:03 ` Oleksij Rempel
2024-08-23 21:34 ` Kory Maincent
1 sibling, 0 replies; 8+ messages in thread
From: Oleksij Rempel @ 2024-08-23 5:03 UTC (permalink / raw)
To: Kyle Swenson
Cc: kory.maincent@bootlin.com, davem@davemloft.net,
edumazet@google.com, kuba@kernel.org, pabeni@redhat.com,
robh@kernel.org, krzk+dt@kernel.org, conor+dt@kernel.org,
thomas.petazzoni@bootlin.com, netdev@vger.kernel.org,
devicetree@vger.kernel.org
On Thu, Aug 22, 2024 at 10:01:22PM +0000, Kyle Swenson wrote:
> The TPS23880/1 has an active-low reset pin that some boards connect to
> the SoC to control when the TPS23880 is pulled out of reset.
>
> Add support for this via a reset-gpios property in the DTS.
>
> Signed-off-by: Kyle Swenson <kyle.swenson@est.tech>
Acked-by: Oleksij Rempel <o.rempel@pengutronix.de>
Thank you!
--
Pengutronix e.K. | |
Steuerwalder Str. 21 | http://www.pengutronix.de/ |
31137 Hildesheim, Germany | Phone: +49-5121-206917-0 |
Amtsgericht Hildesheim, HRA 2686 | Fax: +49-5121-206917-5555 |
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH net-next v2 1/2] dt-bindings: pse: tps23881: add reset-gpios
2024-08-22 22:01 ` [PATCH net-next v2 1/2] dt-bindings: pse: tps23881: add reset-gpios Kyle Swenson
@ 2024-08-23 5:04 ` Oleksij Rempel
2024-08-23 21:35 ` Kory Maincent
1 sibling, 0 replies; 8+ messages in thread
From: Oleksij Rempel @ 2024-08-23 5:04 UTC (permalink / raw)
To: Kyle Swenson
Cc: kory.maincent@bootlin.com, davem@davemloft.net,
edumazet@google.com, kuba@kernel.org, pabeni@redhat.com,
robh@kernel.org, krzk+dt@kernel.org, conor+dt@kernel.org,
thomas.petazzoni@bootlin.com, netdev@vger.kernel.org,
devicetree@vger.kernel.org, Krzysztof Kozlowski
On Thu, Aug 22, 2024 at 10:01:21PM +0000, Kyle Swenson wrote:
> The TPS23881 has an active-low reset pin that can be connected to an
> SoC. Document this with the device-tree binding.
>
> Signed-off-by: Kyle Swenson <kyle.swenson@est.tech>
> Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
Reviewed-by: Oleksij Rempel <o.rempel@pengutronix.de>
--
Pengutronix e.K. | |
Steuerwalder Str. 21 | http://www.pengutronix.de/ |
31137 Hildesheim, Germany | Phone: +49-5121-206917-0 |
Amtsgericht Hildesheim, HRA 2686 | Fax: +49-5121-206917-5555 |
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH net-next v2 2/2] net: pse-pd: tps23881: Support reset-gpios
2024-08-22 22:01 ` [PATCH net-next v2 2/2] net: pse-pd: tps23881: Support reset-gpios Kyle Swenson
2024-08-23 5:03 ` Oleksij Rempel
@ 2024-08-23 21:34 ` Kory Maincent
1 sibling, 0 replies; 8+ messages in thread
From: Kory Maincent @ 2024-08-23 21:34 UTC (permalink / raw)
To: Kyle Swenson
Cc: o.rempel@pengutronix.de, davem@davemloft.net, edumazet@google.com,
kuba@kernel.org, pabeni@redhat.com, robh@kernel.org,
krzk+dt@kernel.org, conor+dt@kernel.org,
thomas.petazzoni@bootlin.com, netdev@vger.kernel.org,
devicetree@vger.kernel.org
On Thu, 22 Aug 2024 22:01:22 +0000
Kyle Swenson <kyle.swenson@est.tech> wrote:
> The TPS23880/1 has an active-low reset pin that some boards connect to
> the SoC to control when the TPS23880 is pulled out of reset.
>
> Add support for this via a reset-gpios property in the DTS.
Reviewed-by: Kory Maincent <kory.maincent@bootlin.com>
Thank you!
--
Köry Maincent, Bootlin
Embedded Linux and kernel engineering
https://bootlin.com
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH net-next v2 1/2] dt-bindings: pse: tps23881: add reset-gpios
2024-08-22 22:01 ` [PATCH net-next v2 1/2] dt-bindings: pse: tps23881: add reset-gpios Kyle Swenson
2024-08-23 5:04 ` Oleksij Rempel
@ 2024-08-23 21:35 ` Kory Maincent
1 sibling, 0 replies; 8+ messages in thread
From: Kory Maincent @ 2024-08-23 21:35 UTC (permalink / raw)
To: Kyle Swenson
Cc: o.rempel@pengutronix.de, davem@davemloft.net, edumazet@google.com,
kuba@kernel.org, pabeni@redhat.com, robh@kernel.org,
krzk+dt@kernel.org, conor+dt@kernel.org,
thomas.petazzoni@bootlin.com, netdev@vger.kernel.org,
devicetree@vger.kernel.org, Krzysztof Kozlowski
On Thu, 22 Aug 2024 22:01:21 +0000
Kyle Swenson <kyle.swenson@est.tech> wrote:
> The TPS23881 has an active-low reset pin that can be connected to an
> SoC. Document this with the device-tree binding.
Reviewed-by: Kory Maincent <kory.maincent@bootlin.com>
Thank you!
--
Köry Maincent, Bootlin
Embedded Linux and kernel engineering
https://bootlin.com
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH net-next v2 0/2] net: pse-pd: tps23881: Reset GPIO support
2024-08-22 22:01 [PATCH net-next v2 0/2] net: pse-pd: tps23881: Reset GPIO support Kyle Swenson
2024-08-22 22:01 ` [PATCH net-next v2 1/2] dt-bindings: pse: tps23881: add reset-gpios Kyle Swenson
2024-08-22 22:01 ` [PATCH net-next v2 2/2] net: pse-pd: tps23881: Support reset-gpios Kyle Swenson
@ 2024-08-27 13:03 ` Paolo Abeni
2 siblings, 0 replies; 8+ messages in thread
From: Paolo Abeni @ 2024-08-27 13:03 UTC (permalink / raw)
To: Kyle Swenson, o.rempel@pengutronix.de, kory.maincent@bootlin.com,
davem@davemloft.net, edumazet@google.com, kuba@kernel.org
Cc: robh@kernel.org, krzk+dt@kernel.org, conor+dt@kernel.org,
thomas.petazzoni@bootlin.com, netdev@vger.kernel.org,
devicetree@vger.kernel.org
On 8/23/24 00:01, Kyle Swenson wrote:
> On some boards, the TPS2388x's reset line (active low) is pulled low to
> keep the chip in reset until the SoC pulls the device out of reset.
> This series updates the device-tree binding for the tps23881 and then
> adds support for the reset gpio handling in the tps23881 driver.
>
> Signed-off-by: Kyle Swenson <kyle.swenson@est.tech>
>
> v1 -> v2:
> - Changed the reset pulse duration to be between 5us and 10us, per the
> TPS23880 datasheet
> - Changed the delay after reset to be 50ms instead of 1-10ms in order
> to meet the minimum recommended time before SRAM programming.
>
> v1: https://lore.kernel.org/netdev/20240819190151.93253-1-kyle.swenson@est.tech/
>
> Kyle Swenson (2):
> dt-bindings: pse: tps23881: add reset-gpios
> net: pse-pd: tps23881: Support reset-gpios
>
> .../bindings/net/pse-pd/ti,tps23881.yaml | 3 +++
> drivers/net/pse-pd/tps23881.c | 21 +++++++++++++++++++
> 2 files changed, 24 insertions(+)
This has been applied by Jakub, but the bot failed to send the notification.
Thanks,
Paolo
^ permalink raw reply [flat|nested] 8+ messages in thread
end of thread, other threads:[~2024-08-27 13:03 UTC | newest]
Thread overview: 8+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-08-22 22:01 [PATCH net-next v2 0/2] net: pse-pd: tps23881: Reset GPIO support Kyle Swenson
2024-08-22 22:01 ` [PATCH net-next v2 1/2] dt-bindings: pse: tps23881: add reset-gpios Kyle Swenson
2024-08-23 5:04 ` Oleksij Rempel
2024-08-23 21:35 ` Kory Maincent
2024-08-22 22:01 ` [PATCH net-next v2 2/2] net: pse-pd: tps23881: Support reset-gpios Kyle Swenson
2024-08-23 5:03 ` Oleksij Rempel
2024-08-23 21:34 ` Kory Maincent
2024-08-27 13:03 ` [PATCH net-next v2 0/2] net: pse-pd: tps23881: Reset GPIO support Paolo Abeni
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).