HomeCore 0.1.3 (07b5544)
Bare-metal personal computer firmware for Cortex-M
Loading...
Searching...
No Matches
Device bindings

Every compatible a device description can use, generated from the bindings.

Generated by scripts/bindings_doc.py from src/drivers/<class>/<compatible>.yaml and the board descriptions when the documentation is built. How bindings, properties, and capabilities work is described in Drivers.

Compatible Driver Summary
homecore,console-led console_led LED stand-in for emulators without LEDs; prints "[ledN] on" or "[ledN] off" on each change request.
homecore,gpio-led gpio_led LED driven by a GPIO output pin, with a readable and writable /dev file.
homecore,ramdisk ramdisk Block device backed by a RAM buffer allocated at build time; contents are lost at reset.
st,stm32-usart stm32_usart STM32 USART, 8N1, interrupt-driven receive, polled transmit. Board code enables its clock and pins.
st,stm32f1-gpio stm32f1_gpio STM32F1 GPIO port with 16 pins; the driver enables the port clock.
st,stm32f4-gpio stm32f4_gpio STM32F4 GPIO port with 16 pins; the driver enables the port clock.
ti,stellaris-uart stellaris_uart Stellaris UART, interrupt-driven receive, polled transmit, reset line configuration (QEMU).

homecore,console-led

LED stand-in for emulators without LEDs; prints "[ledN] on" or "[ledN] off" on each change request.

Driver prefix console_led
Sources src/drivers/led/console_led.c
Binding src/drivers/led/homecore,console-led.yaml
Guide LEDs
Provides LED: exports <driver>_led_ops; numbered in dt_led_table
Property Type Required Default Constraints C field Description
devname devpath no the node name unique /dev name path Device file name under /dev; defaults to the node name.

Enabled by: lm3s6965evb (led0); stm32vldiscovery + qemu.yaml (qemu_led0, qemu_led1)

homecore,gpio-led

LED driven by a GPIO output pin, with a readable and writable /dev file.

Driver prefix gpio_led
Sources src/drivers/led/gpio_led.c
Binding src/drivers/led/homecore,gpio-led.yaml
Guide LEDs
Provides LED: exports <driver>_led_ops; numbered in dt_led_table
Property Type Required Default Constraints C field Description
gpio gpio yes — — port Enabled GPIO port device driving the LED, such as gpiod.
pin int yes — at most 15, unique per gpio pin Pin number within the port; one LED per pin.
active-low bool no false — active_low The LED lights when the pin is low.
devname devpath no the node name unique /dev name path Device file name under /dev; defaults to the node name.

Enabled by: stm32f4discovery (led0, led1, led2, led3); stm32vldiscovery (led0, led1)

homecore,ramdisk

Block device backed by a RAM buffer allocated at build time; contents are lost at reset.

Driver prefix ramdisk
Sources src/drivers/block/ramdisk.c
Binding src/drivers/block/homecore,ramdisk.yaml
Guide Block devices
Provides Block device: exports <driver>_block_ops; mounts can name it
Property Type Required Default Constraints C field Description
size size yes — at least 512, multiple of 512, allocates a .bss buffer (field data) size Disk size in bytes, such as 64K; a multiple of 512. The buffer is placed in .bss.

Enabled by: lm3s6965evb (ram0); stm32f4discovery (ram0, ram1)

st,stm32-usart

STM32 USART, 8N1, interrupt-driven receive, polled transmit. Board code enables its clock and pins.

Driver prefix stm32_usart
Sources src/drivers/serial/stm32_usart.c
Binding src/drivers/serial/st,stm32-usart.yaml
Guide Serial ports
Provides Can be chosen.console: exports <driver>_console_ops
Handles its interrupt: <driver>_isr() is called by dt_irq_dispatch()
Property Type Required Default Constraints C field Description
reg int yes — unique base Register block address.
irq int yes — unique irq NVIC interrupt number of the receive interrupt.
bus clock yes — — clock_hz Bus clock name, resolved through the board's clocks map.
baud int no 115200 at least 1 baud Line rate in bits per second.
devname devpath no the node name unique /dev name path VFS name under /dev; defaults to the node name.

Enabled by: stm32f4discovery (usart2); stm32vldiscovery (usart1); stm32vldiscovery + qemu.yaml (usart1)

st,stm32f1-gpio

STM32F1 GPIO port with 16 pins; the driver enables the port clock.

Driver prefix stm32f1_gpio
Sources src/drivers/gpio/stm32f1_gpio.c
Binding src/drivers/gpio/st,stm32f1-gpio.yaml
Guide GPIO ports
Provides GPIO port: exports <driver>_gpio_ops; gpio properties can name it
Property Type Required Default Constraints C field Description
reg int yes — unique base Register block address.
clock-bit int yes — at most 31 clock_bit The port's enable bit in RCC_APB2ENR (IOPAEN, GPIOA, is 2).

Enabled by: stm32vldiscovery (gpioc)

st,stm32f4-gpio

STM32F4 GPIO port with 16 pins; the driver enables the port clock.

Driver prefix stm32f4_gpio
Sources src/drivers/gpio/stm32f4_gpio.c
Binding src/drivers/gpio/st,stm32f4-gpio.yaml
Guide GPIO ports
Provides GPIO port: exports <driver>_gpio_ops; gpio properties can name it
Property Type Required Default Constraints C field Description
reg int yes — unique base Register block address.
clock-bit int yes — at most 31 clock_bit The port's enable bit in RCC_AHB1ENR (GPIOA is 0).

Enabled by: stm32f4discovery (gpiod)

ti,stellaris-uart

Stellaris UART, interrupt-driven receive, polled transmit, reset line configuration (QEMU).

Driver prefix stellaris_uart
Sources src/drivers/serial/stellaris_uart.c
Binding src/drivers/serial/ti,stellaris-uart.yaml
Guide Serial ports
Provides Can be chosen.console: exports <driver>_console_ops
Handles its interrupt: <driver>_isr() is called by dt_irq_dispatch()
Property Type Required Default Constraints C field Description
reg int yes — unique base Register block address.
irq int yes — unique irq NVIC interrupt number of the receive interrupt.
devname devpath no the node name unique /dev name path VFS name under /dev; defaults to the node name.

Enabled by: lm3s6965evb (uart0, uart1, uart2)