[PATCH linux dev-5.3] fsi: aspeed: Clean up defines and documentation
Joel Stanley
joel at jms.id.au
Mon Nov 4 15:02:26 AEDT 2019
Some of the registers lacked documetation but now can be properly named.
Rename FW to FULLWORD so no one thinks it means 'firmware'.
The "enable DMA" comment was setting the FSI access direction for DMA.
As the driver does not yet use DMA it can be removed without effect.
Signed-off-by: Joel Stanley <joel at jms.id.au>
---
drivers/fsi/fsi-master-aspeed.c | 34 ++++++++++++++++++++-------------
1 file changed, 21 insertions(+), 13 deletions(-)
diff --git a/drivers/fsi/fsi-master-aspeed.c b/drivers/fsi/fsi-master-aspeed.c
index 94e9b4f3418a..8da29fb9a69e 100644
--- a/drivers/fsi/fsi-master-aspeed.c
+++ b/drivers/fsi/fsi-master-aspeed.c
@@ -63,15 +63,23 @@ static const u32 fsi_base = 0xa0000000;
#define OPB0_FSI_ADDR 0x1c
#define OPB0_FSI_DATA_W 0x20
#define OPB0_STATUS 0x80
-/* half world */
-#define STATUS_HW_ACK BIT(0)
-/* full word */
-#define STATUS_FW_ACK BIT(1)
-#define STATUS_ERR_ACK BIT(2)
#define OPB0_FSI_DATA_R 0x84
-#define OPB0_W_ENDIAN 0x4c
-#define OPB0_R_ENDIAN 0x5c
+#define OPB0_WRITE_ORDER1 0x4c
+#define OPB0_WRITE_ORDER2 0x50
+#define OPB1_WRITE_ORDER1 0x54
+#define OPB1_WRITE_ORDER2 0x58
+#define OPB0_READ_ORDER1 0x5c
+#define OPB1_READ_ORDER2 0x60
+
+#define OPB_RETRY_COUNTER 0x64
+
+/* OPBn_STATUS */
+#define STATUS_HALFWORD_ACK BIT(0)
+#define STATUS_FULLWORD_ACK BIT(1)
+#define STATUS_ERR_ACK BIT(2)
+#define STATUS_RETRY BIT(3)
+#define STATUS_TIMEOUT BIT(4)
/* OPB_IRQ_MASK */
#define OPB1_XFER_ACK_EN BIT(17)
@@ -575,19 +583,19 @@ static int fsi_master_aspeed_probe(struct platform_device *pdev)
writel(0x1, aspeed->base + OPB_CLK_SYNC);
writel(OPB1_XFER_ACK_EN | OPB0_XFER_ACK_EN,
aspeed->base + OPB_IRQ_MASK);
- /* TODO: Try without this */
- writel(0x10, aspeed->base + 0x64); // Retry counter number ???
- writel(0x0f, aspeed->base + 0xe4); // DMA Enable
+
+ /* TODO: determine an appropriate value */
+ writel(0x10, aspeed->base + OPB_RETRY_COUNTER);
writel(ctrl_base, aspeed->base + OPB_CTRL_BASE);
writel(fsi_base, aspeed->base + OPB_FSI_BASE);
/* Set read data order */
- writel(0x00030b1b, aspeed->base + OPB0_R_ENDIAN);
+ writel(0x00030b1b, aspeed->base + OPB0_READ_ORDER1);
/* Set write data order */
- writel(0x0011101b, aspeed->base + OPB0_W_ENDIAN);
- writel(0x0c330f3f, aspeed->base + 0x50);
+ writel(0x0011101b, aspeed->base + OPB0_WRITE_ORDER1);
+ writel(0x0c330f3f, aspeed->base + OPB0_WRITE_ORDER2);
/*
* Select OPB0 for all operations.
--
2.24.0.rc1
More information about the openbmc
mailing list