aboutsummaryrefslogtreecommitdiffstats
path: root/mpm/python/lib_periphs.cpp
diff options
context:
space:
mode:
authorMartin Braun <martin.braun@ettus.com>2017-03-08 09:28:55 -0800
committerMartin Braun <martin.braun@ettus.com>2017-12-22 15:03:44 -0800
commit1a4348038d0eb57d53475074dca49e8192aeb2d7 (patch)
tree04c8e87fa9c95d2702aac410f6fb271461acb9bb /mpm/python/lib_periphs.cpp
parentfc8cd827f6b16b9c8c354a216889e6a9d7f37456 (diff)
downloaduhd-1a4348038d0eb57d53475074dca49e8192aeb2d7.tar.gz
uhd-1a4348038d0eb57d53475074dca49e8192aeb2d7.tar.bz2
uhd-1a4348038d0eb57d53475074dca49e8192aeb2d7.zip
Initial commit for N3xx development.
- Creates mpm/ subdirectory - First pass at hardware daemon/MPM - New code for LMK04828, AD9371 - spidev integration Contributions by: Martin Braun <martin.braun@ettus.com> Derek Kozel <derek.kozel@ettus.com> Mark Meserve <mark.meserve@ni.com> Andrej Rode <andrej.rode@ettus.com>
Diffstat (limited to 'mpm/python/lib_periphs.cpp')
-rw-r--r--mpm/python/lib_periphs.cpp49
1 files changed, 49 insertions, 0 deletions
diff --git a/mpm/python/lib_periphs.cpp b/mpm/python/lib_periphs.cpp
new file mode 100644
index 000000000..030752ede
--- /dev/null
+++ b/mpm/python/lib_periphs.cpp
@@ -0,0 +1,49 @@
+#include "lib_periphs.hpp"
+#include "lmk04828.hpp"
+#include <mpm/spi_iface.hpp>
+#include <boost/python.hpp>
+
+namespace bp = boost::python;
+
+void export_lmk(){
+ //Register submodule types
+ bp::object lmk_module(bp::handle<>(bp::borrowed(PyImport_AddModule("libpyusrp_periphs.lmk"))));
+ bp::scope().attr("lmk") = lmk_module;
+ bp::scope io_scope = lmk_module;
+
+ bp::class_<lmk04828_iface, boost::shared_ptr<lmk04828_iface>, boost::noncopyable >("lmk04828_iface", bp::no_init)
+ .def("make", &lmk04828_iface::make)
+ .def("verify_chip_id", &lmk04828_iface::verify_chip_id)
+ .def("init", &lmk04828_iface::init)
+ .def("send_sysref_pulse", &lmk04828_iface::send_sysref_pulse)
+ ;
+}
+
+void export_spi(){
+ //Register submodule types
+ bp::object spi_module(bp::handle<>(bp::borrowed(PyImport_AddModule("libpyusrp_periphs.spi"))));
+ bp::scope().attr("spi") = spi_module;
+ bp::scope io_scope = spi_module;
+
+ bp::class_<mpm::spi_iface, boost::noncopyable>("spi_iface", bp::no_init)
+ .def("write_byte", &mpm::spi_iface::write_byte)
+ .def("write_bytes", &mpm::spi_iface::write_bytes)
+ .def("read_byte", &mpm::spi_iface::read_byte)
+ .def("write_field", &mpm::spi_iface::write_field)
+ .def("read_field", &mpm::spi_iface::read_field)
+ .def("get_wire_mode", &mpm::spi_iface::get_wire_mode)
+ .def("get_endianness", &mpm::spi_iface::get_endianness)
+ .def("get_chip_select", &mpm::spi_iface::get_chip_select)
+ ;
+
+ bp::enum_<mpm::spi_iface::spi_endianness_t>("spi_endianness")
+ .value("lsb_first", mpm::spi_iface::spi_endianness_t::LSB_FIRST)
+ .value("msb_first", mpm::spi_iface::spi_endianness_t::MSB_FIRST)
+ ;
+
+ bp::enum_<mpm::spi_iface::spi_wire_mode_t>("spi_wire_mode")
+ .value("three_wire_mode", mpm::spi_iface::spi_wire_mode_t::THREE_WIRE_MODE)
+ .value("four_wire_mode", mpm::spi_iface::spi_wire_mode_t::FOUR_WIRE_MODE)
+ ;
+}
+