Content-Security-Policy: default-src 'none'
Content-Type: text/plain; charset=UTF-8
Content-Length: 1155
Content-Disposition: inline; filename="0437-overlays-Add-assert_falling_edge-to-pps-gpio-overlay.patch"
Last-Modified: Sun, 02 Jun 2024 16:29:08 GMT
Expires: Wed, 31 May 2034 16:29:08 GMT
ETag: "496539e20cda4f836da9cf38ebcce2e4a8d9bb79"

From b90a1393b3bdffa88c8e8dfbdc2bec650a5f885e Mon Sep 17 00:00:00 2001
From: Phil Elwell <phil@raspberrypi.org>
Date: Tue, 9 Aug 2016 21:51:41 +0100
Subject: [PATCH] overlays: Add assert_falling_edge to pps-gpio overlay

See: https://github.com/raspberrypi/linux/issues/1590
---
 arch/arm/boot/dts/overlays/README               | 2 ++
 arch/arm/boot/dts/overlays/pps-gpio-overlay.dts | 1 +
 2 files changed, 3 insertions(+)

--- a/arch/arm/boot/dts/overlays/README
+++ b/arch/arm/boot/dts/overlays/README
@@ -797,6 +797,8 @@ Name:   pps-gpio
 Info:   Configures the pps-gpio (pulse-per-second time signal via GPIO).
 Load:   dtoverlay=pps-gpio,<param>=<val>
 Params: gpiopin                 Input GPIO (default "18")
+        assert_falling_edge     When present, assert is indicated by a falling
+                                edge, rather than by a rising edge
 
 
 Name:   pwm
--- a/arch/arm/boot/dts/overlays/pps-gpio-overlay.dts
+++ b/arch/arm/boot/dts/overlays/pps-gpio-overlay.dts
@@ -30,5 +30,6 @@
 	__overrides__ {
 		gpiopin = <&pps>,"gpios:4",
 			  <&pps_pins>,"brcm,pins:0";
+		assert_falling_edge = <&pps>,"assert-falling-edge?";
 	};
 };
