]> git.ipfire.org Git - thirdparty/openwrt.git/commitdiff
ar8327: remove platform data support
authorRosen Penev <rosenp@gmail.com>
Sun, 8 Feb 2026 01:37:32 +0000 (17:37 -0800)
committerRobert Marko <robimarko@gmail.com>
Tue, 31 Mar 2026 09:44:27 +0000 (11:44 +0200)
All targets using ar8327 use OF.

Signed-off-by: Rosen Penev <rosenp@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/22069
Signed-off-by: Robert Marko <robimarko@gmail.com>
target/linux/ath79/patches-6.12/730-ar8216-make-reg-access-atomic.patch
target/linux/generic/files/drivers/net/phy/ar8216.c
target/linux/generic/files/drivers/net/phy/ar8327.c
target/linux/generic/files/drivers/net/phy/ar8327.h
target/linux/generic/files/include/linux/ar8216_platform.h [deleted file]

index 16d90056999ecfb7afa8ae721f27f1c564bb6ced..1bbe3a0a575e2c64cba6075acf44bba1cea47a44 100644 (file)
@@ -14,7 +14,7 @@ with interrupts used.
 ---
 --- a/drivers/net/phy/ar8216.c
 +++ b/drivers/net/phy/ar8216.c
-@@ -251,6 +251,7 @@ ar8xxx_mii_write32(struct ar8xxx_priv *p
+@@ -250,6 +250,7 @@ ar8xxx_mii_write32(struct ar8xxx_priv *p
  u32
  ar8xxx_read(struct ar8xxx_priv *priv, int reg)
  {
@@ -22,7 +22,7 @@ with interrupts used.
        struct mii_bus *bus = priv->mii_bus;
        u16 r1, r2, page;
        u32 val;
-@@ -258,11 +259,13 @@ ar8xxx_read(struct ar8xxx_priv *priv, in
+@@ -257,11 +258,13 @@ ar8xxx_read(struct ar8xxx_priv *priv, in
        split_addr((u32) reg, &r1, &r2, &page);
  
        mutex_lock(&bus->mdio_lock);
@@ -36,7 +36,7 @@ with interrupts used.
        mutex_unlock(&bus->mdio_lock);
  
        return val;
-@@ -271,17 +274,20 @@ ar8xxx_read(struct ar8xxx_priv *priv, in
+@@ -270,17 +273,20 @@ ar8xxx_read(struct ar8xxx_priv *priv, in
  void
  ar8xxx_write(struct ar8xxx_priv *priv, int reg, u32 val)
  {
index 84b923ffc12518d6f04abbf57091dcec9045a96c..33b17cea4f4debf1165b60ab456216e2c88e5b30 100644 (file)
@@ -33,7 +33,6 @@
 #include <linux/phy.h>
 #include <linux/etherdevice.h>
 #include <linux/lockdep.h>
-#include <linux/ar8216_platform.h>
 #include <linux/workqueue.h>
 
 #include "ar8216.h"
index d6749ad70ed2a93864e78db87a67b5f01a861b81..b22e958f6286252936baa98d1c3303f86e5d607e 100644 (file)
@@ -21,7 +21,6 @@
 #include <linux/delay.h>
 #include <linux/phy.h>
 #include <linux/lockdep.h>
-#include <linux/ar8216_platform.h>
 #include <linux/workqueue.h>
 #include <linux/of.h>
 #include <linux/of_device.h>
@@ -531,89 +530,6 @@ ar8327_leds_cleanup(struct ar8xxx_priv *priv)
        kfree(data->leds);
 }
 
-static int
-ar8327_hw_config_pdata(struct ar8xxx_priv *priv,
-                      struct ar8327_platform_data *pdata)
-{
-       struct ar8327_led_cfg *led_cfg;
-       struct ar8327_data *data = priv->chip_data;
-       u32 pos, new_pos;
-       u32 t;
-
-       if (!pdata)
-               return -EINVAL;
-
-       priv->get_port_link = pdata->get_port_link;
-
-       data->port0_status = ar8327_get_port_init_status(&pdata->port0_cfg);
-       data->port6_status = ar8327_get_port_init_status(&pdata->port6_cfg);
-
-       t = ar8327_get_pad_cfg(pdata->pad0_cfg);
-       if (chip_is_ar8337(priv) && !pdata->pad0_cfg->mac06_exchange_dis)
-           t |= AR8337_PAD_MAC06_EXCHANGE_EN;
-       ar8xxx_write(priv, AR8327_REG_PAD0_MODE, t);
-
-       t = ar8327_get_pad_cfg(pdata->pad5_cfg);
-       ar8xxx_write(priv, AR8327_REG_PAD5_MODE, t);
-       t = ar8327_get_pad_cfg(pdata->pad6_cfg);
-       ar8xxx_write(priv, AR8327_REG_PAD6_MODE, t);
-
-       pos = ar8xxx_read(priv, AR8327_REG_POWER_ON_STRAP);
-       new_pos = pos;
-
-       led_cfg = pdata->led_cfg;
-       if (led_cfg) {
-               if (led_cfg->open_drain)
-                       new_pos |= AR8327_POWER_ON_STRAP_LED_OPEN_EN;
-               else
-                       new_pos &= ~AR8327_POWER_ON_STRAP_LED_OPEN_EN;
-
-               ar8xxx_write(priv, AR8327_REG_LED_CTRL0, led_cfg->led_ctrl0);
-               ar8xxx_write(priv, AR8327_REG_LED_CTRL1, led_cfg->led_ctrl1);
-               ar8xxx_write(priv, AR8327_REG_LED_CTRL2, led_cfg->led_ctrl2);
-               ar8xxx_write(priv, AR8327_REG_LED_CTRL3, led_cfg->led_ctrl3);
-
-               if (new_pos != pos)
-                       new_pos |= AR8327_POWER_ON_STRAP_POWER_ON_SEL;
-       }
-
-       if (pdata->sgmii_cfg) {
-               t = pdata->sgmii_cfg->sgmii_ctrl;
-               if (priv->chip_rev == 1)
-                       t |= AR8327_SGMII_CTRL_EN_PLL |
-                            AR8327_SGMII_CTRL_EN_RX |
-                            AR8327_SGMII_CTRL_EN_TX;
-               else
-                       t &= ~(AR8327_SGMII_CTRL_EN_PLL |
-                              AR8327_SGMII_CTRL_EN_RX |
-                              AR8327_SGMII_CTRL_EN_TX);
-
-               ar8xxx_write(priv, AR8327_REG_SGMII_CTRL, t);
-
-               if (pdata->sgmii_cfg->serdes_aen)
-                       new_pos &= ~AR8327_POWER_ON_STRAP_SERDES_AEN;
-               else
-                       new_pos |= AR8327_POWER_ON_STRAP_SERDES_AEN;
-       }
-
-       ar8xxx_write(priv, AR8327_REG_POWER_ON_STRAP, new_pos);
-
-       if (pdata->leds && pdata->num_leds) {
-               int i;
-
-               data->leds = kzalloc(pdata->num_leds * sizeof(void *),
-                                    GFP_KERNEL);
-               if (!data->leds)
-                       return -ENOMEM;
-
-               for (i = 0; i < pdata->num_leds; i++)
-                       ar8327_led_create(priv, &pdata->leds[i]);
-       }
-
-       return 0;
-}
-
-#ifdef CONFIG_OF
 static int
 ar8327_hw_config_of(struct ar8xxx_priv *priv, struct device_node *np)
 {
@@ -684,13 +600,6 @@ ar8327_hw_config_of(struct ar8xxx_priv *priv, struct device_node *np)
        of_node_put(leds);
        return 0;
 }
-#else
-static inline int
-ar8327_hw_config_of(struct ar8xxx_priv *priv, struct device_node *np)
-{
-       return -EINVAL;
-}
-#endif
 
 static int
 ar8327_hw_init(struct ar8xxx_priv *priv)
@@ -701,12 +610,7 @@ ar8327_hw_init(struct ar8xxx_priv *priv)
        if (!priv->chip_data)
                return -ENOMEM;
 
-       if (priv->pdev->of_node)
-               ret = ar8327_hw_config_of(priv, priv->pdev->of_node);
-       else
-               ret = ar8327_hw_config_pdata(priv,
-                                            priv->phy->mdio.dev.platform_data);
-
+       ret = ar8327_hw_config_of(priv, priv->pdev->of_node);
        if (ret)
                return ret;
 
index 53a82d1f76a38a01a599b99ed4d53c46be255d40..d6e84960d754e2a975162fd5a276dc924d13a301 100644 (file)
@@ -303,6 +303,90 @@ struct ar8327_led_entry {
        unsigned shift;
 };
 
+enum ar8327_pad_mode {
+       AR8327_PAD_NC = 0,
+       AR8327_PAD_MAC2MAC_MII,
+       AR8327_PAD_MAC2MAC_GMII,
+       AR8327_PAD_MAC_SGMII,
+       AR8327_PAD_MAC2PHY_MII,
+       AR8327_PAD_MAC2PHY_GMII,
+       AR8327_PAD_MAC_RGMII,
+       AR8327_PAD_PHY_GMII,
+       AR8327_PAD_PHY_RGMII,
+       AR8327_PAD_PHY_MII,
+};
+
+enum ar8327_clk_delay_sel {
+       AR8327_CLK_DELAY_SEL0 = 0,
+       AR8327_CLK_DELAY_SEL1,
+       AR8327_CLK_DELAY_SEL2,
+       AR8327_CLK_DELAY_SEL3,
+};
+
+struct ar8327_pad_cfg {
+       enum ar8327_pad_mode mode;
+       bool rxclk_sel;
+       bool txclk_sel;
+       bool pipe_rxclk_sel;
+       bool txclk_delay_en;
+       bool rxclk_delay_en;
+       bool sgmii_delay_en;
+       enum ar8327_clk_delay_sel txclk_delay_sel;
+       enum ar8327_clk_delay_sel rxclk_delay_sel;
+       bool mac06_exchange_dis;
+};
+
+enum ar8327_port_speed {
+       AR8327_PORT_SPEED_10 = 0,
+       AR8327_PORT_SPEED_100,
+       AR8327_PORT_SPEED_1000,
+};
+
+struct ar8327_port_cfg {
+       int force_link:1;
+       enum ar8327_port_speed speed;
+       int txpause:1;
+       int rxpause:1;
+       int duplex:1;
+};
+
+struct ar8327_sgmii_cfg {
+       u32 sgmii_ctrl;
+       bool serdes_aen;
+};
+
+enum ar8327_led_num {
+       AR8327_LED_PHY0_0 = 0,
+       AR8327_LED_PHY0_1,
+       AR8327_LED_PHY0_2,
+       AR8327_LED_PHY1_0,
+       AR8327_LED_PHY1_1,
+       AR8327_LED_PHY1_2,
+       AR8327_LED_PHY2_0,
+       AR8327_LED_PHY2_1,
+       AR8327_LED_PHY2_2,
+       AR8327_LED_PHY3_0,
+       AR8327_LED_PHY3_1,
+       AR8327_LED_PHY3_2,
+       AR8327_LED_PHY4_0,
+       AR8327_LED_PHY4_1,
+       AR8327_LED_PHY4_2,
+};
+
+enum ar8327_led_mode {
+       AR8327_LED_MODE_HW = 0,
+       AR8327_LED_MODE_SW,
+};
+
+struct ar8327_led_info {
+       const char *name;
+       const char *default_trigger;
+       bool active_low;
+       enum ar8327_led_num led_num;
+       enum ar8327_led_mode mode;
+       struct fwnode_handle *fwnode;
+};
+
 struct ar8327_led {
        struct led_classdev cdev;
        struct ar8xxx_priv *sw_priv;
diff --git a/target/linux/generic/files/include/linux/ar8216_platform.h b/target/linux/generic/files/include/linux/ar8216_platform.h
deleted file mode 100644 (file)
index fff05ff..0000000
+++ /dev/null
@@ -1,134 +0,0 @@
-/*
- * AR8216 switch driver platform data
- *
- * Copyright (C) 2012 Gabor Juhos <juhosg@openwrt.org>
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version.
- *
- * 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.
- */
-
-#ifndef AR8216_PLATFORM_H
-#define AR8216_PLATFORM_H
-
-enum ar8327_pad_mode {
-       AR8327_PAD_NC = 0,
-       AR8327_PAD_MAC2MAC_MII,
-       AR8327_PAD_MAC2MAC_GMII,
-       AR8327_PAD_MAC_SGMII,
-       AR8327_PAD_MAC2PHY_MII,
-       AR8327_PAD_MAC2PHY_GMII,
-       AR8327_PAD_MAC_RGMII,
-       AR8327_PAD_PHY_GMII,
-       AR8327_PAD_PHY_RGMII,
-       AR8327_PAD_PHY_MII,
-};
-
-enum ar8327_clk_delay_sel {
-       AR8327_CLK_DELAY_SEL0 = 0,
-       AR8327_CLK_DELAY_SEL1,
-       AR8327_CLK_DELAY_SEL2,
-       AR8327_CLK_DELAY_SEL3,
-};
-
-struct ar8327_pad_cfg {
-       enum ar8327_pad_mode mode;
-       bool rxclk_sel;
-       bool txclk_sel;
-       bool pipe_rxclk_sel;
-       bool txclk_delay_en;
-       bool rxclk_delay_en;
-       bool sgmii_delay_en;
-       enum ar8327_clk_delay_sel txclk_delay_sel;
-       enum ar8327_clk_delay_sel rxclk_delay_sel;
-       bool mac06_exchange_dis;
-};
-
-enum ar8327_port_speed {
-       AR8327_PORT_SPEED_10 = 0,
-       AR8327_PORT_SPEED_100,
-       AR8327_PORT_SPEED_1000,
-};
-
-struct ar8327_port_cfg {
-       int force_link:1;
-       enum ar8327_port_speed speed;
-       int txpause:1;
-       int rxpause:1;
-       int duplex:1;
-};
-
-struct ar8327_sgmii_cfg {
-       u32 sgmii_ctrl;
-       bool serdes_aen;
-};
-
-struct ar8327_led_cfg {
-       u32 led_ctrl0;
-       u32 led_ctrl1;
-       u32 led_ctrl2;
-       u32 led_ctrl3;
-       bool open_drain;
-};
-
-enum ar8327_led_num {
-       AR8327_LED_PHY0_0 = 0,
-       AR8327_LED_PHY0_1,
-       AR8327_LED_PHY0_2,
-       AR8327_LED_PHY1_0,
-       AR8327_LED_PHY1_1,
-       AR8327_LED_PHY1_2,
-       AR8327_LED_PHY2_0,
-       AR8327_LED_PHY2_1,
-       AR8327_LED_PHY2_2,
-       AR8327_LED_PHY3_0,
-       AR8327_LED_PHY3_1,
-       AR8327_LED_PHY3_2,
-       AR8327_LED_PHY4_0,
-       AR8327_LED_PHY4_1,
-       AR8327_LED_PHY4_2,
-};
-
-enum ar8327_led_mode {
-       AR8327_LED_MODE_HW = 0,
-       AR8327_LED_MODE_SW,
-};
-
-struct ar8327_led_info {
-       const char *name;
-       const char *default_trigger;
-       bool active_low;
-       enum ar8327_led_num led_num;
-       enum ar8327_led_mode mode;
-       struct fwnode_handle *fwnode;
-};
-
-#define AR8327_LED_INFO(_led, _mode, _name) {  \
-       .name = (_name),                        \
-       .led_num = AR8327_LED_ ## _led,         \
-       .mode = AR8327_LED_MODE_ ## _mode       \
-}
-
-struct ar8327_platform_data {
-       struct ar8327_pad_cfg *pad0_cfg;
-       struct ar8327_pad_cfg *pad5_cfg;
-       struct ar8327_pad_cfg *pad6_cfg;
-       struct ar8327_sgmii_cfg *sgmii_cfg;
-       struct ar8327_port_cfg port0_cfg;
-       struct ar8327_port_cfg port6_cfg;
-       struct ar8327_led_cfg *led_cfg;
-
-       int (*get_port_link)(unsigned port);
-
-       unsigned num_leds;
-       const struct ar8327_led_info *leds;
-};
-
-#endif /* AR8216_PLATFORM_H */
-