delay = 3;
                        }
 
-                       priv->rgmii_tx_delay[cpu_port_index] = delay;
+                       priv->ports_config.rgmii_tx_delay[cpu_port_index] = delay;
 
                        delay = 0;
 
                                delay = 3;
                        }
 
-                       priv->rgmii_rx_delay[cpu_port_index] = delay;
+                       priv->ports_config.rgmii_rx_delay[cpu_port_index] = delay;
 
                        /* Skip sgmii parsing for rgmii* mode */
                        if (mode == PHY_INTERFACE_MODE_RGMII ||
                                break;
 
                        if (of_property_read_bool(port_dn, "qca,sgmii-txclk-falling-edge"))
-                               priv->sgmii_tx_clk_falling_edge = true;
+                               priv->ports_config.sgmii_tx_clk_falling_edge = true;
 
                        if (of_property_read_bool(port_dn, "qca,sgmii-rxclk-falling-edge"))
-                               priv->sgmii_rx_clk_falling_edge = true;
+                               priv->ports_config.sgmii_rx_clk_falling_edge = true;
 
                        if (of_property_read_bool(port_dn, "qca,sgmii-enable-pll")) {
-                               priv->sgmii_enable_pll = true;
+                               priv->ports_config.sgmii_enable_pll = true;
 
                                if (priv->switch_id == QCA8K_ID_QCA8327) {
                                        dev_err(priv->dev, "SGMII PLL should NOT be enabled for qca8327. Aborting enabling");
-                                       priv->sgmii_enable_pll = false;
+                                       priv->ports_config.sgmii_enable_pll = false;
                                }
 
                                if (priv->switch_revision < 2)
         * not enabled. With ID or TX/RXID delay is enabled and set
         * to the default and recommended value.
         */
-       if (priv->rgmii_tx_delay[cpu_port_index]) {
-               delay = priv->rgmii_tx_delay[cpu_port_index];
+       if (priv->ports_config.rgmii_tx_delay[cpu_port_index]) {
+               delay = priv->ports_config.rgmii_tx_delay[cpu_port_index];
 
                val |= QCA8K_PORT_PAD_RGMII_TX_DELAY(delay) |
                        QCA8K_PORT_PAD_RGMII_TX_DELAY_EN;
        }
 
-       if (priv->rgmii_rx_delay[cpu_port_index]) {
-               delay = priv->rgmii_rx_delay[cpu_port_index];
+       if (priv->ports_config.rgmii_rx_delay[cpu_port_index]) {
+               delay = priv->ports_config.rgmii_rx_delay[cpu_port_index];
 
                val |= QCA8K_PORT_PAD_RGMII_RX_DELAY(delay) |
                        QCA8K_PORT_PAD_RGMII_RX_DELAY_EN;
 
                val |= QCA8K_SGMII_EN_SD;
 
-               if (priv->sgmii_enable_pll)
+               if (priv->ports_config.sgmii_enable_pll)
                        val |= QCA8K_SGMII_EN_PLL | QCA8K_SGMII_EN_RX |
                               QCA8K_SGMII_EN_TX;
 
                val = 0;
 
                /* SGMII Clock phase configuration */
-               if (priv->sgmii_rx_clk_falling_edge)
+               if (priv->ports_config.sgmii_rx_clk_falling_edge)
                        val |= QCA8K_PORT0_PAD_SGMII_RXCLK_FALLING_EDGE;
 
-               if (priv->sgmii_tx_clk_falling_edge)
+               if (priv->ports_config.sgmii_tx_clk_falling_edge)
                        val |= QCA8K_PORT0_PAD_SGMII_TXCLK_FALLING_EDGE;
 
                if (val)
 
        QCA8K_CPU_PORT6,
 };
 
-struct qca8k_priv {
-       u8 switch_id;
-       u8 switch_revision;
+struct qca8k_ports_config {
        bool sgmii_rx_clk_falling_edge;
        bool sgmii_tx_clk_falling_edge;
        bool sgmii_enable_pll;
        u8 rgmii_rx_delay[QCA8K_NUM_CPU_PORTS]; /* 0: CPU port0, 1: CPU port6 */
        u8 rgmii_tx_delay[QCA8K_NUM_CPU_PORTS]; /* 0: CPU port0, 1: CPU port6 */
+};
+
+struct qca8k_priv {
+       u8 switch_id;
+       u8 switch_revision;
        bool legacy_phy_port_mapping;
+       struct qca8k_ports_config ports_config;
        struct regmap *regmap;
        struct mii_bus *bus;
        struct ar8xxx_port_status port_sts[QCA8K_NUM_PORTS];