Ground Control's RockBLOCK 9704 library is pinned untouched in west.yml and compiled here for any board with a UART: a serial port on the bus of the rock7,rockblock-9704 devicetree node, the library's timing calls on the kernel, and one worker thread that owns every call into it, since the library has no locking and shares static buffers. The worker sleeps until a request or a byte from the modem arrives. Requests (begin, end, power, send, info, signal) wait as long as the caller says; a send with K_NO_WAIT queues and reports through mo_done. Callbacks for a sent message, a received one, the signal and the provisioning; a status snapshot that never touches the modem. The library asks for provisioning once and keeps a miss for good; the worker clears its cache before a send whose topic is missing and after the modem refuses one, so a modem provisioned later is seen. The serial port and worker began in the OGLAS satellite bench and were carried through WII6's lib/wii6-sat.
53 lines
1.5 KiB
YAML
53 lines
1.5 KiB
YAML
# SPDX-License-Identifier: MIT
|
|
|
|
description: |
|
|
RockBLOCK 9704, Ground Control's Iridium Certus (IMT) modem board, on a
|
|
UART. The modem speaks JSPR, JSON lines over a fixed 230400 8N1; there is
|
|
no AT mode. One per system: the library underneath keeps global state.
|
|
|
|
The control pins are optional. With none, the modem is assumed powered and
|
|
enabled, which is how the board behaves with the pins left open.
|
|
|
|
compatible: "rock7,rockblock-9704"
|
|
|
|
include:
|
|
- uart-device.yaml
|
|
|
|
properties:
|
|
power-gpios:
|
|
type: phandle-array
|
|
description: |
|
|
P_EN, the supply enable. Driven active to power the board.
|
|
|
|
iridium-enable-gpios:
|
|
type: phandle-array
|
|
description: |
|
|
I_EN, the modem enable. Driven active once the supply is up.
|
|
|
|
booted-gpios:
|
|
type: phandle-array
|
|
description: |
|
|
I_BTD, the modem's booted signal. When present, power-up waits for it
|
|
instead of a fixed delay.
|
|
|
|
boot-delay-ms:
|
|
type: int
|
|
default: 4000
|
|
description: |
|
|
How long to wait after enabling the modem before talking to it, when
|
|
there is no booted-gpios to wait on.
|
|
|
|
examples:
|
|
- |
|
|
&usart3 {
|
|
current-speed = <230400>;
|
|
status = "okay";
|
|
|
|
modem: rockblock {
|
|
compatible = "rock7,rockblock-9704";
|
|
power-gpios = <&gpiob 0 GPIO_ACTIVE_HIGH>;
|
|
iridium-enable-gpios = <&gpiob 1 GPIO_ACTIVE_HIGH>;
|
|
booted-gpios = <&gpiob 2 GPIO_ACTIVE_HIGH>;
|
|
};
|
|
};
|