Skip to content

Commit 6fc57ee

Browse files
authored
gpio: rename gpiod to gpiocdev (hybridgroup#1116)
1 parent 6aaccc1 commit 6fc57ee

32 files changed

+253
-212
lines changed

drivers/MIGRATION.md MIGRATION.md

+45-4
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,52 @@
1-
# Migration of drivers
1+
# Migration guide
22

33
From time to time a breaking change of API can happen. Following to [SemVer](https://semver.org/), the gobot main version
44
should be increased. In such case all users needs to adjust there projects for the next update, although they not using
5-
a driver with changed API.
5+
a driver or platform with changed API.
66

7-
To prevent this scenario for most users, the main version will not always increased, but affected drivers are listed
8-
here and a migration strategy is provided.
7+
To prevent this scenario for most users, the main version will not always increased, but affected drivers and platforms
8+
are listed here and a migration strategy is provided.
9+
10+
## Switch from version 2.4.0 (applications using the gpiod options affected)
11+
12+
### The term gpiod was renamed to cdev
13+
14+
Using the term "cdev" (short for character device Kernel ABI for GPIO access) is more suitable than using "gpiod" (the
15+
name of the user space driver in Linux). Also it relates better to the term "sysfs" (the legacy sysfs Kernel ABI for
16+
GPIO access). The former name was chosen so there would be no difference to the used go module "gpiod". Since also this
17+
module is now renamed to "go-gpiocdev", we choose the better name "cdev" from now on.
18+
19+
This change affects all applications, which using the With... options of "gpiod" or "sysfs". A search and replace is
20+
suitable:
21+
22+
```go
23+
// old
24+
...
25+
a := NewAdaptor(adaptors.WithGpiodAccess())
26+
...
27+
28+
// new
29+
...
30+
a := NewAdaptor(adaptors.WithGpioCdevAccess())
31+
...
32+
```
33+
34+
```go
35+
// old
36+
...
37+
a := NewAdaptor(adaptors.WithSysfsAccess())
38+
...
39+
40+
// new
41+
...
42+
a := NewAdaptor(adaptors.WithGpioSysfsAccess())
43+
...
44+
```
45+
46+
Also those findings needs to be replaced, which usually affects developers, but not users:
47+
48+
* `system.WithDigitalPinGpiodAccess()` --> `system.WithDigitalPinCdevAccess()`
49+
* `IsGpiodDigitalPinAccess()` --> `IsCdevDigitalPinAccess()`
950

1051
## Switch from version 2.3.0 (ble and sphero adaptors affected)
1152

adaptor.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ type DigitalPinOptioner interface {
2929
lseqno uint32), edge int) (changed bool)
3030
// SetPollForEdgeDetection use a discrete input polling method to detect edges. A poll interval of zero or smaller
3131
// will deactivate this function. Please note: Using this feature is CPU consuming and less accurate than using cdev
32-
// event handler (gpiod implementation) and should be done only if the former is not implemented or not working for
32+
// event handler (go-gpiocdev package) and should be done only if the former is not implemented or not working for
3333
// the adaptor. E.g. sysfs driver in gobot has not implemented edge detection yet. The function is only useful
3434
// together with SetEventHandlerForEdge() and its corresponding With*() functions.
3535
SetPollForEdgeDetection(pollInterval time.Duration, pollQuitChan chan struct{}) (changed bool)

drivers/gpio/hcsr04_driver.go

+2-2
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ type hcsr04Configuration struct {
3636
}
3737

3838
// hcsr04UseEdgePollingOption is the type for applying to use discrete edge polling instead pin edge detection
39-
// by "cdev" from gpiod.
39+
// by "cdev" from the go-gpiocdev package.
4040
type hcsr04UseEdgePollingOption bool
4141

4242
// HCSR04Driver is a driver for ultrasonic range measurement.
@@ -132,7 +132,7 @@ func NewHCSR04Driver(a gobot.Adaptor, triggerPinID, echoPinID string, opts ...in
132132
return &d
133133
}
134134

135-
// WithHCSR04UseEdgePolling use discrete edge polling instead pin edge detection by "cdev" from gpiod.
135+
// WithHCSR04UseEdgePolling use discrete edge polling instead pin edge detection by "cdev" from the go-gpiocdev package.
136136
func WithHCSR04UseEdgePolling() hcsr04OptionApplier {
137137
return hcsr04UseEdgePollingOption(true)
138138
}

platforms/adaptors/digitalpinsadaptor.go

+8-8
Original file line numberDiff line numberDiff line change
@@ -66,7 +66,7 @@ type DigitalPinsAdaptor struct {
6666
mutex sync.Mutex
6767
}
6868

69-
// NewDigitalPinsAdaptor provides the access to digital pins of the board. It supports sysfs and gpiod system drivers.
69+
// NewDigitalPinsAdaptor provides the access to digital pins of the board. It supports sysfs and cdev system drivers.
7070
// This is decided by the given accesser. The translator is used to adapt the pin header naming, which is given by user,
7171
// to the internal file name or chip/line nomenclature. This varies by each platform. If for some reasons the default
7272
// initializer is not suitable, it can be given by the option "WithDigitalPinInitializer()". This is especially needed,
@@ -92,15 +92,15 @@ func WithDigitalPinInitializer(pc digitalPinInitializer) digitalPinsInitializeOp
9292
return digitalPinsInitializeOption(pc)
9393
}
9494

