lkml.org 
[lkml]   [2024]   [Mar]   [6]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH net-next v3 07/12] net: ethernet: oa_tc6: enable open alliance tc6 data communication
    Date
    Enabling Configuration Synchronization bit (SYNC) in the Configuration
    Register #0 enables data communication in the MAC-PHY. The state of this
    bit is reflected in the data footer SYNC bit.

    Signed-off-by: Parthiban Veerasooran <Parthiban.Veerasooran@microchip.com>
    ---
    drivers/net/ethernet/oa_tc6.c | 30 ++++++++++++++++++++++++++++++
    1 file changed, 30 insertions(+)

    diff --git a/drivers/net/ethernet/oa_tc6.c b/drivers/net/ethernet/oa_tc6.c
    index 82b4de13438f..371687670409 100644
    --- a/drivers/net/ethernet/oa_tc6.c
    +++ b/drivers/net/ethernet/oa_tc6.c
    @@ -20,6 +20,10 @@
    #define OA_TC6_REG_RESET 0x0003
    #define RESET_SWRESET BIT(0) /* Software Reset */

    +/* Configuration Register #0 */
    +#define OA_TC6_REG_CONFIG0 0x0004
    +#define CONFIG0_SYNC BIT(15)
    +
    /* Status Register #0 */
    #define OA_TC6_REG_STATUS0 0x0008
    #define STATUS0_RESETC BIT(6) /* Reset Complete */
    @@ -486,6 +490,21 @@ static int oa_tc6_unmask_macphy_error_interrupts(struct oa_tc6 *tc6)
    return oa_tc6_write_register(tc6, OA_TC6_REG_INT_MASK0, regval);
    }

    +static int oa_tc6_enable_data_transfer(struct oa_tc6 *tc6)
    +{
    + u32 value;
    + int ret;
    +
    + ret = oa_tc6_read_register(tc6, OA_TC6_REG_CONFIG0, &value);
    + if (ret)
    + return ret;
    +
    + /* Enable configuration synchronization for data transfer */
    + value |= CONFIG0_SYNC;
    +
    + return oa_tc6_write_register(tc6, OA_TC6_REG_CONFIG0, value);
    +}
    +
    /**
    * oa_tc6_init - allocates and initializes oa_tc6 structure.
    * @spi: device with which data will be exchanged.
    @@ -543,7 +562,18 @@ struct oa_tc6 *oa_tc6_init(struct spi_device *spi, struct net_device *netdev)
    return NULL;
    }

    + ret = oa_tc6_enable_data_transfer(tc6);
    + if (ret) {
    + dev_err(&tc6->spi->dev, "Failed to enable data transfer: %d\n",
    + ret);
    + goto phy_exit;
    + }
    +
    return tc6;
    +
    +phy_exit:
    + oa_tc6_phy_exit(tc6);
    + return NULL;
    }
    EXPORT_SYMBOL_GPL(oa_tc6_init);

    --
    2.34.1

    \
     
     \ /
      Last update: 2024-05-27 15:37    [W:3.925 / U:0.028 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site