Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

fsi: Move defines to common header

The FSI master registers are common to the hub and AST2600 master (and
the FSP2, if someone was to upstream a driver for that).

Add defines to the fsi-master.h header, and introduce headings to
delineate the existing low level details.

Acked-by: Andrew Jeffery <andrew@aj.id.au>
Acked-by: Jeremy Kerr <jk@ozlabs.org>
Signed-off-by: Joel Stanley <joel@jms.id.au>
Link: https://lore.kernel.org/r/20191108051945.7109-8-joel@jms.id.au
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

authored by

Joel Stanley and committed by
Greg Kroah-Hartman
8bcd06d0 56ec311f

+71 -46
-46
drivers/fsi/fsi-master-hub.c
··· 13 13 14 14 #include "fsi-master.h" 15 15 16 - /* Control Registers */ 17 - #define FSI_MMODE 0x0 /* R/W: mode */ 18 - #define FSI_MDLYR 0x4 /* R/W: delay */ 19 - #define FSI_MCRSP 0x8 /* R/W: clock rate */ 20 - #define FSI_MENP0 0x10 /* R/W: enable */ 21 - #define FSI_MLEVP0 0x18 /* R: plug detect */ 22 - #define FSI_MSENP0 0x18 /* S: Set enable */ 23 - #define FSI_MCENP0 0x20 /* C: Clear enable */ 24 - #define FSI_MAEB 0x70 /* R: Error address */ 25 - #define FSI_MVER 0x74 /* R: master version/type */ 26 - #define FSI_MRESP0 0xd0 /* W: Port reset */ 27 - #define FSI_MESRB0 0x1d0 /* R: Master error status */ 28 - #define FSI_MRESB0 0x1d0 /* W: Reset bridge */ 29 - #define FSI_MECTRL 0x2e0 /* W: Error control */ 30 - 31 - /* MMODE: Mode control */ 32 - #define FSI_MMODE_EIP 0x80000000 /* Enable interrupt polling */ 33 - #define FSI_MMODE_ECRC 0x40000000 /* Enable error recovery */ 34 - #define FSI_MMODE_EPC 0x10000000 /* Enable parity checking */ 35 - #define FSI_MMODE_P8_TO_LSB 0x00000010 /* Timeout value LSB */ 36 - /* MSB=1, LSB=0 is 0.8 ms */ 37 - /* MSB=0, LSB=1 is 0.9 ms */ 38 - #define FSI_MMODE_CRS0SHFT 18 /* Clk rate selection 0 shift */ 39 - #define FSI_MMODE_CRS0MASK 0x3ff /* Clk rate selection 0 mask */ 40 - #define FSI_MMODE_CRS1SHFT 8 /* Clk rate selection 1 shift */ 41 - #define FSI_MMODE_CRS1MASK 0x3ff /* Clk rate selection 1 mask */ 42 - 43 - /* MRESB: Reset brindge */ 44 - #define FSI_MRESB_RST_GEN 0x80000000 /* General reset */ 45 - #define FSI_MRESB_RST_ERR 0x40000000 /* Error Reset */ 46 - 47 - /* MRESB: Reset port */ 48 - #define FSI_MRESP_RST_ALL_MASTER 0x20000000 /* Reset all FSI masters */ 49 - #define FSI_MRESP_RST_ALL_LINK 0x10000000 /* Reset all FSI port contr. */ 50 - #define FSI_MRESP_RST_MCR 0x08000000 /* Reset FSI master reg. */ 51 - #define FSI_MRESP_RST_PYE 0x04000000 /* Reset FSI parity error */ 52 - #define FSI_MRESP_RST_ALL 0xfc000000 /* Reset any error */ 53 - 54 - /* MECTRL: Error control */ 55 - #define FSI_MECTRL_EOAE 0x8000 /* Enable machine check when */ 56 - /* master 0 in error */ 57 - #define FSI_MECTRL_P8_AUTO_TERM 0x4000 /* Auto terminate */ 58 - 59 16 #define FSI_ENGID_HUB_MASTER 0x1c 60 - #define FSI_HUB_LINK_OFFSET 0x80000 61 - #define FSI_HUB_LINK_SIZE 0x80000 62 - #define FSI_HUB_MASTER_MAX_LINKS 8 63 17 64 18 #define FSI_LINK_ENABLE_SETUP_TIME 10 /* in mS */ 65 19
+71
drivers/fsi/fsi-master.h
··· 12 12 #include <linux/device.h> 13 13 #include <linux/mutex.h> 14 14 15 + /* 16 + * Master registers 17 + * 18 + * These are used by hardware masters, such as the one in the FSP2, AST2600 and 19 + * the hub master in POWER processors. 20 + */ 21 + 22 + /* Control Registers */ 23 + #define FSI_MMODE 0x0 /* R/W: mode */ 24 + #define FSI_MDLYR 0x4 /* R/W: delay */ 25 + #define FSI_MCRSP 0x8 /* R/W: clock rate */ 26 + #define FSI_MENP0 0x10 /* R/W: enable */ 27 + #define FSI_MLEVP0 0x18 /* R: plug detect */ 28 + #define FSI_MSENP0 0x18 /* S: Set enable */ 29 + #define FSI_MCENP0 0x20 /* C: Clear enable */ 30 + #define FSI_MAEB 0x70 /* R: Error address */ 31 + #define FSI_MVER 0x74 /* R: master version/type */ 32 + #define FSI_MSTAP0 0xd0 /* R: Port status */ 33 + #define FSI_MRESP0 0xd0 /* W: Port reset */ 34 + #define FSI_MESRB0 0x1d0 /* R: Master error status */ 35 + #define FSI_MRESB0 0x1d0 /* W: Reset bridge */ 36 + #define FSI_MSCSB0 0x1d4 /* R: Master sub command stack */ 37 + #define FSI_MATRB0 0x1d8 /* R: Master address trace */ 38 + #define FSI_MDTRB0 0x1dc /* R: Master data trace */ 39 + #define FSI_MECTRL 0x2e0 /* W: Error control */ 40 + 41 + /* MMODE: Mode control */ 42 + #define FSI_MMODE_EIP 0x80000000 /* Enable interrupt polling */ 43 + #define FSI_MMODE_ECRC 0x40000000 /* Enable error recovery */ 44 + #define FSI_MMODE_RELA 0x20000000 /* Enable relative address commands */ 45 + #define FSI_MMODE_EPC 0x10000000 /* Enable parity checking */ 46 + #define FSI_MMODE_P8_TO_LSB 0x00000010 /* Timeout value LSB */ 47 + /* MSB=1, LSB=0 is 0.8 ms */ 48 + /* MSB=0, LSB=1 is 0.9 ms */ 49 + #define FSI_MMODE_CRS0SHFT 18 /* Clk rate selection 0 shift */ 50 + #define FSI_MMODE_CRS0MASK 0x3ff /* Clk rate selection 0 mask */ 51 + #define FSI_MMODE_CRS1SHFT 8 /* Clk rate selection 1 shift */ 52 + #define FSI_MMODE_CRS1MASK 0x3ff /* Clk rate selection 1 mask */ 53 + 54 + /* MRESB: Reset brindge */ 55 + #define FSI_MRESB_RST_GEN 0x80000000 /* General reset */ 56 + #define FSI_MRESB_RST_ERR 0x40000000 /* Error Reset */ 57 + 58 + /* MRESP: Reset port */ 59 + #define FSI_MRESP_RST_ALL_MASTER 0x20000000 /* Reset all FSI masters */ 60 + #define FSI_MRESP_RST_ALL_LINK 0x10000000 /* Reset all FSI port contr. */ 61 + #define FSI_MRESP_RST_MCR 0x08000000 /* Reset FSI master reg. */ 62 + #define FSI_MRESP_RST_PYE 0x04000000 /* Reset FSI parity error */ 63 + #define FSI_MRESP_RST_ALL 0xfc000000 /* Reset any error */ 64 + 65 + /* MECTRL: Error control */ 66 + #define FSI_MECTRL_EOAE 0x8000 /* Enable machine check when */ 67 + /* master 0 in error */ 68 + #define FSI_MECTRL_P8_AUTO_TERM 0x4000 /* Auto terminate */ 69 + 70 + #define FSI_HUB_LINK_OFFSET 0x80000 71 + #define FSI_HUB_LINK_SIZE 0x80000 72 + #define FSI_HUB_MASTER_MAX_LINKS 8 73 + 74 + /* 75 + * Protocol definitions 76 + * 77 + * These are used by low level masters that bit-bang out the protocol 78 + */ 79 + 15 80 /* Various protocol delays */ 16 81 #define FSI_ECHO_DELAY_CLOCKS 16 /* Number clocks for echo delay */ 17 82 #define FSI_SEND_DELAY_CLOCKS 16 /* Number clocks for send delay */ ··· 111 46 112 47 /* fsi-master definition and flags */ 113 48 #define FSI_MASTER_FLAG_SWCLOCK 0x1 49 + 50 + /* 51 + * Structures and function prototypes 52 + * 53 + * These are common to all masters 54 + */ 114 55 115 56 struct fsi_master { 116 57 struct device dev;