penwrt/em-br6478acv2/lede/master-31e0f0ae</a></td><td class='form'><form method='get'>
<input type='hidden' name='id' value='c17f02d2f272c6d74b20c2df050437f761d013a6'/><select name='h' onchange='this.form.submit();'>
<option value='do-work/Edimax-v2' selected='selected'>do-work/Edimax-v2</option>
</select> <input type='submit' value='switch'/></form></td></tr>
<tr><td class='sub'>Edimax BR-6578AC V2 base from https://github.com/ulli-kroll/lede.git</td><td class='sub right'>James</td></tr></table>
<table class='tabs'><tr><td>
<a href='/cgit.cgi/openwrt/em-br6478acv2/lede/master-31e0f0ae/?h=do-work/Edimax-v2'>summary</a><a href='/cgit.cgi/openwrt/em-br6478acv2/lede/master-31e0f0ae/refs/?h=do-work/Edimax-v2&amp;id=c17f02d2f272c6d74b20c2df050437f761d013a6'>refs</a><a href='/cgit.cgi/openwrt/em-br6478acv2/lede/master-31e0f0ae/log/target/linux/brcm2708/patches-4.4/0015-bcm2835-i2s-add-24bit-support-update-bclk_ratio-to-m.patch?h=do-work/Edimax-v2'>log</a><a class='active' href='/cgit.cgi/openwrt/em-br6478acv2/lede/master-31e0f0ae/tree/target/linux/brcm2708/patches-4.4/0015-bcm2835-i2s-add-24bit-support-update-bclk_ratio-to-m.patch?h=do-work/Edimax-v2&amp;id=c17f02d2f272c6d74b20c2df050437f761d013a6'>tree</a><a href='/cgit.cgi/openwrt/em-br6478acv2/lede/master-31e0f0ae/commit/target/linux/brcm2708/patches-4.4/0015-bcm2835-i2s-add-24bit-support-update-bclk_ratio-to-m.patch?h=do-work/Edimax-v2&amp;id=c17f02d2f272c6d74b20c2df050437f761d013a6'>commit</a><a href='/cgit.cgi/openwrt/em-br6478acv2/lede/master-31e0f0ae/diff/target/linux/brcm2708/patches-4.4/0015-bcm2835-i2s-add-24bit-support-update-bclk_ratio-to-m.patch?h=do-work/Edimax-v2&amp;id=c17f02d2f272c6d74b20c2df050437f761d013a6'>diff</a><a href='/cgit.cgi/openwrt/em-br6478acv2/lede/master-31e0f0ae/stats/target/linux/brcm2708/patches-4.4/0015-bcm2835-i2s-add-24bit-support-update-bclk_ratio-to-m.patch?h=do-work/Edimax-v2'>stats</a></td><td class='form'><form class='right' method='get' action='/cgit.cgi/openwrt/em-br6478acv2/lede/master-31e0f0ae/log/target/linux/brcm2708/patches-4.4/0015-bcm2835-i2s-add-24bit-support-update-bclk_ratio-to-m.patch'>
<input type='hidden' name='h' value='do-work/Edimax-v2'/><input type='hidden' name='id' value='c17f02d2f272c6d74b20c2df050437f761d013a6'/><select name='qt'>
<option value='grep'>log msg</option>
<option value='author'>author</option>
<option value='committer'>committer</option>
<option value='range'>range</option>
</select>
<input class='txt' type='search' size='10' name='q' value=''/>
<input type='submit' value='search'/>
</form>
</td></tr></table>
<div class='path'>path: <a href='/cgit.cgi/openwrt/em-br6478acv2/lede/master-31e0f0ae/tree/?h=do-work/Edimax-v2&amp;id=c17f02d2f272c6d74b20c2df050437f761d013a6'>root</a>/<a href='/cgit.cgi/openwrt/em-br6478acv2/lede/master-31e0f0ae/tree/target?h=do-work/Edimax-v2&amp;id=c17f02d2f272c6d74b20c2df050437f761d013a6'>target</a>/<a href='/cgit.cgi/openwrt/em-br6478acv2/lede/master-31e0f0ae/tree/target/linux?h=do-work/Edimax-v2&amp;id=c17f02d2f272c6d74b20c2df050437f761d013a6'>linux</a>/<a href='/cgit.cgi/openwrt/em-br6478acv2/lede/master-31e0f0ae/tree/target/linux/brcm2708?h=do-work/Edimax-v2&amp;id=c17f02d2f272c6d74b20c2df050437f761d013a6'>brcm2708</a>/<a href='/cgit.cgi/openwrt/em-br6478acv2/lede/master-31e0f0ae/tree/target/linux/brcm2708/patches-4.4?h=do-work/Edimax-v2&amp;id=c17f02d2f272c6d74b20c2df050437f761d013a6'>patches-4.4</a>/<a href='/cgit.cgi/openwrt/em-br6478acv2/lede/master-31e0f0ae/tree/target/linux/brcm2708/patches-4.4/0015-bcm2835-i2s-add-24bit-support-update-bclk_ratio-to-m.patch?h=do-work/Edimax-v2&amp;id=c17f02d2f272c6d74b20c2df050437f761d013a6'>0015-bcm2835-i2s-add-24bit-support-update-bclk_ratio-to-m.patch</a></div><div class='content'>blob: 6d2ce9b67d8c2f2b532768133cc3605bc8ff59b5 (<a href='/cgit.cgi/openwrt/em-br6478acv2/lede/master-31e0f0ae/plain/target/linux/brcm2708/patches-4.4/0015-bcm2835-i2s-add-24bit-support-update-bclk_ratio-to-m.patch?h=do-work/Edimax-v2&amp;id=c17f02d2f272c6d74b20c2df050437f761d013a6'>plain</a>)
<table summary='blob content' class='blob'>
<tr><td class='linenumbers'><pre><a id='n1' href='#n1'>1</a>
<a id='n2' href='#n2'>2</a>
<a id='n3' href='#n3'>3</a>
<a id='n4' href='#n4'>4</a>
<a id='n5' href='#n5'>5</a>
<a id='n6' href='#n6'>6</a>
<a id='n7' href='#n7'>7</a>
<a id='n8' href='#n8'>8</a>
<a id='n9' href='#n9'>9</a>
<a id='n10' href='#n10'>10</a>
<a id='n11' href='#n11'>11</a>
<a id='n12' href='#n12'>12</a>
<a id='n13' href='#n13'>13</a>
<a id='n14' href='#n14'>14</a>
<a id='n15' href='#n15'>15</a>
<a id='n16' href='#n16'>16</a>
<a id='n17' href='#n17'>17</a>
<a id='n18' href='#n18'>18</a>
<a id='n19' href='#n19'>19</a>
<a id='n20' href='#n20'>20</a>
<a id='n21' href='#n21'>21</a>
<a id='n22' href='#n22'>22</a>
<a id='n23' href='#n23'>23</a>
<a id='n24' href='#n24'>24</a>
<a id='n25' href='#n25'>25</a>
<a id='n26' href='#n26'>26</a>
<a id='n27' href='#n27'>27</a>
<a id='n28' href='#n28'>28</a>
<a id='n29' href='#n29'>29</a>
<a id='n30' href='#n30'>30</a>
<a id='n31' href='#n31'>31</a>
<a id='n32' href='#n32'>32</a>
<a id='n33' href='#n33'>33</a>
<a id='n34' href='#n34'>34</a>
<a id='n35' href='#n35'>35</a>
<a id='n36' href='#n36'>36</a>
<a id='n37' href='#n37'>37</a>
<a id='n38' href='#n38'>38</a>
<a id='n39' href='#n39'>39</a>
<a id='n40' href='#n40'>40</a>
<a id='n41' href='#n41'>41</a>
<a id='n42' href='#n42'>42</a>
<a id='n43' href='#n43'>43</a>
<a id='n44' href='#n44'>44</a>
<a id='n45' href='#n45'>45</a>
<a id='n46' href='#n46'>46</a>
<a id='n47' href='#n47'>47</a>
<a id='n48' href='#n48'>48</a>
<a id='n49' href='#n49'>49</a>
<a id='n50' href='#n50'>50</a>
<a id='n51' href='#n51'>51</a>
<a id='n52' href='#n52'>52</a>
<a id='n53' href='#n53'>53</a>
<a id='n54' href='#n54'>54</a>
<a id='n55' href='#n55'>55</a>
<a id='n56' href='#n56'>56</a>
<a id='n57' href='#n57'>57</a>
<a id='n58' href='#n58'>58</a>
<a id='n59' href='#n59'>59</a>
<a id='n60' href='#n60'>60</a>
<a id='n61' href='#n61'>61</a>
<a id='n62' href='#n62'>62</a>
<a id='n63' href='#n63'>63</a>
<a id='n64' href='#n64'>64</a>
<a id='n65' href='#n65'>65</a>
<a id='n66' href='#n66'>66</a>
<a id='n67' href='#n67'>67</a>
<a id='n68' href='#n68'>68</a>
<a id='n69' href='#n69'>69</a>
<a id='n70' href='#n70'>70</a>
<a id='n71' href='#n71'>71</a>
<a id='n72' href='#n72'>72</a>
<a id='n73' href='#n73'>73</a>
<a id='n74' href='#n74'>74</a>
<a id='n75' href='#n75'>75</a>
<a id='n76' href='#n76'>76</a>
<a id='n77' href='#n77'>77</a>
<a id='n78' href='#n78'>78</a>
<a id='n79' href='#n79'>79</a>
</pre></td>
<td class='lines'><pre><code><style>pre { line-height: 125%; margin: 0; }
td.linenos pre { color: #000000; background-color: #f0f0f0; padding: 0 5px 0 5px; }
span.linenos { color: #000000; background-color: #f0f0f0; padding: 0 5px 0 5px; }
td.linenos pre.special { color: #000000; background-color: #ffffc0; padding: 0 5px 0 5px; }
span.linenos.special { color: #000000; background-color: #ffffc0; padding: 0 5px 0 5px; }
.highlight .hll { background-color: #ffffcc }
.highlight { background: #ffffff; }
.highlight .c { color: #888888 } /* Comment */
.highlight .err { color: #a61717; background-color: #e3d2d2 } /* Error */
.highlight .k { color: #008800; font-weight: bold } /* Keyword */
.highlight .ch { color: #888888 } /* Comment.Hashbang */
.highlight .cm { color: #888888 } /* Comment.Multiline */
.highlight .cp { color: #cc0000; font-weight: bold } /* Comment.Preproc */
.highlight .cpf { color: #888888 } /* Comment.PreprocFile */
.highlight .c1 { color: #888888 } /* Comment.Single */
.highlight .cs { color: #cc0000; font-weight: bold; background-color: #fff0f0 } /* Comment.Special */
.highlight .gd { color: #000000; background-color: #ffdddd } /* Generic.Deleted */
.highlight .ge { font-style: italic } /* Generic.Emph */
.highlight .gr { color: #aa0000 } /* Generic.Error */
.highlight .gh { color: #333333 } /* Generic.Heading */
.highlight .gi { color: #000000; background-color: #ddffdd } /* Generic.Inserted */
.highlight .go { color: #888888 } /* Generic.Output */
.highlight .gp { color: #555555 } /* Generic.Prompt */
.highlight .gs { font-weight: bold } /* Generic.Strong */
.highlight .gu { color: #666666 } /* Generic.Subheading */
.highlight .gt { color: #aa0000 } /* Generic.Traceback */
.highlight .kc { color: #008800; font-weight: bold } /* Keyword.Constant */
.highlight .kd { color: #008800; font-weight: bold } /* Keyword.Declaration */
.highlight .kn { color: #008800; font-weight: bold } /* Keyword.Namespace */
.highlight .kp { color: #008800 } /* Keyword.Pseudo */
.highlight .kr { color: #008800; font-weight: bold } /* Keyword.Reserved */
.highlight .kt { color: #888888; font-weight: bold } /* Keyword.Type */
.highlight .m { color: #0000DD; font-weight: bold } /* Literal.Number */
.highlight .s { color: #dd2200; background-color: #fff0f0 } /* Literal.String */
.highlight .na { color: #336699 } /* Name.Attribute */
.highlight .nb { color: #003388 } /* Name.Builtin */
.highlight .nc { color: #bb0066; font-weight: bold } /* Name.Class */
.highlight .no { color: #003366; font-weight: bold } /* Name.Constant */
.highlight .nd { color: #555555 } /* Name.Decorator */
.highlight .ne { color: #bb0066; font-weight: bold } /* Name.Exception */
.highlight .nf { color: #0066bb; font-weight: bold } /* Name.Function */
.highlight .nl { color: #336699; font-style: italic } /* Name.Label */
.highlight .nn { color: #bb0066; font-weight: bold } /* Name.Namespace */
.highlight .py { color: #336699; font-weight: bold } /* Name.Property */
.highlight .nt { color: #bb0066; font-weight: bold } /* Name.Tag */
.highlight .nv { color: #336699 } /* Name.Variable */
.highlight .ow { color: #008800 } /* Operator.Word */
.highlight .w { color: #bbbbbb } /* Text.Whitespace */
.highlight .mb { color: #0000DD; font-weight: bold } /* Literal.Number.Bin */
.highlight .mf { color: #0000DD; font-weight: bold } /* Literal.Number.Float */
.highlight .mh { color: #0000DD; font-weight: bold } /* Literal.Number.Hex */
.highlight .mi { color: #0000DD; font-weight: bold } /* Literal.Number.Integer */
.highlight .mo { color: #0000DD; font-weight: bold } /* Literal.Number.Oct */
.highlight .sa { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Affix */
.highlight .sb { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Backtick */
.highlight .sc { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Char */
.highlight .dl { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Delimiter */
.highlight .sd { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Doc */
.highlight .s2 { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Double */
.highlight .se { color: #0044dd; background-color: #fff0f0 } /* Literal.String.Escape */
.highlight .sh { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Heredoc */
.highlight .si { color: #3333bb; background-color: #fff0f0 } /* Literal.String.Interpol */
.highlight .sx { color: #22bb22; background-color: #f0fff0 } /* Literal.String.Other */
.highlight .sr { color: #008800; background-color: #fff0ff } /* Literal.String.Regex */
.highlight .s1 { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Single */
.highlight .ss { color: #aa6600; background-color: #fff0f0 } /* Literal.String.Symbol */
.highlight .bp { color: #003388 } /* Name.Builtin.Pseudo */
.highlight .fm { color: #0066bb; font-weight: bold } /* Name.Function.Magic */
.highlight .vc { color: #336699 } /* Name.Variable.Class */
.highlight .vg { color: #dd7700 } /* Name.Variable.Global */
.highlight .vi { color: #3333bb } /* Name.Variable.Instance */
.highlight .vm { color: #336699 } /* Name.Variable.Magic */
.highlight .il { color: #0000DD; font-weight: bold } /* Literal.Number.Integer.Long */</style><div class="highlight"><pre><span></span>From 09feefa33b3f36291dc3a406bcf80dddf72568e9 Mon Sep 17 00:00:00 2001
From: Matthias Reichl &lt;hias@horus.com&gt;
Date: Sun, 11 Oct 2015 15:21:16 +0200
Subject: [PATCH 015/304] bcm2835-i2s: add 24bit support, update bclk_ratio to
 more correct values

Code ported from bcm2708-i2s driver in Raspberry Pi tree.

RPi commit 62c05a0b5328d9376d39c9e74da10b8a2465c234 (&quot;ASoC: BCM2708:
Add 24 bit support&quot;)

This adds 24 bit support to the I2S driver of the BCM2708.
Besides enabling the 24 bit flags, it includes two bug fixes:

MMAP is not supported. Claiming this leads to strange issues
when the format of driver and file do not match.

The datasheet states that the width extension bit should be set
for widths greater than 24, but greater or equal would be correct.
This follows from the definition of the width field.

Signed-off-by: Florian Meier &lt;florian.meier@koalo.de&gt;

RPi commit 3e8c672bc4e92d457aa4654bbb4cfd79a18a2327 (&quot;bcm2708-i2s:
Update bclk_ratio to more correct values&quot;)

Discussion about blck_ratio affecting sound quality:
https://github.com/raspberrypi/linux/issues/681

Signed-off-by: Matthias Reichl &lt;hias@horus.com&gt;
<span class="gd">---</span>
 sound/soc/bcm/bcm2835-i2s.c | 12 +++++++++---
 1 file changed, 9 insertions(+), 3 deletions(-)

<span class="gd">--- a/sound/soc/bcm/bcm2835-i2s.c</span>
<span class="gi">+++ b/sound/soc/bcm/bcm2835-i2s.c</span>
<span class="gu">@@ -340,11 +340,15 @@ static int bcm2835_i2s_hw_params(struct</span>
 	switch (params_format(params)) {
 	case SNDRV_PCM_FORMAT_S16_LE:
 		data_length = 16;
<span class="gd">-		bclk_ratio = 40;</span>
<span class="gi">+		bclk_ratio = 50;</span>
<span class="gi">+		break;</span>
<span class="gi">+	case SNDRV_PCM_FORMAT_S24_LE:</span>
<span class="gi">+		data_length = 24;</span>
<span class="gi">+		bclk_ratio = 50;</span>
 		break;
 	case SNDRV_PCM_FORMAT_S32_LE:
 		data_length = 32;
<span class="gd">-		bclk_ratio = 80;</span>
<span class="gi">+		bclk_ratio = 100;</span>
 		break;
 	default:
 		return -EINVAL;
<span class="gu">@@ -420,7 +424,7 @@ static int bcm2835_i2s_hw_params(struct</span>
 	/* Setup the frame format */
 	format = BCM2835_I2S_CHEN;
 
<span class="gd">-	if (data_length &gt; 24)</span>
<span class="gi">+	if (data_length &gt;= 24)</span>
 		format |= BCM2835_I2S_CHWEX;
 
 	format |= BCM2835_I2S_CHWID((data_length-8)&amp;0xf);
<span class="gu">@@ -711,6 +715,7 @@ static struct snd_soc_dai_driver bcm2835</span>
 		.channels_max = 2,
 		.rates =	SNDRV_PCM_RATE_8000_192000,
 		.formats =	SNDRV_PCM_FMTBIT_S16_LE
<span class="gi">+				| SNDRV_PCM_FMTBIT_S24_LE</span>
 				| SNDRV_PCM_FMTBIT_S32_LE
 		},
 	.capture = {
<span class="gu">@@ -718,6 +723,7 @@ static struct snd_soc_dai_driver bcm2835</span>
 		.channels_max = 2,
 		.rates =	SNDRV_PCM_RATE_8000_192000,
 		.formats =	SNDRV_PCM_FMTBIT_S16_LE
<span class="gi">+				| SNDRV_PCM_FMTBIT_S24_LE</span>
 				| SNDRV_PCM_FMTBIT_S32_LE
 		},
 	.ops = &amp;bcm2835_i2s_dai_ops,
</pre></div>
</code></pre></td></tr></table>
</div> <!-- class=content -->
<div class='footer'>generated by <a href='https://git.zx2c4.com/cgit/about/'>cgit v1.2.3</a> (<a href='https://git-scm.com/'>git 2.25.1</a>) at 2024-06-02 16:29:08 +0000</div>
</div> <!-- id=cgit -->
</body>
</html>
