<p>Kévin Redon has uploaded this change for <strong>review</strong>.</p><p><a href="https://gerrit.osmocom.org/13780">View Change</a></p><pre style="font-family: monospace,monospace; white-space: pre-wrap;">output 50 MHz for RMII<br><br>in hardware revision 2 the Ethernet PHY RMII_CLOCK input clock is<br>connected to the MCU pin PA10.<br>GCLK4 of the MCU now outputs the required 50 MHz clock on this pin.<br>the same clock is re-used for UART debug to generate the 921600<br>bps baud rate.<br><br>Change-Id: Id3a3dee15c3986536b0623d0f39ca62e94acd1fd<br>---<br>M sysmoOCTSIM/atmel_start_config.atstart<br>M sysmoOCTSIM/atmel_start_pins.h<br>M sysmoOCTSIM/config/hpl_gclk_config.h<br>M sysmoOCTSIM/config/peripheral_clk_config.h<br>M sysmoOCTSIM/driver_init.c<br>5 files changed, 63 insertions(+), 5 deletions(-)<br><br></pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;">git pull ssh://gerrit.osmocom.org:29418/osmo-ccid-firmware refs/changes/80/13780/1</pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;"><span>diff --git a/sysmoOCTSIM/atmel_start_config.atstart b/sysmoOCTSIM/atmel_start_config.atstart</span><br><span>index 4fda2f8..6357a74 100644</span><br><span>--- a/sysmoOCTSIM/atmel_start_config.atstart</span><br><span>+++ b/sysmoOCTSIM/atmel_start_config.atstart</span><br><span>@@ -702,7 +702,7 @@</span><br><span>       gclk_arch_gen_3_runstdby: false</span><br><span>       gclk_arch_gen_4_enable: true</span><br><span>       gclk_arch_gen_4_idc: false</span><br><span style="color: hsl(0, 100%, 40%);">-      gclk_arch_gen_4_oe: false</span><br><span style="color: hsl(120, 100%, 40%);">+      gclk_arch_gen_4_oe: true</span><br><span>       gclk_arch_gen_4_oov: false</span><br><span>       gclk_arch_gen_4_runstdby: false</span><br><span>       gclk_arch_gen_5_enable: true</span><br><span>@@ -748,7 +748,7 @@</span><br><span>       gclk_gen_3_div: 1</span><br><span>       gclk_gen_3_div_sel: false</span><br><span>       gclk_gen_3_oscillator: 32kHz External Crystal Oscillator (XOSC32K)</span><br><span style="color: hsl(0, 100%, 40%);">-      gclk_gen_4_div: 1</span><br><span style="color: hsl(120, 100%, 40%);">+      gclk_gen_4_div: 2</span><br><span>       gclk_gen_4_div_sel: false</span><br><span>       gclk_gen_4_oscillator: Digital Phase Locked Loop (DPLL1)</span><br><span>       gclk_gen_5_div: 5</span><br><span>@@ -1462,6 +1462,16 @@</span><br><span>     mode: Peripheral IO</span><br><span>     user_label: SIM2_IO</span><br><span>     configuration: null</span><br><span style="color: hsl(120, 100%, 40%);">+  RMII_CLOCK:</span><br><span style="color: hsl(120, 100%, 40%);">+    name: PA10</span><br><span style="color: hsl(120, 100%, 40%);">+    definition: Atmel:SAME54_Drivers:0.0.1::SAME54N19A-AF::pad::PA10</span><br><span style="color: hsl(120, 100%, 40%);">+    mode: Advanced</span><br><span style="color: hsl(120, 100%, 40%);">+    user_label: RMII_CLOCK</span><br><span style="color: hsl(120, 100%, 40%);">+    configuration:</span><br><span style="color: hsl(120, 100%, 40%);">+      pad_direction: Out</span><br><span style="color: hsl(120, 100%, 40%);">+      pad_function: M</span><br><span style="color: hsl(120, 100%, 40%);">+      pad_initial_level: Low</span><br><span style="color: hsl(120, 100%, 40%);">+      pad_pull_config: 'Off'</span><br><span>   SIMCLK_20MHZ:</span><br><span>     name: PA11</span><br><span>     definition: Atmel:SAME54_Drivers:0.0.1::SAME54N19A-AF::pad::PA11</span><br><span>diff --git a/sysmoOCTSIM/atmel_start_pins.h b/sysmoOCTSIM/atmel_start_pins.h</span><br><span>index 0264736..7cbaed5 100644</span><br><span>--- a/sysmoOCTSIM/atmel_start_pins.h</span><br><span>+++ b/sysmoOCTSIM/atmel_start_pins.h</span><br><span>@@ -31,6 +31,7 @@</span><br><span> #define SIM5_INT GPIO(GPIO_PORTA, 3)</span><br><span> #define SIM0_IO GPIO(GPIO_PORTA, 4)</span><br><span> #define SIM2_IO GPIO(GPIO_PORTA, 9)</span><br><span style="color: hsl(120, 100%, 40%);">+#define RMII_CLOCK GPIO(GPIO_PORTA, 10)</span><br><span> #define SIMCLK_20MHZ GPIO(GPIO_PORTA, 11)</span><br><span> #define SIM1_IO GPIO(GPIO_PORTA, 16)</span><br><span> #define VB0 GPIO(GPIO_PORTA, 20)</span><br><span>diff --git a/sysmoOCTSIM/config/hpl_gclk_config.h b/sysmoOCTSIM/config/hpl_gclk_config.h</span><br><span>index 71c26e1..81a1f03 100644</span><br><span>--- a/sysmoOCTSIM/config/hpl_gclk_config.h</span><br><span>+++ b/sysmoOCTSIM/config/hpl_gclk_config.h</span><br><span>@@ -349,7 +349,7 @@</span><br><span> // <i> Indicates whether Output Enable is enabled or not</span><br><span> // <id> gclk_arch_gen_4_oe</span><br><span> #ifndef CONF_GCLK_GEN_4_OE</span><br><span style="color: hsl(0, 100%, 40%);">-#define CONF_GCLK_GEN_4_OE 0</span><br><span style="color: hsl(120, 100%, 40%);">+#define CONF_GCLK_GEN_4_OE 1</span><br><span> #endif</span><br><span> </span><br><span> // <q> Output Off Value</span><br><span>@@ -378,7 +378,7 @@</span><br><span> //<o> Generic clock generator 4 division <0x0000-0xFFFF></span><br><span> // <id> gclk_gen_4_div</span><br><span> #ifndef CONF_GCLK_GEN_4_DIV</span><br><span style="color: hsl(0, 100%, 40%);">-#define CONF_GCLK_GEN_4_DIV 1</span><br><span style="color: hsl(120, 100%, 40%);">+#define CONF_GCLK_GEN_4_DIV 2</span><br><span> #endif</span><br><span> // </h></span><br><span> // </e></span><br><span>diff --git a/sysmoOCTSIM/config/peripheral_clk_config.h b/sysmoOCTSIM/config/peripheral_clk_config.h</span><br><span>index 4bff6ff..2ae1f63 100644</span><br><span>--- a/sysmoOCTSIM/config/peripheral_clk_config.h</span><br><span>+++ b/sysmoOCTSIM/config/peripheral_clk_config.h</span><br><span>@@ -641,7 +641,7 @@</span><br><span>  * \brief SERCOM7's Core Clock frequency</span><br><span>  */</span><br><span> #ifndef CONF_GCLK_SERCOM7_CORE_FREQUENCY</span><br><span style="color: hsl(0, 100%, 40%);">-#define CONF_GCLK_SERCOM7_CORE_FREQUENCY 100000000</span><br><span style="color: hsl(120, 100%, 40%);">+#define CONF_GCLK_SERCOM7_CORE_FREQUENCY 50000000</span><br><span> #endif</span><br><span> </span><br><span> /**</span><br><span>diff --git a/sysmoOCTSIM/driver_init.c b/sysmoOCTSIM/driver_init.c</span><br><span>index 0b6b190..1233d02 100644</span><br><span>--- a/sysmoOCTSIM/driver_init.c</span><br><span>+++ b/sysmoOCTSIM/driver_init.c</span><br><span>@@ -503,6 +503,53 @@</span><br><span> </span><br><span>         gpio_set_pin_function(SIM5_INT, GPIO_PIN_FUNCTION_OFF);</span><br><span> </span><br><span style="color: hsl(120, 100%, 40%);">+   // GPIO on PA10</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+     gpio_set_pin_direction(RMII_CLOCK,</span><br><span style="color: hsl(120, 100%, 40%);">+                           // <y> Pin direction</span><br><span style="color: hsl(120, 100%, 40%);">+                            // <id> pad_direction</span><br><span style="color: hsl(120, 100%, 40%);">+                           // <GPIO_DIRECTION_OFF"> Off</span><br><span style="color: hsl(120, 100%, 40%);">+                               // <GPIO_DIRECTION_IN"> In</span><br><span style="color: hsl(120, 100%, 40%);">+                         // <GPIO_DIRECTION_OUT"> Out</span><br><span style="color: hsl(120, 100%, 40%);">+                               GPIO_DIRECTION_OUT);</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+ gpio_set_pin_level(RMII_CLOCK,</span><br><span style="color: hsl(120, 100%, 40%);">+                           // <y> Initial level</span><br><span style="color: hsl(120, 100%, 40%);">+                    // <id> pad_initial_level</span><br><span style="color: hsl(120, 100%, 40%);">+                       // <false"> Low</span><br><span style="color: hsl(120, 100%, 40%);">+                    // <true"> High</span><br><span style="color: hsl(120, 100%, 40%);">+                    false);</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+  gpio_set_pin_pull_mode(RMII_CLOCK,</span><br><span style="color: hsl(120, 100%, 40%);">+                           // <y> Pull configuration</span><br><span style="color: hsl(120, 100%, 40%);">+                               // <id> pad_pull_config</span><br><span style="color: hsl(120, 100%, 40%);">+                         // <GPIO_PULL_OFF"> Off</span><br><span style="color: hsl(120, 100%, 40%);">+                            // <GPIO_PULL_UP"> Pull-up</span><br><span style="color: hsl(120, 100%, 40%);">+                         // <GPIO_PULL_DOWN"> Pull-down</span><br><span style="color: hsl(120, 100%, 40%);">+                             GPIO_PULL_OFF);</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+      gpio_set_pin_function(RMII_CLOCK,</span><br><span style="color: hsl(120, 100%, 40%);">+                           // <y> Pin function</span><br><span style="color: hsl(120, 100%, 40%);">+                             // <id> pad_function</span><br><span style="color: hsl(120, 100%, 40%);">+                            // <i> Auto : use driver pinmux if signal is imported by driver, else turn off function</span><br><span style="color: hsl(120, 100%, 40%);">+                         // <GPIO_PIN_FUNCTION_OFF"> Auto</span><br><span style="color: hsl(120, 100%, 40%);">+                           // <GPIO_PIN_FUNCTION_OFF"> Off</span><br><span style="color: hsl(120, 100%, 40%);">+                            // <GPIO_PIN_FUNCTION_A"> A</span><br><span style="color: hsl(120, 100%, 40%);">+                        // <GPIO_PIN_FUNCTION_B"> B</span><br><span style="color: hsl(120, 100%, 40%);">+                        // <GPIO_PIN_FUNCTION_C"> C</span><br><span style="color: hsl(120, 100%, 40%);">+                        // <GPIO_PIN_FUNCTION_D"> D</span><br><span style="color: hsl(120, 100%, 40%);">+                        // <GPIO_PIN_FUNCTION_E"> E</span><br><span style="color: hsl(120, 100%, 40%);">+                        // <GPIO_PIN_FUNCTION_F"> F</span><br><span style="color: hsl(120, 100%, 40%);">+                        // <GPIO_PIN_FUNCTION_G"> G</span><br><span style="color: hsl(120, 100%, 40%);">+                        // <GPIO_PIN_FUNCTION_H"> H</span><br><span style="color: hsl(120, 100%, 40%);">+                        // <GPIO_PIN_FUNCTION_I"> I</span><br><span style="color: hsl(120, 100%, 40%);">+                        // <GPIO_PIN_FUNCTION_J"> J</span><br><span style="color: hsl(120, 100%, 40%);">+                        // <GPIO_PIN_FUNCTION_K"> K</span><br><span style="color: hsl(120, 100%, 40%);">+                        // <GPIO_PIN_FUNCTION_L"> L</span><br><span style="color: hsl(120, 100%, 40%);">+                        // <GPIO_PIN_FUNCTION_M"> M</span><br><span style="color: hsl(120, 100%, 40%);">+                        // <GPIO_PIN_FUNCTION_N"> N</span><br><span style="color: hsl(120, 100%, 40%);">+                        GPIO_PIN_FUNCTION_M);</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span>        // GPIO on PA11</span><br><span> </span><br><span>  gpio_set_pin_direction(SIMCLK_20MHZ,</span><br><span></span><br></pre><p>To view, visit <a href="https://gerrit.osmocom.org/13780">change 13780</a>. To unsubscribe, or for help writing mail filters, visit <a href="https://gerrit.osmocom.org/settings">settings</a>.</p><div itemscope itemtype="http://schema.org/EmailMessage"><div itemscope itemprop="action" itemtype="http://schema.org/ViewAction"><link itemprop="url" href="https://gerrit.osmocom.org/13780"/><meta itemprop="name" content="View Change"/></div></div>

<div style="display:none"> Gerrit-Project: osmo-ccid-firmware </div>
<div style="display:none"> Gerrit-Branch: master </div>
<div style="display:none"> Gerrit-MessageType: newchange </div>
<div style="display:none"> Gerrit-Change-Id: Id3a3dee15c3986536b0623d0f39ca62e94acd1fd </div>
<div style="display:none"> Gerrit-Change-Number: 13780 </div>
<div style="display:none"> Gerrit-PatchSet: 1 </div>
<div style="display:none"> Gerrit-Owner: Kévin Redon <kredon@sysmocom.de> </div>