[Devices] Add new device CIG CS6436-56P (#2587)
* Add new device CIG CS6436-56P
* Delete minigraph.xml
It isn't necessary in the current system, just delete it
* Update qos.json.j2
* Update port_config.ini
Add the speed column. The cmd to show interface status as:
root@switch1:~# show interface status
Interface Lanes Speed MTU Alias Oper Admin Type Asym PFC
----------- --------------- ------- ----- ------------ ------ ------- ------ ----------
Ethernet0 8 25G 9100 Ethernet1/1 up up SFP N/A
Ethernet1 9 25G 9100 Ethernet2/1 up up SFP N/A
Ethernet2 10 25G 9100 Ethernet3/1 down down N/A N/A
Ethernet3 11 25G 9100 Ethernet4/1 down down N/A N/A
Ethernet4 12 25G 9100 Ethernet5/1 down down N/A N/A
Ethernet5 13 25G 9100 Ethernet6/1 down down N/A N/A
Ethernet6 14 25G 9100 Ethernet7/1 down down N/A N/A
Ethernet7 15 25G 9100 Ethernet8/1 down down N/A N/A
Ethernet8 16 25G 9100 Ethernet9/1 down down N/A N/A
Ethernet9 17 25G 9100 Ethernet10/1 down down N/A N/A
Ethernet10 18 25G 9100 Ethernet11/1 down down N/A N/A
Ethernet11 19 25G 9100 Ethernet12/1 down down N/A N/A
Ethernet12 20 25G 9100 Ethernet13/1 down down N/A N/A
Ethernet13 21 25G 9100 Ethernet14/1 down down N/A N/A
Ethernet14 22 25G 9100 Ethernet15/1 down down N/A N/A
Ethernet15 23 25G 9100 Ethernet16/1 down down N/A N/A
Ethernet16 32 25G 9100 Ethernet17/1 down down N/A N/A
Ethernet17 33 25G 9100 Ethernet18/1 down down N/A N/A
Ethernet18 34 25G 9100 Ethernet19/1 down down N/A N/A
Ethernet19 35 25G 9100 Ethernet20/1 down down N/A N/A
Ethernet20 40 25G 9100 Ethernet21/1 down down N/A N/A
Ethernet21 41 25G 9100 Ethernet22/1 down down N/A N/A
Ethernet22 42 25G 9100 Ethernet23/1 down down N/A N/A
Ethernet23 43 25G 9100 Ethernet24/1 down down N/A N/A
Ethernet24 48 25G 9100 Ethernet25/1 down down N/A N/A
Ethernet25 49 25G 9100 Ethernet26/1 down down N/A N/A
Ethernet26 50 25G 9100 Ethernet27/1 down down N/A N/A
Ethernet27 51 25G 9100 Ethernet28/1 down down N/A N/A
Ethernet28 56 25G 9100 Ethernet29/1 down down N/A N/A
Ethernet29 57 25G 9100 Ethernet30/1 down down N/A N/A
Ethernet30 58 25G 9100 Ethernet31/1 down down N/A N/A
Ethernet31 59 25G 9100 Ethernet32/1 down down N/A N/A
Ethernet32 64 25G 9100 Ethernet33/1 down down N/A N/A
Ethernet33 65 25G 9100 Ethernet34/1 down down N/A N/A
Ethernet34 66 25G 9100 Ethernet35/1 down down N/A N/A
Ethernet35 67 25G 9100 Ethernet36/1 down down N/A N/A
Ethernet36 68 25G 9100 Ethernet37/1 down down N/A N/A
Ethernet37 69 25G 9100 Ethernet38/1 down down N/A N/A
Ethernet38 70 25G 9100 Ethernet39/1 down down N/A N/A
Ethernet39 71 25G 9100 Ethernet40/1 down down N/A N/A
Ethernet40 72 25G 9100 Ethernet41/1 down down N/A N/A
Ethernet41 73 25G 9100 Ethernet42/1 down down N/A N/A
Ethernet42 74 25G 9100 Ethernet43/1 down down N/A N/A
Ethernet43 75 25G 9100 Ethernet44/1 down down N/A N/A
Ethernet44 76 25G 9100 Ethernet45/1 down down N/A N/A
Ethernet45 77 25G 9100 Ethernet46/1 down down N/A N/A
Ethernet46 78 25G 9100 Ethernet47/1 down down N/A N/A
Ethernet47 79 25G 9100 Ethernet48/1 down down N/A N/A
Ethernet48 84,85,86,87 100G 9100 Ethernet49/1 up up QSFP28 N/A
Ethernet49 80,81,82,83 100G 9100 Ethernet50/1 up up QSFP28 N/A
Ethernet50 92,93,94,95 100G 9100 Ethernet51/1 down down N/A N/A
Ethernet51 88,89,90,91 100G 9100 Ethernet52/1 down down N/A N/A
Ethernet52 108,109,110,111 100G 9100 Ethernet53/1 down down N/A N/A
Ethernet53 104,105,106,107 100G 9100 Ethernet54/1 down down N/A N/A
Ethernet54 116,117,118,119 100G 9100 Ethernet55/1 down down N/A N/A
Ethernet55 112,113,114,115 100G 9100 Ethernet56/1 down down N/A N/A
root@switch1:~#
2019-04-18 04:27:39 -05:00
|
|
|
/* --------------------------------------------------------------------
|
|
|
|
|
|
|
|
* A hwmon driver for the CIG cs6436-56P
|
|
|
|
*
|
|
|
|
* Copyright (C) 2018 Cambridge, Inc.
|
|
|
|
*
|
|
|
|
* 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.
|
|
|
|
*
|
|
|
|
* This program is distributed in the hope that it will be useful,
|
|
|
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
|
|
* GNU General Public License for more details.
|
|
|
|
*
|
|
|
|
* You should have received a copy of the GNU General Public License
|
|
|
|
* along with this program; if not, write to the Free Software
|
|
|
|
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
|
|
|
*/
|
|
|
|
|
|
|
|
/* -------------------------------------------------------------------- */
|
|
|
|
|
|
|
|
#ifndef I2C_LPC_H
|
|
|
|
#define I2C_LPC_H 1
|
|
|
|
|
|
|
|
/* ----- Control register bits ---------------------------------------- */
|
|
|
|
#define I2C_LPC_PIN 0x80
|
|
|
|
#define I2C_LPC_ESO 0x40
|
|
|
|
#define I2C_LPC_ES1 0x20
|
|
|
|
#define I2C_LPC_ES2 0x10
|
|
|
|
#define I2C_LPC_ENI 0x08
|
|
|
|
|
|
|
|
#define I2C_LPC_STO 0x40
|
|
|
|
#define I2C_LPC_ACK 0x01
|
|
|
|
|
|
|
|
/*command register*/
|
|
|
|
#define I2C_LPC_STA 0x80
|
|
|
|
#define I2C_LPC_ABT 0x40
|
|
|
|
|
|
|
|
/*status register*/
|
|
|
|
#define I2C_LPC_TBE 0x02
|
|
|
|
#define I2C_LPC_IBB 0x80
|
|
|
|
#define I2C_LPC_RBF 0x01
|
|
|
|
#define I2C_LPC_TD 0x08
|
|
|
|
|
|
|
|
#define I2C_LPC_START I2C_LPC_STA
|
|
|
|
#define I2C_LPC_STOP I2C_LPC_STO
|
|
|
|
#define I2C_LPC_REPSTART I2C_LPC_STA
|
|
|
|
#define I2C_LPC_IDLE
|
|
|
|
|
|
|
|
/* ----- Status register bits ----------------------------------------- */
|
|
|
|
/*#define I2C_LPC_PIN 0x80 as above*/
|
|
|
|
|
|
|
|
#define I2C_LPC_INI 0x40 /* 1 if not initialized */
|
|
|
|
#define I2C_LPC_STS 0x20
|
|
|
|
#define I2C_LPC_BER 0x10
|
|
|
|
#define I2C_LPC_AD0 0x08
|
|
|
|
#define I2C_LPC_LRB 0x08
|
|
|
|
#define I2C_LPC_AAS 0x04
|
|
|
|
#define I2C_LPC_LAB 0x02
|
|
|
|
#define I2C_LPC_BB 0x80
|
|
|
|
|
|
|
|
/* ----- Chip clock frequencies --------------------------------------- */
|
|
|
|
#define I2C_LPC_CLK3 0x00
|
|
|
|
#define I2C_LPC_CLK443 0x10
|
|
|
|
#define I2C_LPC_CLK6 0x14
|
2020-02-17 16:09:15 -06:00
|
|
|
#define I2C_LPC_CLK 0x18
|
[Devices] Add new device CIG CS6436-56P (#2587)
* Add new device CIG CS6436-56P
* Delete minigraph.xml
It isn't necessary in the current system, just delete it
* Update qos.json.j2
* Update port_config.ini
Add the speed column. The cmd to show interface status as:
root@switch1:~# show interface status
Interface Lanes Speed MTU Alias Oper Admin Type Asym PFC
----------- --------------- ------- ----- ------------ ------ ------- ------ ----------
Ethernet0 8 25G 9100 Ethernet1/1 up up SFP N/A
Ethernet1 9 25G 9100 Ethernet2/1 up up SFP N/A
Ethernet2 10 25G 9100 Ethernet3/1 down down N/A N/A
Ethernet3 11 25G 9100 Ethernet4/1 down down N/A N/A
Ethernet4 12 25G 9100 Ethernet5/1 down down N/A N/A
Ethernet5 13 25G 9100 Ethernet6/1 down down N/A N/A
Ethernet6 14 25G 9100 Ethernet7/1 down down N/A N/A
Ethernet7 15 25G 9100 Ethernet8/1 down down N/A N/A
Ethernet8 16 25G 9100 Ethernet9/1 down down N/A N/A
Ethernet9 17 25G 9100 Ethernet10/1 down down N/A N/A
Ethernet10 18 25G 9100 Ethernet11/1 down down N/A N/A
Ethernet11 19 25G 9100 Ethernet12/1 down down N/A N/A
Ethernet12 20 25G 9100 Ethernet13/1 down down N/A N/A
Ethernet13 21 25G 9100 Ethernet14/1 down down N/A N/A
Ethernet14 22 25G 9100 Ethernet15/1 down down N/A N/A
Ethernet15 23 25G 9100 Ethernet16/1 down down N/A N/A
Ethernet16 32 25G 9100 Ethernet17/1 down down N/A N/A
Ethernet17 33 25G 9100 Ethernet18/1 down down N/A N/A
Ethernet18 34 25G 9100 Ethernet19/1 down down N/A N/A
Ethernet19 35 25G 9100 Ethernet20/1 down down N/A N/A
Ethernet20 40 25G 9100 Ethernet21/1 down down N/A N/A
Ethernet21 41 25G 9100 Ethernet22/1 down down N/A N/A
Ethernet22 42 25G 9100 Ethernet23/1 down down N/A N/A
Ethernet23 43 25G 9100 Ethernet24/1 down down N/A N/A
Ethernet24 48 25G 9100 Ethernet25/1 down down N/A N/A
Ethernet25 49 25G 9100 Ethernet26/1 down down N/A N/A
Ethernet26 50 25G 9100 Ethernet27/1 down down N/A N/A
Ethernet27 51 25G 9100 Ethernet28/1 down down N/A N/A
Ethernet28 56 25G 9100 Ethernet29/1 down down N/A N/A
Ethernet29 57 25G 9100 Ethernet30/1 down down N/A N/A
Ethernet30 58 25G 9100 Ethernet31/1 down down N/A N/A
Ethernet31 59 25G 9100 Ethernet32/1 down down N/A N/A
Ethernet32 64 25G 9100 Ethernet33/1 down down N/A N/A
Ethernet33 65 25G 9100 Ethernet34/1 down down N/A N/A
Ethernet34 66 25G 9100 Ethernet35/1 down down N/A N/A
Ethernet35 67 25G 9100 Ethernet36/1 down down N/A N/A
Ethernet36 68 25G 9100 Ethernet37/1 down down N/A N/A
Ethernet37 69 25G 9100 Ethernet38/1 down down N/A N/A
Ethernet38 70 25G 9100 Ethernet39/1 down down N/A N/A
Ethernet39 71 25G 9100 Ethernet40/1 down down N/A N/A
Ethernet40 72 25G 9100 Ethernet41/1 down down N/A N/A
Ethernet41 73 25G 9100 Ethernet42/1 down down N/A N/A
Ethernet42 74 25G 9100 Ethernet43/1 down down N/A N/A
Ethernet43 75 25G 9100 Ethernet44/1 down down N/A N/A
Ethernet44 76 25G 9100 Ethernet45/1 down down N/A N/A
Ethernet45 77 25G 9100 Ethernet46/1 down down N/A N/A
Ethernet46 78 25G 9100 Ethernet47/1 down down N/A N/A
Ethernet47 79 25G 9100 Ethernet48/1 down down N/A N/A
Ethernet48 84,85,86,87 100G 9100 Ethernet49/1 up up QSFP28 N/A
Ethernet49 80,81,82,83 100G 9100 Ethernet50/1 up up QSFP28 N/A
Ethernet50 92,93,94,95 100G 9100 Ethernet51/1 down down N/A N/A
Ethernet51 88,89,90,91 100G 9100 Ethernet52/1 down down N/A N/A
Ethernet52 108,109,110,111 100G 9100 Ethernet53/1 down down N/A N/A
Ethernet53 104,105,106,107 100G 9100 Ethernet54/1 down down N/A N/A
Ethernet54 116,117,118,119 100G 9100 Ethernet55/1 down down N/A N/A
Ethernet55 112,113,114,115 100G 9100 Ethernet56/1 down down N/A N/A
root@switch1:~#
2019-04-18 04:27:39 -05:00
|
|
|
#define I2C_LPC_CLK12 0x1c
|
|
|
|
|
|
|
|
/* ----- transmission frequencies ------------------------------------- */
|
|
|
|
#define I2C_LPC_TRNS90 0x00 /* 90 kHz */
|
|
|
|
#define I2C_LPC_TRNS45 0x01 /* 45 kHz */
|
|
|
|
#define I2C_LPC_TRNS11 0x02 /* 11 kHz */
|
|
|
|
#define I2C_LPC_TRNS15 0x03 /* 1.5 kHz */
|
|
|
|
|
|
|
|
|
|
|
|
#define I2C_LPC_OWNADR 0
|
|
|
|
#define I2C_LPC_INTREG I2C_LPC_ES2
|
|
|
|
#define I2C_LPC_CLKREG I2C_LPC_ES1
|
|
|
|
|
|
|
|
#define I2C_LPC_REG_TEST 0x01
|
|
|
|
#define I2C_LPC_REG_BUS_SEL 0x80
|
|
|
|
#define I2C_LPC_REG_DEVICE_ADDR 0x81
|
|
|
|
#define I2C_LPC_REG_BYTE_COUNT 0x83
|
|
|
|
#define I2C_LPC_REG_COMMAND 0x84
|
|
|
|
#define I2C_LPC_REG_STATUS 0x85
|
|
|
|
#define I2C_LPC_REG_DATA_RX1 0x86
|
|
|
|
#define I2C_LPC_REG_DATA_RX2 0x87
|
|
|
|
#define I2C_LPC_REG_DATA_RX3 0x88
|
|
|
|
#define I2C_LPC_REG_DATA_RX4 0x89
|
|
|
|
#define I2C_LPC_REG_DATA_TX1 0x8a
|
|
|
|
#define I2C_LPC_REG_DATA_TX2 0x8b
|
|
|
|
#define I2C_LPC_REG_DATA_TX3 0x8c
|
|
|
|
#define I2C_LPC_REG_DATA_TX4 0x8d
|
|
|
|
|
2020-02-17 16:09:15 -06:00
|
|
|
|
|
|
|
#define ADDR_REG_SFP_STATUS_ADDR 0X62 //reg addr +R/W# //1031
|
|
|
|
#define ADDR_REG_SFP_STATUS_TX 0X63 // write data
|
|
|
|
#define ADDR_REG_SFP_STATUS_RX 0X64 //read data
|
|
|
|
#define ADDR_REG_SFP_STATUS_COMMAND 0X65 //cmd bit7=1,go
|
|
|
|
#define ADDR_REG_SFP_STATUS_STATUS 0X66 //status
|
|
|
|
|
|
|
|
#define CPLD_MASTER_INTERRUPT_STATUS_REG 0x20
|
|
|
|
#define CPLD_MASTER_INTERRUPT_MASK_REG 0x21
|
|
|
|
#define CPLD_MASTER_INTERRUPT_ALL 0x3f
|
|
|
|
#define CPLD_MASTER_INTERRUPT_CPLD2 0x20
|
|
|
|
#define CPLD_MASTER_INTERRUPT_CPLD1 0x10
|
|
|
|
#define CPLD_MASTER_INTERRUPT_PSU2 0x08
|
|
|
|
#define CPLD_MASTER_INTERRUPT_PSU1 0x04
|
|
|
|
#define CPLD_MASTER_INTERRUPT_6320 0x02
|
|
|
|
#define CPLD_MASTER_INTERRUPT_LSW 0x01
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#define CPLD_SLAVE1_INTERRUPT_STATUS_L_REG 0x20
|
|
|
|
#define CPLD_SLAVE1_INTERRUPT_STATUS_H_REG 0x21
|
|
|
|
#define CPLD_SLAVE2_INTERRUPT_STATUS_L_REG 0x22
|
|
|
|
#define CPLD_SLAVE2_INTERRUPT_STATUS_H_REG 0x23
|
|
|
|
#define CPLD_SLAVE1_INTERRUPT_MASK_REG 0x24
|
|
|
|
#define CPLD_SLAVE2_INTERRUPT_MASK_REG 0x25
|
|
|
|
|
|
|
|
|
|
|
|
#define CPLD_SLAVE1_PRESENT08_REG 0x01
|
|
|
|
#define CPLD_SLAVE1_PRESENT16_REG 0x02
|
|
|
|
#define CPLD_SLAVE1_PRESENT24_REG 0x03
|
|
|
|
#define CPLD_SLAVE2_PRESENT32_REG 0x04
|
|
|
|
#define CPLD_SLAVE2_PRESENT40_REG 0x05
|
|
|
|
#define CPLD_SLAVE2_PRESENT48_REG 0x06
|
|
|
|
|
|
|
|
#define CPLD_SLAVE1_RX_LOST08_REG 0x07
|
|
|
|
#define CPLD_SLAVE1_RX_LOST16_REG 0x08
|
|
|
|
#define CPLD_SLAVE1_RX_LOST24_REG 0x09
|
|
|
|
#define CPLD_SLAVE2_RX_LOST32_REG 0x0a
|
|
|
|
#define CPLD_SLAVE2_RX_LOST40_REG 0x0b
|
|
|
|
#define CPLD_SLAVE2_RX_LOST48_REG 0x0c
|
|
|
|
|
|
|
|
#define CPLD_SLAVE1_TX_FAULT08_REG 0x0d
|
|
|
|
#define CPLD_SLAVE1_TX_FAULT16_REG 0x0e
|
|
|
|
#define CPLD_SLAVE1_TX_FAULT24_REG 0x0f
|
|
|
|
#define CPLD_SLAVE2_TX_FAULT32_REG 0x10
|
|
|
|
#define CPLD_SLAVE2_TX_FAULT40_REG 0x11
|
|
|
|
#define CPLD_SLAVE2_TX_FAULT48_REG 0x12
|
|
|
|
|
|
|
|
#define CPLD_SLAVE2_PRESENT56_REG 0x19
|
|
|
|
#define CPLD_SLAVE2_QSFP_CR56_REG 0x1a
|
|
|
|
|
|
|
|
|
|
|
|
#define CPLD_SLAVE1_INTERRUPT_PRESENT08 0x0001
|
|
|
|
#define CPLD_SLAVE1_INTERRUPT_PRESENT16 0x0002
|
|
|
|
#define CPLD_SLAVE1_INTERRUPT_PRESENT24 0x0004
|
|
|
|
#define CPLD_SLAVE2_INTERRUPT_PRESENT32 0x0001
|
|
|
|
#define CPLD_SLAVE2_INTERRUPT_PRESENT40 0x0002
|
|
|
|
#define CPLD_SLAVE2_INTERRUPT_PRESENT48 0x0004
|
|
|
|
|
|
|
|
#define CPLD_SLAVE2_INTERRUPT_QSFP_CR56 0x0200
|
|
|
|
#define CPLD_SLAVE2_INTERRUPT_PRESENT56 0x0400
|
|
|
|
|
|
|
|
#define CPLD_SLAVE1_INTERRUPT_RX_LOST08 0x0008
|
|
|
|
#define CPLD_SLAVE1_INTERRUPT_RX_LOST16 0x0010
|
|
|
|
#define CPLD_SLAVE1_INTERRUPT_RX_LOST24 0x0020
|
|
|
|
#define CPLD_SLAVE2_INTERRUPT_RX_LOST32 0x0008
|
|
|
|
#define CPLD_SLAVE2_INTERRUPT_RX_LOST40 0x0010
|
|
|
|
#define CPLD_SLAVE2_INTERRUPT_RX_LOST48 0x0020
|
|
|
|
|
|
|
|
#define CPLD_SLAVE1_INTERRUPT_TX_FAULT08 0x0040
|
|
|
|
#define CPLD_SLAVE1_INTERRUPT_TX_FAULT16 0x0080
|
|
|
|
#define CPLD_SLAVE1_INTERRUPT_TX_FAULT24 0x0100
|
|
|
|
#define CPLD_SLAVE2_INTERRUPT_TX_FAULT32 0x0040
|
|
|
|
#define CPLD_SLAVE2_INTERRUPT_TX_FAULT40 0x0080
|
|
|
|
#define CPLD_SLAVE2_INTERRUPT_TX_FAULT48 0x0100
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#define WAIT_TIME_OUT_COUNT 100
|
|
|
|
|
|
|
|
|
|
|
|
struct i2c_algo_lpc_data {
|
|
|
|
void *data; /* private data for lolevel routines */
|
|
|
|
void (*setlpc) (void *data, int ctl, int val);
|
|
|
|
int (*getlpc) (void *data, int ctl);
|
|
|
|
int (*getown) (void *data);
|
|
|
|
int (*getclock) (void *data);
|
|
|
|
void (*waitforpin) (void *data);
|
|
|
|
|
|
|
|
int (*xfer_begin) (void *data);
|
|
|
|
int (*xfer_end) (void *data);
|
|
|
|
|
|
|
|
/* Multi-master lost arbitration back-off delay (msecs)
|
|
|
|
* This should be set by the bus adapter or knowledgable client
|
|
|
|
* if bus is multi-mastered, else zero
|
|
|
|
*/
|
|
|
|
unsigned long lab_mdelay;
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
struct subsys_private {
|
|
|
|
struct kset subsys;
|
|
|
|
struct kset *devices_kset;
|
|
|
|
struct list_head interfaces;
|
|
|
|
struct mutex mutex;
|
|
|
|
|
|
|
|
struct kset *drivers_kset;
|
|
|
|
struct klist klist_devices;
|
|
|
|
struct klist klist_drivers;
|
|
|
|
struct blocking_notifier_head bus_notifier;
|
|
|
|
unsigned int drivers_autoprobe:1;
|
|
|
|
struct bus_type *bus;
|
|
|
|
|
|
|
|
struct kset glue_dirs;
|
|
|
|
struct class *class;
|
|
|
|
};
|
|
|
|
|
|
|
|
void cs6436_56p_sysfs_add_client(struct i2c_client *client);
|
|
|
|
void cs6436_56p_sysfs_remove_client(struct i2c_client *client);
|
|
|
|
|
|
|
|
|
|
|
|
#endif /* I2C_LPC8584_H */
|