linux/drivers/net/phy/ncn26000.c

// SPDX-License-Identifier: (GPL-2.0+ OR BSD-3-Clause)
/*
 *  Driver for the onsemi 10BASE-T1S NCN26000 PHYs family.
 *
 * Copyright 2022 onsemi
 */
#include <linux/kernel.h>
#include <linux/bitfield.h>
#include <linux/errno.h>
#include <linux/init.h>
#include <linux/module.h>
#include <linux/mii.h>
#include <linux/phy.h>

#include "mdio-open-alliance.h"

#define PHY_ID_NCN26000

#define NCN26000_REG_IRQ_CTL
#define NCN26000_REG_IRQ_STATUS

// the NCN26000 maps link_ctrl to BMCR_ANENABLE
#define NCN26000_BCMR_LINK_CTRL_BIT

// the NCN26000 maps link_status to BMSR_ANEGCOMPLETE
#define NCN26000_BMSR_LINK_STATUS_BIT

#define NCN26000_IRQ_LINKST_BIT
#define NCN26000_IRQ_PLCAST_BIT
#define NCN26000_IRQ_LJABBER_BIT
#define NCN26000_IRQ_RJABBER_BIT
#define NCN26000_IRQ_PLCAREC_BIT
#define NCN26000_IRQ_PHYSCOL_BIT
#define NCN26000_IRQ_RESET_BIT

#define TO_TMR_DEFAULT

static int ncn26000_config_init(struct phy_device *phydev)
{}

static int ncn26000_config_aneg(struct phy_device *phydev)
{}

static int ncn26000_read_status(struct phy_device *phydev)
{}

static irqreturn_t ncn26000_handle_interrupt(struct phy_device *phydev)
{}

static int ncn26000_config_intr(struct phy_device *phydev)
{}

static struct phy_driver ncn26000_driver[] =;

module_phy_driver(ncn26000_driver);

static struct mdio_device_id __maybe_unused ncn26000_tbl[] =;

MODULE_DEVICE_TABLE(mdio, ncn26000_tbl);

MODULE_AUTHOR();
MODULE_DESCRIPTION();
MODULE_LICENSE();