2016-09-29 12:21:53 -04:00
/*
* Marvell 88E6 xxx Switch Global ( 1 ) Registers support
*
* Copyright ( c ) 2008 Marvell Semiconductor
*
* Copyright ( c ) 2016 Vivien Didelot < vivien . didelot @ savoirfairelinux . com >
*
* This program is free software ; you can redistribute it and / or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation ; either version 2 of the License , or
* ( at your option ) any later version .
*/
# ifndef _MV88E6XXX_GLOBAL1_H
# define _MV88E6XXX_GLOBAL1_H
# include "mv88e6xxx.h"
int mv88e6xxx_g1_read ( struct mv88e6xxx_chip * chip , int reg , u16 * val ) ;
int mv88e6xxx_g1_write ( struct mv88e6xxx_chip * chip , int reg , u16 val ) ;
int mv88e6xxx_g1_wait ( struct mv88e6xxx_chip * chip , int reg , u16 mask ) ;
2016-12-05 17:30:27 -05:00
int mv88e6185_g1_reset ( struct mv88e6xxx_chip * chip ) ;
int mv88e6352_g1_reset ( struct mv88e6xxx_chip * chip ) ;
2016-12-05 17:30:28 -05:00
int mv88e6185_g1_ppu_enable ( struct mv88e6xxx_chip * chip ) ;
int mv88e6185_g1_ppu_disable ( struct mv88e6xxx_chip * chip ) ;
2016-11-21 23:27:05 +01:00
int mv88e6xxx_g1_stats_wait ( struct mv88e6xxx_chip * chip ) ;
2016-11-21 23:26:58 +01:00
int mv88e6xxx_g1_stats_snapshot ( struct mv88e6xxx_chip * chip , int port ) ;
int mv88e6320_g1_stats_snapshot ( struct mv88e6xxx_chip * chip , int port ) ;
2016-11-21 23:27:00 +01:00
int mv88e6390_g1_stats_snapshot ( struct mv88e6xxx_chip * chip , int port ) ;
2016-11-21 23:27:01 +01:00
int mv88e6390_g1_stats_set_histogram ( struct mv88e6xxx_chip * chip ) ;
2016-11-21 23:27:05 +01:00
void mv88e6xxx_g1_stats_read ( struct mv88e6xxx_chip * chip , int stat , u32 * val ) ;
2016-12-03 04:35:17 +01:00
int mv88e6095_g1_set_egress_port ( struct mv88e6xxx_chip * chip , int port ) ;
int mv88e6390_g1_set_egress_port ( struct mv88e6xxx_chip * chip , int port ) ;
int mv88e6095_g1_set_cpu_port ( struct mv88e6xxx_chip * chip , int port ) ;
int mv88e6390_g1_set_cpu_port ( struct mv88e6xxx_chip * chip , int port ) ;
2016-12-03 04:45:16 +01:00
int mv88e6390_g1_mgmt_rsvd2cpu ( struct mv88e6xxx_chip * chip ) ;
2016-09-29 12:21:53 -04:00
2017-03-11 16:12:51 -05:00
int mv88e6xxx_g1_atu_set_learn2all ( struct mv88e6xxx_chip * chip , bool learn2all ) ;
2017-03-11 16:12:48 -05:00
int mv88e6xxx_g1_atu_set_age_time ( struct mv88e6xxx_chip * chip ,
unsigned int msecs ) ;
2017-03-11 16:12:53 -05:00
int mv88e6xxx_g1_atu_getnext ( struct mv88e6xxx_chip * chip , u16 fid ,
struct mv88e6xxx_atu_entry * entry ) ;
2017-03-11 16:12:52 -05:00
int mv88e6xxx_g1_atu_loadpurge ( struct mv88e6xxx_chip * chip , u16 fid ,
struct mv88e6xxx_atu_entry * entry ) ;
2017-03-11 16:12:48 -05:00
2016-09-29 12:21:53 -04:00
# endif /* _MV88E6XXX_GLOBAL1_H */