95-
// WithGpiodAccess can be used to change the default legacy sysfs implementation to the character device Kernel ABI,
96-
// provided by the gpiod package.
97-
func WithGpiodAccess() digitalPinsSystemSysfsOption {
95+
// WithGpioCdevAccess can be used to change the default legacy sysfs implementation to the character device Kernel ABI,
96+
// provided by the go-gpiocdev package.
97+
func WithGpioCdevAccess() digitalPinsSystemSysfsOption {
9898
return digitalPinsSystemSysfsOption(false)
9999
}
100100

101-
// WithSysfsAccess can be used to change the default character device implementation, provided by the gpiod package, to
102-
// the legacy sysfs Kernel ABI.
103-
func WithSysfsAccess() digitalPinsSystemSysfsOption {
101+
// WithGpioSysfsAccess can be used to change the default character device implementation, provided by the go-gpiocdev
102+
// package, to the legacy sysfs Kernel ABI.
103+
func WithGpioSysfsAccess() digitalPinsSystemSysfsOption {
104104
return digitalPinsSystemSysfsOption(true)
105105
}
106106

@@ -206,7 +206,7 @@ func (a *DigitalPinsAdaptor) Connect() error {
206206
if *cfg.useSysfs {
207207
system.WithDigitalPinSysfsAccess()(a.sys)
208208
} else {
209-
system.WithDigitalPinGpiodAccess()(a.sys)
209+
system.WithDigitalPinCdevAccess()(a.sys)
210210
}
211211
}
212212

platforms/adaptors/digitalpinsadaptor_test.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,7 @@ func TestNewDigitalPinsAdaptor(t *testing.T) {
6363
assert.NotNil(t, a.translate)
6464
assert.Nil(t, a.pins) // will be created on connect
6565
assert.Nil(t, a.pinOptions) // will be created on connect
66-
assert.True(t, a.sys.IsGpiodDigitalPinAccess())
66+
assert.True(t, a.sys.IsCdevDigitalPinAccess())
6767
}
6868

6969
func TestDigitalPinsConnect(t *testing.T) {

platforms/adaptors/digitalpinsadaptoroptions.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -80,7 +80,7 @@ func (o digitalPinsInitializeOption) String() string {
8080
}
8181

8282
func (o digitalPinsSystemSysfsOption) String() string {
83-
return "use gpiod system access option for digital pins"
83+
return "use sysfs vs. cdev system access option for digital pins"
8484
}
8585

8686
func (o digitalPinsForSystemSpiOption) String() string {

platforms/adaptors/digitalpinsadaptoroptions_test.go

+5-5
Original file line numberDiff line numberDiff line change
@@ -53,16 +53,16 @@ func TestDigitalPinsWithSysfsAccess(t *testing.T) {
5353
// arrange
5454
a := NewDigitalPinsAdaptor(system.NewAccesser(), nil)
5555
require.NoError(t, a.Connect())
56-
require.True(t, a.sys.IsGpiodDigitalPinAccess())
56+
require.True(t, a.sys.IsCdevDigitalPinAccess())
5757
require.NoError(t, a.Finalize())
5858
// act, connect is mandatory to set options to the system
59-
WithSysfsAccess().apply(a.digitalPinsCfg)
59+
WithGpioSysfsAccess().apply(a.digitalPinsCfg)
6060
require.NoError(t, a.Connect())
6161
// assert
6262
assert.True(t, a.sys.IsSysfsDigitalPinAccess())
6363
}
6464

65-
func TestDigitalPinsWithGpiodAccess(t *testing.T) {
65+
func TestDigitalPinsWithCdevAccess(t *testing.T) {
6666
// arrange
6767
a := NewDigitalPinsAdaptor(system.NewAccesser(system.WithDigitalPinSysfsAccess()), nil)
6868
require.NoError(t, a.Connect())
@@ -71,10 +71,10 @@ func TestDigitalPinsWithGpiodAccess(t *testing.T) {
7171
// we have to mock the fs at this point to ensure the option can be applied on each test environment
7272
a.sys.UseMockFilesystem([]string{"/dev/gpiochip0"})
7373
// act, connect is mandatory to set options to the system
74-
WithGpiodAccess().apply(a.digitalPinsCfg)
74+
WithGpioCdevAccess().apply(a.digitalPinsCfg)
7575
require.NoError(t, a.Connect())
7676
// assert
77-
assert.True(t, a.sys.IsGpiodDigitalPinAccess())
77+
assert.True(t, a.sys.IsCdevDigitalPinAccess())
7878
}
7979

8080
func TestDigitalReadWithGpiosActiveLow(t *testing.T) {

platforms/beaglebone/beaglebone_adaptor.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@ type Adaptor struct {
4545
//
4646
// Optional parameters:
4747
//
48-
// adaptors.WithGpiodAccess(): use character device gpiod driver instead of sysfs
48+
// adaptors.WithGpioCdevAccess(): use character device driver instead of sysfs
4949
// adaptors.WithSpiGpioAccess(sclk, ncs, sdo, sdi): use GPIO's instead of /dev/spidev#.#
5050
//
5151
// Optional parameters for PWM, see [adaptors.NewPWMPinsAdaptor]

platforms/beaglebone/pocketbeagle_adaptor.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ type PocketBeagleAdaptor struct {
1616
// NewPocketBeagleAdaptor creates a new Adaptor for the PocketBeagle
1717
// Optional parameters:
1818
//
19-
// adaptors.WithGpiodAccess(): use character device gpiod driver instead of sysfs
19+
// adaptors.WithGpioCdevAccess(): use character device driver instead of sysfs
2020
// adaptors.WithSpiGpioAccess(sclk, ncs, sdo, sdi): use GPIO's instead of /dev/spidev#.#
2121
//
2222
// Optional parameters for PWM, see [adaptors.NewPWMPinsAdaptor]

platforms/beaglebone/pocketbeagle_adaptor_test.go

+2-2
Original file line numberDiff line numberDiff line change
@@ -26,10 +26,10 @@ func TestNewPocketBeagleAdaptor(t *testing.T) {
2626

2727
func TestNewPocketBeagleAdaptorWithOption(t *testing.T) {
2828
// arrange & act
29-
a := NewPocketBeagleAdaptor(adaptors.WithGpiodAccess())
29+
a := NewPocketBeagleAdaptor(adaptors.WithGpioCdevAccess())
3030
// we have to mock the fs at this point to ensure the option can be applied on each test environment
3131
a.sys.UseMockFilesystem([]string{"/dev/gpiochip0"})
3232
// assert
3333
require.NoError(t, a.Connect())
34-
assert.True(t, a.sys.IsGpiodDigitalPinAccess())
34+
assert.True(t, a.sys.IsCdevDigitalPinAccess())
3535
}

platforms/chip/chip_adaptor.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ type Adaptor struct {
4040
//
4141
// Optional parameters:
4242
//
43-
// adaptors.WithGpiodAccess(): use character device gpiod driver instead of sysfs
43+
// adaptors.WithGpioCdevAccess(): use character device driver instead of sysfs
4444
// adaptors.WithSpiGpioAccess(sclk, ncs, sdo, sdi): use GPIO's instead of /dev/spidev#.#
4545
//
4646
// Optional parameters for PWM, see [adaptors.NewPWMPinsAdaptor]

platforms/dragonboard/dragonboard_adaptor.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@ var fixedPins = map[string]int{
4848
//
4949
// Optional parameters:
5050
//
51-
// adaptors.WithGpiodAccess(): use character device gpiod driver instead of sysfs
51+
// adaptors.WithGpioCdevAccess(): use character device driver instead of sysfs
5252
// adaptors.WithSpiGpioAccess(sclk, ncs, sdo, sdi): use GPIO's instead of /dev/spidev#.#
5353
func NewAdaptor(opts ...adaptors.DigitalPinsOptionApplier) *Adaptor {
5454
sys := system.NewAccesser(system.WithDigitalPinSysfsAccess())

platforms/intel-iot/joule/joule_adaptor.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ type Adaptor struct {
3232
//
3333
// Optional parameters:
3434
//
35-
// adaptors.WithGpiodAccess(): use character device gpiod driver instead of sysfs
35+
// adaptors.WithGpioCdevAccess(): use character device driver instead of sysfs
3636
// adaptors.WithSpiGpioAccess(sclk, ncs, sdo, sdi): use GPIO's instead of /dev/spidev#.#
3737
//
3838
// Optional parameters for PWM, see [adaptors.NewPWMPinsAdaptor]

platforms/jetson/jetson_adaptor.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ type Adaptor struct {
4040
//
4141
// Optional parameters:
4242
//
43-
// adaptors.WithGpiodAccess(): use character device gpiod driver instead of sysfs
43+
// adaptors.WithGpioCdevAccess(): use character device driver instead of sysfs
4444
// adaptors.WithSpiGpioAccess(sclk, ncs, sdo, sdi): use GPIO's instead of /dev/spidev#.#
4545
//
4646
// Optional parameters for PWM, see [adaptors.NewPWMPinsAdaptor]

platforms/nanopi/nanopi_adaptor.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ type Adaptor struct {
3737
//
3838
// Optional parameters:
3939
//
40-
// adaptors.WithSysfsAccess(): use legacy sysfs driver instead of default character device gpiod
40+
// adaptors.WithGpioSysfsAccess(): use legacy sysfs driver instead of default character device driver
4141
// adaptors.WithSpiGpioAccess(sclk, ncs, sdo, sdi): use GPIO's instead of /dev/spidev#.#
4242
// adaptors.WithGpiosActiveLow(pin's): invert the pin behavior
4343
// adaptors.WithGpiosPullUp/Down(pin's): sets the internal pull resistor

platforms/nanopi/nanopi_adaptor_test.go

+5-5
Original file line numberDiff line numberDiff line change
@@ -85,15 +85,15 @@ func TestNewAdaptor(t *testing.T) {
8585
assert.NotNil(t, a.PWMPinsAdaptor)
8686
assert.NotNil(t, a.I2cBusAdaptor)
8787
assert.NotNil(t, a.SpiBusAdaptor)
88-
assert.True(t, a.sys.IsGpiodDigitalPinAccess())
88+
assert.True(t, a.sys.IsCdevDigitalPinAccess())
8989
// act & assert
9090
a.SetName("NewName")
9191
assert.Equal(t, "NewName", a.Name())
9292
}
9393

9494
func TestNewAdaptorWithOption(t *testing.T) {
9595
// arrange & act
96-
a := NewNeoAdaptor(adaptors.WithGpiosActiveLow("1"), adaptors.WithSysfsAccess())
96+
a := NewNeoAdaptor(adaptors.WithGpiosActiveLow("1"), adaptors.WithGpioSysfsAccess())
9797
// assert
9898
require.NoError(t, a.Connect())
9999
assert.True(t, a.sys.IsSysfsDigitalPinAccess())
@@ -104,7 +104,7 @@ func TestDigitalIO(t *testing.T) {
104104
// arrange
105105
a := initConnectedTestAdaptor()
106106
dpa := a.sys.UseMockDigitalPinAccess()
107-
require.True(t, a.sys.IsGpiodDigitalPinAccess())
107+
require.True(t, a.sys.IsCdevDigitalPinAccess())
108108
// act & assert write
109109
err := a.DigitalWrite("7", 1)
110110
require.NoError(t, err)
@@ -125,7 +125,7 @@ func TestDigitalIO(t *testing.T) {
125125
func TestDigitalIOSysfs(t *testing.T) {
126126
// some basic tests, further tests are done in "digitalpinsadaptor.go"
127127
// arrange
128-
a := NewNeoAdaptor(adaptors.WithSysfsAccess())
128+
a := NewNeoAdaptor(adaptors.WithGpioSysfsAccess())
129129
require.NoError(t, a.Connect())
130130
dpa := a.sys.UseMockDigitalPinAccess()
131131
require.True(t, a.sys.IsSysfsDigitalPinAccess())
@@ -274,7 +274,7 @@ func TestFinalizeErrorAfterGPIO(t *testing.T) {
274274
// arrange
275275
a := initConnectedTestAdaptor()
276276
dpa := a.sys.UseMockDigitalPinAccess()
277-
require.True(t, a.sys.IsGpiodDigitalPinAccess())
277+
require.True(t, a.sys.IsCdevDigitalPinAccess())
278278
require.NoError(t, a.DigitalWrite("7", 1))
279279
dpa.UseUnexportError("gpiochip0", "203")
280280
// act

platforms/raspi/raspi_adaptor.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ type Adaptor struct {
4040
//
4141
// Optional parameters:
4242
//
43-
// adaptors.WithSysfsAccess(): use legacy sysfs driver instead of default character device gpiod
43+
// adaptors.WithGpioSysfsAccess(): use legacy sysfs driver instead of default character device driver
4444
// adaptors.WithSpiGpioAccess(sclk, ncs, sdo, sdi): use GPIO's instead of /dev/spidev#.#
4545
// adaptors.WithGpiosActiveLow(pin's): invert the pin behavior
4646
// adaptors.WithGpiosPullUp/Down(pin's): sets the internal pull resistor

platforms/raspi/raspi_adaptor_test.go

+3-3
Original file line numberDiff line numberDiff line change
@@ -84,15 +84,15 @@ func TestNewAdaptor(t *testing.T) {
8484
assert.NotNil(t, a.PWMPinsAdaptor)
8585
assert.NotNil(t, a.I2cBusAdaptor)
8686
assert.NotNil(t, a.SpiBusAdaptor)
87-
assert.True(t, a.sys.IsGpiodDigitalPinAccess())
87+
assert.True(t, a.sys.IsCdevDigitalPinAccess())
8888
// act & assert
8989
a.SetName("NewName")
9090
assert.Equal(t, "NewName", a.Name())
9191
}
9292

9393
func TestNewAdaptorWithOption(t *testing.T) {
9494
// arrange & act
95-
a := NewAdaptor(adaptors.WithGpiosActiveLow("1"), adaptors.WithSysfsAccess())
95+
a := NewAdaptor(adaptors.WithGpiosActiveLow("1"), adaptors.WithGpioSysfsAccess())
9696
// assert
9797
require.NoError(t, a.Connect())
9898
assert.True(t, a.sys.IsSysfsDigitalPinAccess())
@@ -283,7 +283,7 @@ func TestDigitalIO(t *testing.T) {
283283
panic(err)
284284
}
285285
dpa := a.sys.UseMockDigitalPinAccess()
286-
require.True(t, a.sys.IsGpiodDigitalPinAccess())
286+
require.True(t, a.sys.IsCdevDigitalPinAccess())
287287
// act & assert write
288288
_ = a.DigitalWrite("7", 1)
289289
assert.Equal(t, []int{1}, dpa.Written("gpiochip0", "4"))

platforms/rockpi/rockpi_adaptor.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ type Adaptor struct {
4040
//
4141
// Optional parameters:
4242
//
43-
// adaptors.WithGpiodAccess(): use character device gpiod driver instead of the default sysfs (NOT work on RockPi4C+!)
43+
// adaptors.WithGpioCdevAccess(): use character device driver instead of the default sysfs (NOT work on RockPi4C+!)
4444
// adaptors.WithSpiGpioAccess(sclk, ncs, sdo, sdi): use GPIO's instead of /dev/spidev#.#
4545
// adaptors.WithGpiosActiveLow(pin's): invert the pin behavior
4646
func NewAdaptor(opts ...adaptors.DigitalPinsOptionApplier) *Adaptor {

platforms/tinkerboard/adaptor.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ type Adaptor struct {
3838
//
3939
// Optional parameters:
4040
//
41-
// adaptors.WithSysfsAccess(): use legacy sysfs driver instead of default character device gpiod
41+
// adaptors.WithGpioSysfsAccess(): use legacy sysfs driver instead of default character device driver
4242
// adaptors.WithSpiGpioAccess(sclk, ncs, sdo, sdi): use GPIO's instead of /dev/spidev#.#
4343
// adaptors.WithGpiosActiveLow(pin's): invert the pin behavior
4444
// adaptors.WithGpiosPullUp/Down(pin's): sets the internal pull resistor

platforms/tinkerboard/adaptor_test.go

+5-5
Original file line numberDiff line numberDiff line change
@@ -87,15 +87,15 @@ func TestNewAdaptor(t *testing.T) {
8787
assert.NotNil(t, a.I2cBusAdaptor)
8888
assert.NotNil(t, a.SpiBusAdaptor)
8989
assert.NotNil(t, a.OneWireBusAdaptor)
90-
assert.True(t, a.sys.IsGpiodDigitalPinAccess())
90+
assert.True(t, a.sys.IsCdevDigitalPinAccess())
9191
// act & assert
9292
a.SetName("NewName")
9393
assert.Equal(t, "NewName", a.Name())
9494
}
9595

9696
func TestNewAdaptorWithOption(t *testing.T) {
9797
// arrange & act
98-
a := NewAdaptor(adaptors.WithGpiosActiveLow("1"), adaptors.WithSysfsAccess())
98+
a := NewAdaptor(adaptors.WithGpiosActiveLow("1"), adaptors.WithGpioSysfsAccess())
9999
// assert
100100
require.NoError(t, a.Connect())
101101
assert.True(t, a.sys.IsSysfsDigitalPinAccess())
@@ -106,7 +106,7 @@ func TestDigitalIO(t *testing.T) {
106106
// arrange
107107
a := initConnectedTestAdaptor()
108108
dpa := a.sys.UseMockDigitalPinAccess()
109-
require.True(t, a.sys.IsGpiodDigitalPinAccess())
109+
require.True(t, a.sys.IsCdevDigitalPinAccess())
110110
// act & assert write
111111
err := a.DigitalWrite("7", 1)
112112
require.NoError(t, err)
@@ -127,7 +127,7 @@ func TestDigitalIO(t *testing.T) {
127127
func TestDigitalIOSysfs(t *testing.T) {
128128
// some basic tests, further tests are done in "digitalpinsadaptor.go"
129129
// arrange
130-
a := NewAdaptor(adaptors.WithSysfsAccess())
130+
a := NewAdaptor(adaptors.WithGpioSysfsAccess())
131131
require.NoError(t, a.Connect())
132132
dpa := a.sys.UseMockDigitalPinAccess()
133133
require.True(t, a.sys.IsSysfsDigitalPinAccess())
@@ -262,7 +262,7 @@ func TestFinalizeErrorAfterGPIO(t *testing.T) {
262262
// arrange
263263
a := initConnectedTestAdaptor()
264264
dpa := a.sys.UseMockDigitalPinAccess()
265-
require.True(t, a.sys.IsGpiodDigitalPinAccess())
265+
require.True(t, a.sys.IsCdevDigitalPinAccess())
266266
require.NoError(t, a.DigitalWrite("7", 1))
267267
dpa.UseUnexportError("gpiochip0", "17")
268268
// act

0 commit comments

Comments
 (0)