beaglebone 1.2.2 → 1.2.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/beaglebone.gemspec +2 -2
- data/lib/beaglebone/uart.rb +79 -4
- metadata +6 -5
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 55046e8cad71090664e27203de1fe74cb6111e71
|
4
|
+
data.tar.gz: f3690c4cb8d86a7c8e640a531c9cf4f501e45a8b
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 61e7091c7b1cc1ff8ed255228f3813ebf9cdc8b26d25efd6bda76dafac0ab65214f54c644b876a975f68480f4558ab3b8585673daf3dd89ed2b57eff391f4768
|
7
|
+
data.tar.gz: 73c4924d8e245f5eee866b913ffae1d89d24b897d196a6534525ee99280f65748563349bf66b4a16a516e8432a2227a2fafb2ed533f7c52b97762260e70b4b0c
|
data/beaglebone.gemspec
CHANGED
data/lib/beaglebone/uart.rb
CHANGED
@@ -15,6 +15,47 @@ module Beaglebone #:nodoc:
|
|
15
15
|
class << self
|
16
16
|
attr_accessor :uartstatus, :uartmutex
|
17
17
|
|
18
|
+
# dts template for UART3 device
|
19
|
+
UARTTEMPLATE = []
|
20
|
+
UARTTEMPLATE[3] = '
|
21
|
+
/dts-v1/;
|
22
|
+
/plugin/;
|
23
|
+
|
24
|
+
/ {
|
25
|
+
compatible = "ti,beaglebone", "ti,beaglebone-black";
|
26
|
+
|
27
|
+
/* identification */
|
28
|
+
part-number = "BB-UART3";
|
29
|
+
version = "00A0";
|
30
|
+
|
31
|
+
/* state the resources this cape uses */
|
32
|
+
exclusive-use =
|
33
|
+
/* the pin header uses */
|
34
|
+
"P9.42", /* uart3_txd */
|
35
|
+
/* the hardware ip uses */
|
36
|
+
"uart3";
|
37
|
+
|
38
|
+
fragment@0 {
|
39
|
+
target = <&am33xx_pinmux>;
|
40
|
+
__overlay__ {
|
41
|
+
bb_uart3_pins: pinmux_bb_uart3_pins {
|
42
|
+
pinctrl-single,pins = <
|
43
|
+
0x164 0x01
|
44
|
+
>;
|
45
|
+
};
|
46
|
+
};
|
47
|
+
};
|
48
|
+
|
49
|
+
fragment@1 {
|
50
|
+
target = <&uart4>; /* really uart3 */
|
51
|
+
__overlay__ {
|
52
|
+
status = "okay";
|
53
|
+
pinctrl-names = "default";
|
54
|
+
pinctrl-0 = <&bb_uart3_pins>;
|
55
|
+
};
|
56
|
+
};
|
57
|
+
};
|
58
|
+
'
|
18
59
|
|
19
60
|
# Initialize a UART device
|
20
61
|
#
|
@@ -32,6 +73,9 @@ module Beaglebone #:nodoc:
|
|
32
73
|
|
33
74
|
uartinfo = UARTS[uart]
|
34
75
|
|
76
|
+
#ensure we have a dtb to load
|
77
|
+
create_device_tree(uart)
|
78
|
+
|
35
79
|
#ensure dtb is loaded
|
36
80
|
Beaglebone::device_tree_load("#{TREES[:UART][:pin]}#{uartinfo[:id]}")
|
37
81
|
|
@@ -392,12 +436,16 @@ module Beaglebone #:nodoc:
|
|
392
436
|
raise ArgumentError, "Invalid UART Specified #{uart.to_s}" unless UARTS[uart]
|
393
437
|
uartinfo = UARTS[uart.to_sym]
|
394
438
|
|
395
|
-
|
396
|
-
|
439
|
+
if uartinfo[:tx]
|
440
|
+
unless [nil,:uart].include?(Beaglebone::get_pin_status(uartinfo[:tx], :type))
|
441
|
+
raise StandardError, "TX Pin for #{uart.to_s} in use"
|
442
|
+
end
|
397
443
|
end
|
398
444
|
|
399
|
-
|
400
|
-
|
445
|
+
if uartinfo[:rx]
|
446
|
+
unless [nil,:uart].include?(Beaglebone::get_pin_status(uartinfo[:rx], :type))
|
447
|
+
raise StandardError, "RX Pin for #{uart.to_s} in use"
|
448
|
+
end
|
401
449
|
end
|
402
450
|
|
403
451
|
end
|
@@ -439,6 +487,33 @@ module Beaglebone #:nodoc:
|
|
439
487
|
|
440
488
|
end
|
441
489
|
|
490
|
+
def create_device_tree(uart, force = false)
|
491
|
+
uartinfo = UARTS[uart]
|
492
|
+
|
493
|
+
#ensure valid uart, and a template to create this exists
|
494
|
+
return unless uartinfo
|
495
|
+
|
496
|
+
uartnum = uartinfo[:id]
|
497
|
+
|
498
|
+
return unless uartnum && UARTTEMPLATE[uartnum]
|
499
|
+
|
500
|
+
dts = UARTTEMPLATE[uartinfo[:id]].clone
|
501
|
+
|
502
|
+
filename = "/lib/firmware/#{TREES[:UART][:pin]}#{uartnum}-00A0"
|
503
|
+
dts_fn = "#{filename}.dts"
|
504
|
+
dtb_fn = "#{filename}.dtbo"
|
505
|
+
|
506
|
+
# if we've already built this file, we don't need to do it again
|
507
|
+
return if File.exists?(dtb_fn) && !force
|
508
|
+
|
509
|
+
dts_file = File.open(dts_fn, 'w')
|
510
|
+
dts_file.write(dts)
|
511
|
+
dts_file.close
|
512
|
+
|
513
|
+
system("dtc -O dtb -o #{dtb_fn} -b 0 -@ #{dts_fn}")
|
514
|
+
|
515
|
+
end
|
516
|
+
|
442
517
|
end
|
443
518
|
end
|
444
519
|
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: beaglebone
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.2.
|
4
|
+
version: 1.2.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Rob Mosher
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-
|
11
|
+
date: 2014-10-04 00:00:00.000000000 Z
|
12
12
|
dependencies: []
|
13
13
|
description: A Full Featured Beaglebone IO Gem
|
14
14
|
email: nyt-rubygems@countercultured.net
|
@@ -39,18 +39,19 @@ require_paths:
|
|
39
39
|
- lib
|
40
40
|
required_ruby_version: !ruby/object:Gem::Requirement
|
41
41
|
requirements:
|
42
|
-
- -
|
42
|
+
- - ">="
|
43
43
|
- !ruby/object:Gem::Version
|
44
44
|
version: '0'
|
45
45
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
46
46
|
requirements:
|
47
|
-
- -
|
47
|
+
- - ">="
|
48
48
|
- !ruby/object:Gem::Version
|
49
49
|
version: '0'
|
50
50
|
requirements: []
|
51
51
|
rubyforge_project:
|
52
|
-
rubygems_version: 2.
|
52
|
+
rubygems_version: 2.2.2
|
53
53
|
signing_key:
|
54
54
|
specification_version: 4
|
55
55
|
summary: Beaglebone IO Gem
|
56
56
|
test_files: []
|
57
|
+
has_rdoc:
|