Skip to content

Commit deccdcc

Browse files
committed
Did the same for the rest of busio
1 parent 93d1e53 commit deccdcc

File tree

3 files changed

+216
-219
lines changed

3 files changed

+216
-219
lines changed

shared-bindings/busio/I2C.c

Lines changed: 94 additions & 90 deletions
Original file line numberDiff line numberDiff line change
@@ -36,33 +36,35 @@
3636
#include "py/runtime.h"
3737
#include "supervisor/shared/translate.h"
3838

39-
//|class I2C:
40-
//|""".. currentmodule:: busio
39+
//| class I2C:
40+
//| """.. currentmodule:: busio
4141
//|
42-
//|:class:`I2C` --- Two wire serial protocol
43-
//|------------------------------------------"""
44-
//|def __init__(self, scl: microcontroller.Pin, sda: microcontroller.Pin, *, frequency: int = 400000, timeout: int = 255):
45-
//|"""I2C is a two-wire protocol for communicating between devices. At the
46-
//|physical level it consists of 2 wires: SCL and SDA, the clock and data
47-
//|lines respectively.
42+
//| :class:`I2C` --- Two wire serial protocol
43+
//| ------------------------------------------"""
4844
//|
49-
//|.. seealso:: Using this class directly requires careful lock management.
50-
//|Instead, use :class:`~adafruit_bus_device.i2c_device.I2CDevice` to
51-
//|manage locks.
45+
//| def __init__(self, scl: microcontroller.Pin, sda: microcontroller.Pin, *, frequency: int = 400000, timeout: int = 255):
5246
//|
53-
//|.. seealso:: Using this class to directly read registers requires manual
54-
//|bit unpacking. Instead, use an existing driver or make one with
55-
//|:ref:`Register <register-module-reference>` data descriptors.
47+
//| """I2C is a two-wire protocol for communicating between devices. At the
48+
//| physical level it consists of 2 wires: SCL and SDA, the clock and data
49+
//| lines respectively.
5650
//|
57-
//|:param ~microcontroller.Pin scl: The clock pin
58-
//|:param ~microcontroller.Pin sda: The data pin
59-
//|:param int frequency: The clock frequency in Hertz
60-
//|:param int timeout: The maximum clock stretching timeut - (used only for bitbangio.I2C; ignored for busio.I2C)
51+
//| .. seealso:: Using this class directly requires careful lock management.
52+
//| Instead, use :class:`~adafruit_bus_device.i2c_device.I2CDevice` to
53+
//| manage locks.
6154
//|
62-
//|.. note:: On the nRF52840, only one I2C object may be created,
63-
//|except on the Circuit Playground Bluefruit, which allows two,
64-
//|one for the onboard accelerometer, and one for offboard use."""
65-
//|...
55+
//| .. seealso:: Using this class to directly read registers requires manual
56+
//| bit unpacking. Instead, use an existing driver or make one with
57+
//| :ref:`Register <register-module-reference>` data descriptors.
58+
//|
59+
//| :param ~microcontroller.Pin scl: The clock pin
60+
//| :param ~microcontroller.Pin sda: The data pin
61+
//| :param int frequency: The clock frequency in Hertz
62+
//| :param int timeout: The maximum clock stretching timeut - (used only for bitbangio.I2C; ignored for busio.I2C)
63+
//|
64+
//| .. note:: On the nRF52840, only one I2C object may be created,
65+
//| except on the Circuit Playground Bluefruit, which allows two,
66+
//| one for the onboard accelerometer, and one for offboard use."""
67+
//| ...
6668
STATIC mp_obj_t busio_i2c_make_new(const mp_obj_type_t *type, size_t n_args, const mp_obj_t *pos_args, mp_map_t *kw_args) {
6769
busio_i2c_obj_t *self = m_new_obj(busio_i2c_obj_t);
6870
self->base.type = &busio_i2c_type;
@@ -83,9 +85,9 @@ STATIC mp_obj_t busio_i2c_make_new(const mp_obj_type_t *type, size_t n_args, con
8385
return (mp_obj_t)self;
8486
}
8587

86-
//|def deinit(self, ) -> Any:
87-
//|"""Releases control of the underlying hardware so other classes can use it."""
88-
//|...
88+
//| def deinit(self, ) -> Any:
89+
//| """Releases control of the underlying hardware so other classes can use it."""
90+
//| ...
8991
STATIC mp_obj_t busio_i2c_obj_deinit(mp_obj_t self_in) {
9092
busio_i2c_obj_t *self = MP_OBJ_TO_PTR(self_in);
9193
common_hal_busio_i2c_deinit(self);
@@ -99,15 +101,15 @@ STATIC void check_for_deinit(busio_i2c_obj_t *self) {
99101
}
100102
}
101103

102-
//|def __enter__(self, ) -> Any:
103-
//|"""No-op used in Context Managers."""
104-
//|...
104+
//| def __enter__(self, ) -> Any:
105+
//| """No-op used in Context Managers."""
106+
//| ...
105107
// Provided by context manager helper.
106108

107-
//|def __exit__(self, ) -> Any:
108-
//|"""Automatically deinitializes the hardware on context exit. See
109-
//|:ref:`lifetime-and-contextmanagers` for more info."""
110-
//|...
109+
//| def __exit__(self, ) -> Any:
110+
//| """Automatically deinitializes the hardware on context exit. See
111+
//| :ref:`lifetime-and-contextmanagers` for more info."""
112+
//| ...
111113
STATIC mp_obj_t busio_i2c_obj___exit__(size_t n_args, const mp_obj_t *args) {
112114
(void)n_args;
113115
common_hal_busio_i2c_deinit(args[0]);
@@ -122,13 +124,14 @@ static void check_lock(busio_i2c_obj_t *self) {
122124
}
123125
}
124126

125-
//|def scan(self, ) -> Any:
126-
//|"""Scan all I2C addresses between 0x08 and 0x77 inclusive and return a
127-
//|list of those that respond.
127+
//| def scan(self, ) -> Any:
128128
//|
129-
//|:return: List of device ids on the I2C bus
130-
//|:rtype: list"""
131-
//|...
129+
//| """Scan all I2C addresses between 0x08 and 0x77 inclusive and return a
130+
//| list of those that respond.
131+
//|
132+
//| :return: List of device ids on the I2C bus
133+
//| :rtype: list"""
134+
//| ...
132135
STATIC mp_obj_t busio_i2c_scan(mp_obj_t self_in) {
133136
busio_i2c_obj_t *self = MP_OBJ_TO_PTR(self_in);
134137
check_for_deinit(self);
@@ -145,21 +148,22 @@ STATIC mp_obj_t busio_i2c_scan(mp_obj_t self_in) {
145148
}
146149
MP_DEFINE_CONST_FUN_OBJ_1(busio_i2c_scan_obj, busio_i2c_scan);
147150

148-
//|def try_lock(self, ) -> Any:
149-
//|"""Attempts to grab the I2C lock. Returns True on success.
150-
//|:return: True when lock has been grabbed
151-
//|:rtype: bool"""
152-
//|...
151+
//| def try_lock(self, ) -> Any:
152+
//| """Attempts to grab the I2C lock. Returns True on success.
153+
//|
154+
//| :return: True when lock has been grabbed
155+
//| :rtype: bool"""
156+
//| ...
153157
STATIC mp_obj_t busio_i2c_obj_try_lock(mp_obj_t self_in) {
154158
busio_i2c_obj_t *self = MP_OBJ_TO_PTR(self_in);
155159
check_for_deinit(self);
156160
return mp_obj_new_bool(common_hal_busio_i2c_try_lock(self));
157161
}
158162
MP_DEFINE_CONST_FUN_OBJ_1(busio_i2c_try_lock_obj, busio_i2c_obj_try_lock);
159163

160-
//|def unlock(self, ) -> Any:
161-
//|"""Releases the I2C lock."""
162-
//|...
164+
//| def unlock(self, ) -> Any:
165+
//| """Releases the I2C lock."""
166+
//| ...
163167
STATIC mp_obj_t busio_i2c_obj_unlock(mp_obj_t self_in) {
164168
busio_i2c_obj_t *self = MP_OBJ_TO_PTR(self_in);
165169
check_for_deinit(self);
@@ -168,20 +172,20 @@ STATIC mp_obj_t busio_i2c_obj_unlock(mp_obj_t self_in) {
168172
}
169173
MP_DEFINE_CONST_FUN_OBJ_1(busio_i2c_unlock_obj, busio_i2c_obj_unlock);
170174

171-
//|def readfrom_into(self, address: int, buffer: bytearray, *, start: int = 0, end: int = None) -> Any:
172-
//|"""Read into ``buffer`` from the slave specified by ``address``.
173-
//|The number of bytes read will be the length of ``buffer``.
174-
//|At least one byte must be read.
175+
//| def readfrom_into(self, address: int, buffer: bytearray, *, start: int = 0, end: int = None) -> Any:
176+
//| """Read into ``buffer`` from the slave specified by ``address``.
177+
//| The number of bytes read will be the length of ``buffer``.
178+
//| At least one byte must be read.
175179
//|
176-
//|If ``start`` or ``end`` is provided, then the buffer will be sliced
177-
//|as if ``buffer[start:end]``. This will not cause an allocation like
178-
//|``buf[start:end]`` will so it saves memory.
180+
//| If ``start`` or ``end`` is provided, then the buffer will be sliced
181+
//| as if ``buffer[start:end]``. This will not cause an allocation like
182+
//| ``buf[start:end]`` will so it saves memory.
179183
//|
180-
//|:param int address: 7-bit device address
181-
//|:param bytearray buffer: buffer to write into
182-
//|:param int start: Index to start writing at
183-
//|:param int end: Index to write up to but not include. Defaults to ``len(buffer)``"""
184-
//|...
184+
//| :param int address: 7-bit device address
185+
//| :param bytearray buffer: buffer to write into
186+
//| :param int start: Index to start writing at
187+
//| :param int end: Index to write up to but not include. Defaults to ``len(buffer)``"""
188+
//| ...
185189
// Shared arg parsing for readfrom_into and writeto_then_readfrom.
186190
STATIC void readfrom(busio_i2c_obj_t *self, mp_int_t address, mp_obj_t buffer, int32_t start, mp_int_t end) {
187191
mp_buffer_info_t bufinfo;
@@ -219,26 +223,26 @@ STATIC mp_obj_t busio_i2c_readfrom_into(size_t n_args, const mp_obj_t *pos_args,
219223
}
220224
MP_DEFINE_CONST_FUN_OBJ_KW(busio_i2c_readfrom_into_obj, 3, busio_i2c_readfrom_into);
221225

222-
//|def writeto(self, address: int, buffer: bytearray, *, start: int = 0, end: int = None, stop: bool = True) -> Any:
223-
//|"""Write the bytes from ``buffer`` to the slave specified by ``address``.
224-
//|Transmits a stop bit when stop is True. Setting stop=False is deprecated and stop will be
225-
//|removed in CircuitPython 6.x. Use `writeto_then_readfrom` when needing a write, no stop and
226-
//|repeated start before a read.
226+
//| def writeto(self, address: int, buffer: bytearray, *, start: int = 0, end: int = None, stop: bool = True) -> Any:
227+
//| """Write the bytes from ``buffer`` to the slave specified by ``address``.
228+
//| Transmits a stop bit when stop is True. Setting stop=False is deprecated and stop will be
229+
//| removed in CircuitPython 6.x. Use `writeto_then_readfrom` when needing a write, no stop and
230+
//| repeated start before a read.
227231
//|
228-
//|If ``start`` or ``end`` is provided, then the buffer will be sliced
229-
//|as if ``buffer[start:end]``. This will not cause an allocation like
230-
//|``buffer[start:end]`` will so it saves memory.
232+
//| If ``start`` or ``end`` is provided, then the buffer will be sliced
233+
//| as if ``buffer[start:end]``. This will not cause an allocation like
234+
//| ``buffer[start:end]`` will so it saves memory.
231235
//|
232-
//|Writing a buffer or slice of length zero is permitted, as it can be used
233-
//|to poll for the existence of a device.
236+
//| Writing a buffer or slice of length zero is permitted, as it can be used
237+
//| to poll for the existence of a device.
234238
//|
235-
//|:param int address: 7-bit device address
236-
//|:param bytearray buffer: buffer containing the bytes to write
237-
//|:param int start: Index to start writing from
238-
//|:param int end: Index to read up to but not include. Defaults to ``len(buffer)``
239-
//|:param bool stop: If true, output an I2C stop condition after the buffer is written.
240-
//|Deprecated. Will be removed in 6.x and act as stop=True."""
241-
//|...
239+
//| :param int address: 7-bit device address
240+
//| :param bytearray buffer: buffer containing the bytes to write
241+
//| :param int start: Index to start writing from
242+
//| :param int end: Index to read up to but not include. Defaults to ``len(buffer)``
243+
//| :param bool stop: If true, output an I2C stop condition after the buffer is written.
244+
//| Deprecated. Will be removed in 6.x and act as stop=True."""
245+
//| ...
242246
// Shared arg parsing for writeto and writeto_then_readfrom.
243247
STATIC void writeto(busio_i2c_obj_t *self, mp_int_t address, mp_obj_t buffer, int32_t start, mp_int_t end, bool stop) {
244248
// get the buffer to write the data from
@@ -277,23 +281,23 @@ STATIC mp_obj_t busio_i2c_writeto(size_t n_args, const mp_obj_t *pos_args, mp_ma
277281
}
278282
STATIC MP_DEFINE_CONST_FUN_OBJ_KW(busio_i2c_writeto_obj, 1, busio_i2c_writeto);
279283

280-
//|def writeto_then_readfrom(self, address: int, out_buffer: bytearray, in_buffer: bytearray, *, out_start: int = 0, out_end: int = None, in_start: int = 0, in_end: int = None) -> Any:
281-
//|"""Write the bytes from ``out_buffer`` to the slave specified by ``address``, generate no stop
282-
//|bit, generate a repeated start and read into ``in_buffer``. ``out_buffer`` and
283-
//|``in_buffer`` can be the same buffer because they are used sequentially.
284+
//| def writeto_then_readfrom(self, address: int, out_buffer: bytearray, in_buffer: bytearray, *, out_start: int = 0, out_end: int = None, in_start: int = 0, in_end: int = None) -> Any:
285+
//| """Write the bytes from ``out_buffer`` to the slave specified by ``address``, generate no stop
286+
//| bit, generate a repeated start and read into ``in_buffer``. ``out_buffer`` and
287+
//| ``in_buffer`` can be the same buffer because they are used sequentially.
284288
//|
285-
//|If ``start`` or ``end`` is provided, then the corresponding buffer will be sliced
286-
//|as if ``buffer[start:end]``. This will not cause an allocation like ``buf[start:end]``
287-
//|will so it saves memory.
289+
//| If ``start`` or ``end`` is provided, then the corresponding buffer will be sliced
290+
//| as if ``buffer[start:end]``. This will not cause an allocation like ``buf[start:end]``
291+
//| will so it saves memory.
288292
//|
289-
//|:param int address: 7-bit device address
290-
//|:param bytearray out_buffer: buffer containing the bytes to write
291-
//|:param bytearray in_buffer: buffer to write into
292-
//|:param int out_start: Index to start writing from
293-
//|:param int out_end: Index to read up to but not include. Defaults to ``len(buffer)``
294-
//|:param int in_start: Index to start writing at
295-
//|:param int in_end: Index to write up to but not include. Defaults to ``len(buffer)``"""
296-
//|...
293+
//| :param int address: 7-bit device address
294+
//| :param bytearray out_buffer: buffer containing the bytes to write
295+
//| :param bytearray in_buffer: buffer to write into
296+
//| :param int out_start: Index to start writing from
297+
//| :param int out_end: Index to read up to but not include. Defaults to ``len(buffer)``
298+
//| :param int in_start: Index to start writing at
299+
//| :param int in_end: Index to write up to but not include. Defaults to ``len(buffer)``"""
300+
//| ...
297301
STATIC mp_obj_t busio_i2c_writeto_then_readfrom(size_t n_args, const mp_obj_t *pos_args, mp_map_t *kw_args) {
298302
enum { ARG_address, ARG_out_buffer, ARG_in_buffer, ARG_out_start, ARG_out_end, ARG_in_start, ARG_in_end };
299303
static const mp_arg_t allowed_args[] = {

0 commit comments

Comments
 (0)