8250: fix reg-io-width/reg-shift for raspi4b

This commit is contained in:
2026-01-19 11:36:01 +02:00
parent d108494314
commit 2a49c655c2
+8 -6
View File
@@ -135,12 +135,14 @@ impl Config for Fdt8250Config {
impl Fdt8250Config {
fn from_device_tree(node: &Arc<Node>, context: &mut ProbeContext) -> Option<(Self, Vendor)> {
let vendor = if node.is_compatible("snps,dw-apb-uart") {
Vendor::DwApbUart
let (vendor, reg_io_width, reg_shift) = if node.is_compatible("snps,dw-apb-uart") {
(Vendor::DwApbUart, 1, 0)
} else if node.is_compatible("ns16550a") {
Vendor::Generic16550
(Vendor::Generic16550, 1, 0)
} else if node.is_compatible("brcm,bcm2835-aux-uart") {
(Vendor::Generic8250, 4, 2)
} else {
Vendor::Generic8250
(Vendor::Generic8250, 1, 0)
};
let base = node.map_base(context, 0)?;
@@ -155,9 +157,9 @@ impl Fdt8250Config {
clk_baud = node.clock(0);
}
let reg_io_width = node.prop_usize("reg-io-width").unwrap_or(4);
let reg_io_width = node.prop_usize("reg-io-width").unwrap_or(reg_io_width);
let reg_shift = node.prop_usize("reg-shift").unwrap_or(reg_shift);
let reg_offset = node.prop_usize("reg-offset").unwrap_or(0);
let reg_shift = node.prop_usize("reg-shift").unwrap_or(2);
Some((
Self {