Page Menu
Home
FreeBSD
Search
Configure Global Search
Log In
Files
F144646949
D29534.1776012049.diff
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Flag For Later
Award Token
Size
1 KB
Referenced Files
None
Subscribers
None
D29534.1776012049.diff
View Options
diff --git a/sys/dev/spibus/spi.h b/sys/dev/spibus/spi.h
--- a/sys/dev/spibus/spi.h
+++ b/sys/dev/spibus/spi.h
@@ -34,9 +34,13 @@
uint32_t tx_data_sz;
void *rx_data;
uint32_t rx_data_sz;
+ uint32_t flags;
};
#define SPI_COMMAND_INITIALIZER { 0 }
+#define SPI_FLAG_KEEP_CS 0x1 /* Keep chip select asserted */
+#define SPI_FLAG_NO_SLEEP 0x2 /* Prevent driver from sleeping (use polling) */
+
#define SPI_CHIP_SELECT_HIGH 0x1 /* Chip select high (else low) */
#ifdef FDT
diff --git a/sys/dev/spibus/spibus.c b/sys/dev/spibus/spibus.c
--- a/sys/dev/spibus/spibus.c
+++ b/sys/dev/spibus/spibus.c
@@ -146,6 +146,9 @@
case SPIBUS_IVAR_CLOCK:
*(uint32_t *)result = devi->clock;
break;
+ case SPIBUS_IVAR_CS_DELAY:
+ *(uint32_t *)result = devi->cs_delay;
+ break;
}
return (0);
}
@@ -174,6 +177,9 @@
return (EINVAL);
devi->mode = (uint32_t)value;
break;
+ case SPIBUS_IVAR_CS_DELAY:
+ devi->cs_delay = (uint32_t)value;
+ break;
default:
return (EINVAL);
}
diff --git a/sys/dev/spibus/spibusvar.h b/sys/dev/spibus/spibusvar.h
--- a/sys/dev/spibus/spibusvar.h
+++ b/sys/dev/spibus/spibusvar.h
@@ -43,6 +43,7 @@
uint32_t cs;
uint32_t mode;
uint32_t clock;
+ uint32_t cs_delay;
struct resource_list rl;
};
@@ -52,6 +53,7 @@
SPIBUS_IVAR_CS, /* chip select that we're on */
SPIBUS_IVAR_MODE, /* SPI mode (0-3) */
SPIBUS_IVAR_CLOCK, /* maximum clock freq for device */
+ SPIBUS_IVAR_CS_DELAY, /* delay in microseconds after toggling chip select */
};
#define SPIBUS_ACCESSOR(A, B, T) \
@@ -71,6 +73,7 @@
SPIBUS_ACCESSOR(cs, CS, uint32_t)
SPIBUS_ACCESSOR(mode, MODE, uint32_t)
SPIBUS_ACCESSOR(clock, CLOCK, uint32_t)
+SPIBUS_ACCESSOR(cs_delay, CS_DELAY, uint32_t)
extern driver_t spibus_driver;
extern driver_t ofw_spibus_driver;
File Metadata
Details
Attached
Mime Type
text/plain
Expires
Sun, Apr 12, 4:40 PM (14 h, 28 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
28328287
Default Alt Text
D29534.1776012049.diff (1 KB)
Attached To
Mode
D29534: spibus: extend API: add cs_delay ivar, KEEP_CS and NO_SLEEP flags
Attached
Detach File
Event Timeline
Log In to Comment