linux/drivers/net/dsa/realtek/realtek-mdio.c

// SPDX-License-Identifier: GPL-2.0+
/* Realtek MDIO interface driver
 *
 * ASICs we intend to support with this driver:
 *
 * RTL8366   - The original version, apparently
 * RTL8369   - Similar enough to have the same datsheet as RTL8366
 * RTL8366RB - Probably reads out "RTL8366 revision B", has a quite
 *             different register layout from the other two
 * RTL8366S  - Is this "RTL8366 super"?
 * RTL8367   - Has an OpenWRT driver as well
 * RTL8368S  - Seems to be an alternative name for RTL8366RB
 * RTL8370   - Also uses SMI
 *
 * Copyright (C) 2017 Linus Walleij <[email protected]>
 * Copyright (C) 2010 Antti Seppälä <[email protected]>
 * Copyright (C) 2010 Roman Yeryomin <[email protected]>
 * Copyright (C) 2011 Colin Leitner <[email protected]>
 * Copyright (C) 2009-2010 Gabor Juhos <[email protected]>
 */

#include <linux/module.h>
#include <linux/of.h>
#include <linux/overflow.h>
#include <linux/regmap.h>

#include "realtek.h"
#include "realtek-mdio.h"
#include "rtl83xx.h"

/* Read/write via mdiobus */
#define REALTEK_MDIO_CTRL0_REG
#define REALTEK_MDIO_START_REG
#define REALTEK_MDIO_CTRL1_REG
#define REALTEK_MDIO_ADDRESS_REG
#define REALTEK_MDIO_DATA_WRITE_REG
#define REALTEK_MDIO_DATA_READ_REG

#define REALTEK_MDIO_START_OP
#define REALTEK_MDIO_ADDR_OP
#define REALTEK_MDIO_READ_OP
#define REALTEK_MDIO_WRITE_OP

static int realtek_mdio_write(void *ctx, u32 reg, u32 val)
{}

static int realtek_mdio_read(void *ctx, u32 reg, u32 *val)
{}

static const struct realtek_interface_info realtek_mdio_info =;

/**
 * realtek_mdio_probe() - Probe a platform device for an MDIO-connected switch
 * @mdiodev: mdio_device to probe on.
 *
 * This function should be used as the .probe in an mdio_driver. After
 * calling the common probe function for both interfaces, it initializes the
 * values specific for MDIO-connected devices. Finally, it calls a common
 * function to register the DSA switch.
 *
 * Context: Can sleep. Takes and releases priv->map_lock.
 * Return: Returns 0 on success, a negative error on failure.
 */
int realtek_mdio_probe(struct mdio_device *mdiodev)
{}
EXPORT_SYMBOL_NS_GPL();

/**
 * realtek_mdio_remove() - Remove the driver of an MDIO-connected switch
 * @mdiodev: mdio_device to be removed.
 *
 * This function should be used as the .remove_new in an mdio_driver. First
 * it unregisters the DSA switch and then it calls the common remove function.
 *
 * Context: Can sleep.
 * Return: Nothing.
 */
void realtek_mdio_remove(struct mdio_device *mdiodev)
{}
EXPORT_SYMBOL_NS_GPL();

/**
 * realtek_mdio_shutdown() - Shutdown the driver of a MDIO-connected switch
 * @mdiodev: mdio_device shutting down.
 *
 * This function should be used as the .shutdown in a platform_driver. It calls
 * the common shutdown function.
 *
 * Context: Can sleep.
 * Return: Nothing.
 */
void realtek_mdio_shutdown(struct mdio_device *mdiodev)
{}
EXPORT_SYMBOL_NS_GPL();