linux/drivers/net/dsa/vitesse-vsc73xx.h
<<
>>
Prefs
   1/* SPDX-License-Identifier: GPL-2.0 */
   2#include <linux/device.h>
   3#include <linux/etherdevice.h>
   4#include <linux/gpio/driver.h>
   5
   6/**
   7 * struct vsc73xx - VSC73xx state container
   8 */
   9struct vsc73xx {
  10        struct device                   *dev;
  11        struct gpio_desc                *reset;
  12        struct dsa_switch               *ds;
  13        struct gpio_chip                gc;
  14        u16                             chipid;
  15        u8                              addr[ETH_ALEN];
  16        const struct vsc73xx_ops        *ops;
  17        void                            *priv;
  18};
  19
  20struct vsc73xx_ops {
  21        int (*read)(struct vsc73xx *vsc, u8 block, u8 subblock, u8 reg,
  22                    u32 *val);
  23        int (*write)(struct vsc73xx *vsc, u8 block, u8 subblock, u8 reg,
  24                     u32 val);
  25};
  26
  27int vsc73xx_is_addr_valid(u8 block, u8 subblock);
  28int vsc73xx_probe(struct vsc73xx *vsc);
  29int vsc73xx_remove(struct vsc73xx *vsc);
  30void vsc73xx_shutdown(struct vsc73xx *vsc);
  31