rbone 0.1.3 → 0.1.4

Sign up to get free protection for your applications and to get access to all the features.
@@ -14,6 +14,76 @@ module Rbone
14
14
  P9_12, P9_15, P9_23, P9_25, P9_27, P9_42,
15
15
  ].freeze
16
16
 
17
+ PIN_MUX_REF = {
18
+ P8_3 => "gpmc_ad6",
19
+ P8_4 => "gpmc_ad7",
20
+ P8_5 => "gpmc_ad2",
21
+ P8_6 => "gpmc_ad3",
22
+ #P8_7 => "gpmc_advn_ale",
23
+ #P8_8 => "gpmc_oen_ren",
24
+ #P8_9 => "gpmc_ben0_cle",
25
+ #P8_10 => "gpmc_wen",
26
+ P8_11 => "gpmc_ad13",
27
+ P8_12 => "gpmc_ad12",
28
+ #P8_13 => "gpmc_ad9",
29
+ P8_14 => "gpmc_ad10",
30
+ P8_15 => "gpmc_ad15",
31
+ P8_16 => "gpmc_ad14",
32
+ P8_17 => "gpmc_ad11",
33
+ P8_18 => "gpmc_clk",
34
+ #P8_19 => "gpmc_ad8",
35
+ P8_20 => "gpmc_csn2",
36
+ P8_21 => "gpmc_csn1",
37
+ P8_22 => "gpmc_ad5",
38
+ P8_23 => "gpmc_ad4",
39
+ P8_24 => "gpmc_ad1",
40
+ P8_25 => "gpmc_ad0",
41
+ P8_26 => "gpmc_csn0",
42
+ P8_27 => "lcd_vsync",
43
+ P8_28 => "lcd_pclk",
44
+ P8_29 => "lcd_hsync",
45
+ P8_30 => "lcd_ac_bias_en",
46
+ #P8_31 => "lcd_data14",
47
+ #P8_32 => "lcd_data15",
48
+ #P8_33 => "lcd_data13",
49
+ #P8_34 => "lcd_data11",
50
+ #P8_35 => "lcd_data12",
51
+ #P8_36 => "lcd_data10",
52
+ #P8_37 => "lcd_data8",
53
+ #P8_38 => "lcd_data9",
54
+ P8_39 => "lcd_data6",
55
+ P8_40 => "lcd_data7",
56
+ P8_41 => "lcd_data4",
57
+ P8_42 => "lcd_data5",
58
+ P8_43 => "lcd_data2",
59
+ P8_44 => "lcd_data3",
60
+ P8_45 => "lcd_data0",
61
+ P8_46 => "lcd_data1",
62
+ #P9_11 => "gpmc_wait0",
63
+ P9_12 => "gpmc_ben1",
64
+ #P9_13 => "gpmc_wpn",
65
+ #P9_14 => "gpmc_a2",
66
+ P9_15 => "gpmc_a0",
67
+ #P9_16 => "gpmc_a3",
68
+ #P9_17 => "spi0_cs0",
69
+ #P9_18 => "spi0_d1",
70
+ #P9_19 => "uart1_rtsn",
71
+ #P9_20 => "uart1_ctsn",
72
+ #P9_21 => "spi0_d0",
73
+ #P9_22 => "spi0_sclk",
74
+ P9_23 => "gpmc_a1",
75
+ #P9_24 => "uart1_txd",
76
+ P9_25 => "mcasp0_ahclkx",
77
+ #P9_26 => "uart1_rxd",
78
+ P9_27 => "mcasp0_fsr",
79
+ #P9_28 => "mcasp0_ahclkr",
80
+ #P9_29 => "mcasp0_fsx",
81
+ #P9_30 => "mcasp0_axr0",
82
+ #P9_31 => "mcasp0_ahclkx",
83
+ #P9_41 => "xdma_event_intr0",
84
+ P9_42 => "ecap0_in_pwm0_out"
85
+ }.freeze
86
+
17
87
  USR_LEDS = [
18
88
  USR0, USR1, USR2, USR3
19
89
  ].freeze
@@ -55,15 +125,21 @@ module Rbone
55
125
  f.write(pin.to_s)
56
126
  end
57
127
 
128
+ muxfile = File.open("/sys/kernel/debug/omap_mux/%s" % [PIN_MUX_REF[pin]], 'w')
129
+
58
130
  filename = '/sys/class/gpio/gpio%d/direction' % [pin]
59
131
  File.open(filename, 'w') do |f|
60
132
  if direction == INPUT
61
133
  f.write("in")
