start refactor
Change-Id: I3dd09abb5f6250c2eaef082eda7a180e34427f4c
diff --git a/system/dev/usb/usb-serial/ftdi.c b/system/dev/usb/usb-serial/ftdi.c
index 55f7643..a5eb835 100644
--- a/system/dev/usb/usb-serial/ftdi.c
+++ b/system/dev/usb/usb-serial/ftdi.c
@@ -3,15 +3,14 @@
// found in the LICENSE file.
#include <ddk/binding.h>
-#include <ddk/common/usb.h>
-#include <ddk/completion.h>
+#include <driver/usb.h>
+#include <sync/completion.h>
#include <ddk/device.h>
#include <ddk/driver.h>
#include <ddk/protocol/usb.h>
-#include <ddk/protocol/bcm.h>
-#include <magenta/listnode.h>
-#include <magenta/device/usb.h>
+#include <zircon/listnode.h>
+#include <zircon/device/usb.h>
#include <inttypes.h>
#include <fcntl.h>
@@ -36,9 +35,9 @@
#define FIFOMASK (FIFOSIZE - 1)
typedef struct {
- mx_device_t* device;
- mx_device_t* usb_device;
- mx_driver_t* driver;
+ zx_device_t* device;
+ zx_device_t* usb_device;
+ zx_driver_t* driver;
uint16_t ftditype; //FTDI device type
uint32_t baudrate;
@@ -51,13 +50,15 @@
// list of received packets not yet read by upper layer
list_node_t completed_reads;
// the last signals we reported
- mx_signals_t signals;
+ //zx_signals_t signals;
size_t read_offset;
mtx_t mutex;
} ftdi_t;
+
+/*
#define get_ftdi(dev) ((ftdi_t*)dev->ctx)
static void update_signals_locked(ftdi_t* ftdi) {
@@ -320,27 +321,33 @@
#endif
return 0;
}
+*/
+static zx_status_t ftdi_bind(void* ctx, zx_device_t* device, void** cookie) {
-static mx_status_t ftdi_bind(mx_driver_t* driver, mx_device_t* device) {
printf("FTDI: usbserial - attempting to bind\n");
+
+ usb_protocol_t usb;
+ zx_status_t result = device_get_protocol(device, ZX_PROTOCOL_USB, &usb);
+ if (result != ZX_OK) {
+ return result;
+ }
+
// find our endpoints
usb_desc_iter_t iter;
- mx_status_t status = NO_ERROR;
- mx_status_t result = usb_desc_iter_init(device, &iter);
-
-
+ zx_status_t status = ZX_OK;
+ result = usb_desc_iter_init(&usb, &iter);
if (result < 0)
return result;
usb_interface_descriptor_t* intf = usb_desc_iter_next_interface(&iter, true);
printf("FTDI: returned %d endpoints\n", intf->bNumEndpoints);
- uint8_t bulk_in_addr = 0;
- uint8_t bulk_out_addr = 0;
-
+ //uint8_t bulk_in_addr = 0;
+ //uint8_t bulk_out_addr = 0;
+/*
usb_endpoint_descriptor_t* endp = usb_desc_iter_next_endpoint(&iter);
while (endp) {
if (usb_ep_direction(endp) == USB_ENDPOINT_OUT) {
@@ -419,18 +426,19 @@
printf("ftdi_bind failed: %d\n", status);
//ftdi_free(ftdi);
return status;
+*/
+ return status;
}
-mx_driver_t _driver_ftdi = {
- .ops = {
- .bind = ftdi_bind,
- },
+static zx_driver_ops_t ftdi_driver_ops = {
+ .version = DRIVER_OPS_VERSION,
+ .bind = ftdi_bind,
};
-MAGENTA_DRIVER_BEGIN(_driver_ftdi, "usb-serial-ftdi", "magenta", "0.1", 2)
- BI_ABORT_IF(NE, BIND_PROTOCOL, MX_PROTOCOL_USB),
+ZIRCON_DRIVER_BEGIN(driver_ftdi,ftdi_driver_ops, "zircon", "0.1", 2)
+ BI_ABORT_IF(NE, BIND_PROTOCOL, ZX_PROTOCOL_USB),
BI_MATCH_IF(EQ, BIND_USB_VID, FTDI_VID),
// BI_MATCH_IF(EQ, BIND_USB_PID, FTDI_232_PID),
-MAGENTA_DRIVER_END(_driver_ftdi)
\ No newline at end of file
+ZIRCON_DRIVER_END(driver_ftdi)
\ No newline at end of file
diff --git a/system/dev/usb/usb-serial/rules.mk b/system/dev/usb/usb-serial/rules.mk
index 911496d..d085237 100644
--- a/system/dev/usb/usb-serial/rules.mk
+++ b/system/dev/usb/usb-serial/rules.mk
@@ -5,11 +5,11 @@
MODULE_TYPE := driver
-MODULE_STATIC_LIBS := ulib/ddk ulib/hexdump
+MODULE_STATIC_LIBS := system/ulib/ddk system/ulib/sync
-MODULE_LIBS := ulib/driver ulib/magenta ulib/musl ulib/mxio
+MODULE_LIBS := system/ulib/driver system/ulib/zircon system/ulib/c
-MODULE := usb-serial
+MODULE := $(LOCAL_DIR)
MODULE_SRCS := $(LOCAL_DIR)/ftdi.c