53 lines
911 B
Go
53 lines
911 B
Go
// Copyright 2017 The Periph Authors. All rights reserved.
|
|
// Use of this source code is governed under the Apache License, Version 2.0
|
|
// that can be found in the LICENSE file.
|
|
|
|
package am335x
|
|
|
|
import (
|
|
"errors"
|
|
"strings"
|
|
|
|
"periph.io/x/conn/v3/driver/driverreg"
|
|
"periph.io/x/host/v3/distro"
|
|
)
|
|
|
|
// Present returns true if a TM AM335x processor is detected.
|
|
func Present() bool {
|
|
if isArm {
|
|
return strings.HasPrefix(distro.DTModel(), "TI AM335x")
|
|
}
|
|
return false
|
|
}
|
|
|
|
// driver implements periph.Driver.
|
|
type driver struct {
|
|
}
|
|
|
|
func (d *driver) String() string {
|
|
return "am335x"
|
|
}
|
|
|
|
func (d *driver) Prerequisites() []string {
|
|
return nil
|
|
}
|
|
|
|
func (d *driver) After() []string {
|
|
return nil
|
|
}
|
|
|
|
func (d *driver) Init() (bool, error) {
|
|
if !Present() {
|
|
return false, errors.New("am335x CPU not detected")
|
|
}
|
|
return true, nil
|
|
}
|
|
|
|
func init() {
|
|
if isArm {
|
|
driverreg.MustRegister(&drv)
|
|
}
|
|
}
|
|
|
|
var drv driver
|