134
+ muxfile.write("2F")
62
135
  else
63
136
  f.write("out")
137
+ muxfile.write("7")
64
138
  end
65
139
  end
66
140
 
141
+ muxfile.close
142
+
67
143
  @exported_pins.push(pin)
68
144
  else
69
145
  raise PinRefError, "#{pin} is not a valid digital pin reference"
@@ -96,7 +172,7 @@ module Rbone
96
172
  File.open(filename, 'r') do |f|
97
173
  value = f.read.chomp
98
174
  end
99
- case value.chomp
175
+ case value
100
176
  when '0' then LOW
101
177
  when '1' then HIGH
102
178
  else nil
@@ -1,3 +1,3 @@
1
1
  module Rbone
2
- VERSION = "0.1.3"
2
+ VERSION = "0.1.4"
3
3
  end
@@ -13,6 +13,12 @@ describe Rbone::App do
13
13
  FileUtils.mkdir_p(base_dir)
14
14
  FileUtils.touch(%w(brightness max_brightness trigger uevent).map{ |f| "#{base_dir}/#{f}" })
15
15
  end
16
+
17
+ # mock pin mux files
18
+ FileUtils.mkdir_p("/sys/kernel/debug/omap_mux")
19
+ Rbone::App::PIN_MUX_REF.values.each do |pin_mux_file|
20
+ FileUtils.touch("/sys/kernel/debug/omap_mux/%s" % [pin_mux_file])
21
+ end
16
22
  end
17
23
 
18
24
  after :each do
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rbone
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.3
4
+ version: 0.1.4
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,11 +9,11 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-05-22 00:00:00.000000000 Z
12
+ date: 2012-11-03 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rake
16
- requirement: &70349566284100 !ruby/object:Gem::Requirement
16
+ requirement: !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ! '>='
@@ -21,10 +21,15 @@ dependencies:
21
21
  version: '0'
22
22
  type: :development
23
23
  prerelease: false
24
- version_requirements: *70349566284100
24
+ version_requirements: !ruby/object:Gem::Requirement
25
+ none: false
26
+ requirements:
27
+ - - ! '>='
28
+ - !ruby/object:Gem::Version
29
+ version: '0'
25
30
  - !ruby/object:Gem::Dependency
26
31
  name: rspec
27
- requirement: &70349566283620 !ruby/object:Gem::Requirement
32
+ requirement: !ruby/object:Gem::Requirement
28
33
  none: false
29
34
  requirements:
30
35
  - - ! '>='
@@ -32,10 +37,15 @@ dependencies:
32
37
  version: '0'
33
38
  type: :development
34
39
  prerelease: false
35
- version_requirements: *70349566283620
40
+ version_requirements: !ruby/object:Gem::Requirement
41
+ none: false
42
+ requirements:
43
+ - - ! '>='
44
+ - !ruby/object:Gem::Version
45
+ version: '0'
36
46
  - !ruby/object:Gem::Dependency
37
47
  name: fakefs
38
- requirement: &70349566283080 !ruby/object:Gem::Requirement
48
+ requirement: !ruby/object:Gem::Requirement
39
49
  none: false
40
50
  requirements:
41
51
  - - ! '>='
@@ -43,7 +53,12 @@ dependencies:
43
53
  version: '0'
44
54
  type: :development
45
55
  prerelease: false
46
- version_requirements: *70349566283080
56
+ version_requirements: !ruby/object:Gem::Requirement
57
+ none: false
58
+ requirements:
59
+ - - ! '>='
60
+ - !ruby/object:Gem::Version
61
+ version: '0'
47
62
  description: This gem provides a simple interface for writing Arduino-style programs
48
63
  for the BeagleBone.
49
64
  email:
@@ -80,7 +95,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
80
95
  version: '0'
81
96
  segments:
82
97
  - 0
83
- hash: 4427378904925698514
98
+ hash: -2053350550598623761
84
99
  required_rubygems_version: !ruby/object:Gem::Requirement
85
100
  none: false
86
101
  requirements:
@@ -89,10 +104,10 @@ required_rubygems_version: !ruby/object:Gem::Requirement
89
104
  version: '0'
90
105
  segments:
91
106
  - 0
92
- hash: 4427378904925698514
107
+ hash: -2053350550598623761
93
108
  requirements: []
94
109
  rubyforge_project:
95
- rubygems_version: 1.8.11
110
+ rubygems_version: 1.8.23
96
111
  signing_key:
97
112
  specification_version: 3
98
113
  summary: Write simple Arduino-style programs for your BeagleBone