Skip to content

Conversation

@Copper280z
Copy link
Contributor

This adds a new driver for the ch32 USBHD/USBHS peripheral, along with an example for the ch32v307 board that exposes the port.

Started replacing constants with enums, changed the reset state for ep0 tx/rx ctrl from DATA0 to DATA1, I think that did it.
…oards. ch32 USBHS still sends packets twice.
@github-actions
Copy link

Lint Results

Found 7 issues on changed lines in 3 files:

  • examples/wch/ch32v/src/usb_cdc.zig: 1 issue
  • port/wch/ch32v/src/hals/clocks.zig: 1 issue
  • port/wch/ch32v/src/hals/usbhs.zig: 5 issues

},
};

const USBController = usb.DeviceController(.{

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggestion: Rename USBController to USB_Controller, it should be more in line with our style guidelines. This automation is not perfect so take it with a grain of salt.

///
/// Note: The SVD names bit31 as `USBFSSRC`, but the reference manual
/// describes it as `USBHSSRC` ("USBHS 48MHz clock source selection").
pub const UsbHsClockConfig = struct {

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggestion: Rename UsbHsClockConfig to USB_HsClockConfig, it should be more in line with our style guidelines. This automation is not perfect so take it with a grain of salt.


const Regs = peripherals.USBHS;

const EpState = struct {

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggestion: Rename EpState to EP_State, it should be more in line with our style guidelines. This automation is not perfect so take it with a grain of salt.

}

// We use offset-based access for per-EP regs to keep helpers compact.
const RegU32 = microzig.mmio.Mmio(packed struct(u32) { v: u32 = 0 });

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggestion: Rename RegU32 to Reg_U32, it should be more in line with our style guidelines. This automation is not perfect so take it with a grain of salt.


// We use offset-based access for per-EP regs to keep helpers compact.
const RegU32 = microzig.mmio.Mmio(packed struct(u32) { v: u32 = 0 });
const RegU16 = microzig.mmio.Mmio(packed struct(u16) { v: u16 = 0 });

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggestion: Rename RegU16 to Reg_U16, it should be more in line with our style guidelines. This automation is not perfect so take it with a grain of salt.

// We use offset-based access for per-EP regs to keep helpers compact.
const RegU32 = microzig.mmio.Mmio(packed struct(u32) { v: u32 = 0 });
const RegU16 = microzig.mmio.Mmio(packed struct(u16) { v: u16 = 0 });
const RegU8 = microzig.mmio.Mmio(packed struct(u8) { v: u8 = 0 });

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggestion: Rename RegU8 to Reg_U8, it should be more in line with our style guidelines. This automation is not perfect so take it with a grain of salt.

_reserved1: u2 = 0,
});

fn baseAddr() usize {

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please change to base_addr, in MicroZig we use snake case for function names.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants