Change in osmo-ccid-firmware[master]: output 50 MHz for RMII

2019-05-09 Thread Harald Welte
Harald Welte has submitted this change and it was merged. ( 
https://gerrit.osmocom.org/13780 )

Change subject: output 50 MHz for RMII
..

output 50 MHz for RMII

in hardware revision 2 the Ethernet PHY RMII_CLOCK input clock is
connected to the MCU pin PA10.
GCLK4 of the MCU now outputs the required 50 MHz clock on this pin.
the same clock is re-used for UART debug to generate the 921600
bps baud rate.

Change-Id: Id3a3dee15c3986536b0623d0f39ca62e94acd1fd
---
M sysmoOCTSIM/atmel_start_config.atstart
M sysmoOCTSIM/atmel_start_pins.h
M sysmoOCTSIM/config/hpl_gclk_config.h
M sysmoOCTSIM/config/peripheral_clk_config.h
M sysmoOCTSIM/driver_init.c
5 files changed, 63 insertions(+), 5 deletions(-)

Approvals:
  Jenkins Builder: Verified
  Harald Welte: Looks good to me, approved



diff --git a/sysmoOCTSIM/atmel_start_config.atstart 
b/sysmoOCTSIM/atmel_start_config.atstart
index 4fda2f8..6357a74 100644
--- a/sysmoOCTSIM/atmel_start_config.atstart
+++ b/sysmoOCTSIM/atmel_start_config.atstart
@@ -702,7 +702,7 @@
   gclk_arch_gen_3_runstdby: false
   gclk_arch_gen_4_enable: true
   gclk_arch_gen_4_idc: false
-  gclk_arch_gen_4_oe: false
+  gclk_arch_gen_4_oe: true
   gclk_arch_gen_4_oov: false
   gclk_arch_gen_4_runstdby: false
   gclk_arch_gen_5_enable: true
@@ -748,7 +748,7 @@
   gclk_gen_3_div: 1
   gclk_gen_3_div_sel: false
   gclk_gen_3_oscillator: 32kHz External Crystal Oscillator (XOSC32K)
-  gclk_gen_4_div: 1
+  gclk_gen_4_div: 2
   gclk_gen_4_div_sel: false
   gclk_gen_4_oscillator: Digital Phase Locked Loop (DPLL1)
   gclk_gen_5_div: 5
@@ -1462,6 +1462,16 @@
 mode: Peripheral IO
 user_label: SIM2_IO
 configuration: null
+  RMII_CLOCK:
+name: PA10
+definition: Atmel:SAME54_Drivers:0.0.1::SAME54N19A-AF::pad::PA10
+mode: Advanced
+user_label: RMII_CLOCK
+configuration:
+  pad_direction: Out
+  pad_function: M
+  pad_initial_level: Low
+  pad_pull_config: 'Off'
   SIMCLK_20MHZ:
 name: PA11
 definition: Atmel:SAME54_Drivers:0.0.1::SAME54N19A-AF::pad::PA11
diff --git a/sysmoOCTSIM/atmel_start_pins.h b/sysmoOCTSIM/atmel_start_pins.h
index 0264736..7cbaed5 100644
--- a/sysmoOCTSIM/atmel_start_pins.h
+++ b/sysmoOCTSIM/atmel_start_pins.h
@@ -31,6 +31,7 @@
 #define SIM5_INT GPIO(GPIO_PORTA, 3)
 #define SIM0_IO GPIO(GPIO_PORTA, 4)
 #define SIM2_IO GPIO(GPIO_PORTA, 9)
+#define RMII_CLOCK GPIO(GPIO_PORTA, 10)
 #define SIMCLK_20MHZ GPIO(GPIO_PORTA, 11)
 #define SIM1_IO GPIO(GPIO_PORTA, 16)
 #define VB0 GPIO(GPIO_PORTA, 20)
diff --git a/sysmoOCTSIM/config/hpl_gclk_config.h 
b/sysmoOCTSIM/config/hpl_gclk_config.h
index 71c26e1..81a1f03 100644
--- a/sysmoOCTSIM/config/hpl_gclk_config.h
+++ b/sysmoOCTSIM/config/hpl_gclk_config.h
@@ -349,7 +349,7 @@
 //  Indicates whether Output Enable is enabled or not
 //  gclk_arch_gen_4_oe
 #ifndef CONF_GCLK_GEN_4_OE
-#define CONF_GCLK_GEN_4_OE 0
+#define CONF_GCLK_GEN_4_OE 1
 #endif

 //  Output Off Value
@@ -378,7 +378,7 @@
 // Generic clock generator 4 division <0x-0x>
 //  gclk_gen_4_div
 #ifndef CONF_GCLK_GEN_4_DIV
-#define CONF_GCLK_GEN_4_DIV 1
+#define CONF_GCLK_GEN_4_DIV 2
 #endif
 // 
 // 
diff --git a/sysmoOCTSIM/config/peripheral_clk_config.h 
b/sysmoOCTSIM/config/peripheral_clk_config.h
index 4bff6ff..2ae1f63 100644
--- a/sysmoOCTSIM/config/peripheral_clk_config.h
+++ b/sysmoOCTSIM/config/peripheral_clk_config.h
@@ -641,7 +641,7 @@
  * \brief SERCOM7's Core Clock frequency
  */
 #ifndef CONF_GCLK_SERCOM7_CORE_FREQUENCY
-#define CONF_GCLK_SERCOM7_CORE_FREQUENCY 1
+#define CONF_GCLK_SERCOM7_CORE_FREQUENCY 5000
 #endif

 /**
diff --git a/sysmoOCTSIM/driver_init.c b/sysmoOCTSIM/driver_init.c
index 0b6b190..1233d02 100644
--- a/sysmoOCTSIM/driver_init.c
+++ b/sysmoOCTSIM/driver_init.c
@@ -503,6 +503,53 @@

gpio_set_pin_function(SIM5_INT, GPIO_PIN_FUNCTION_OFF);

+   // GPIO on PA10
+
+   gpio_set_pin_direction(RMII_CLOCK,
+  //  Pin direction
+  //  pad_direction
+  //  Off
+  //  In
+  //  Out
+  GPIO_DIRECTION_OUT);
+
+   gpio_set_pin_level(RMII_CLOCK,
+  //  Initial level
+  //  pad_initial_level
+  //  Low
+  //  High
+  false);
+
+   gpio_set_pin_pull_mode(RMII_CLOCK,
+  //  Pull configuration
+  //  pad_pull_config
+  //  Off
+  //  Pull-up
+  //  Pull-down
+  GPIO_PULL_OFF);
+
+   gpio_set_pin_function(RMII_CLOCK,
+ //  Pin function
+ // 

Change in osmo-ccid-firmware[master]: output 50 MHz for RMII

2019-04-25 Thread Harald Welte
Harald Welte has posted comments on this change. ( 
https://gerrit.osmocom.org/13780 )

Change subject: output 50 MHz for RMII
..


Patch Set 1: Code-Review+2


--
To view, visit https://gerrit.osmocom.org/13780
To unsubscribe, or for help writing mail filters, visit 
https://gerrit.osmocom.org/settings

Gerrit-Project: osmo-ccid-firmware
Gerrit-Branch: master
Gerrit-MessageType: comment
Gerrit-Change-Id: Id3a3dee15c3986536b0623d0f39ca62e94acd1fd
Gerrit-Change-Number: 13780
Gerrit-PatchSet: 1
Gerrit-Owner: Kévin Redon 
Gerrit-Reviewer: Harald Welte 
Gerrit-Reviewer: Jenkins Builder (102)
Gerrit-Comment-Date: Thu, 25 Apr 2019 19:50:20 +
Gerrit-HasComments: No
Gerrit-HasLabels: Yes


Change in osmo-ccid-firmware[master]: output 50 MHz for RMII

2019-04-25 Thread Kévin Redon
Kévin Redon has uploaded this change for review. ( 
https://gerrit.osmocom.org/13780


Change subject: output 50 MHz for RMII
..

output 50 MHz for RMII

in hardware revision 2 the Ethernet PHY RMII_CLOCK input clock is
connected to the MCU pin PA10.
GCLK4 of the MCU now outputs the required 50 MHz clock on this pin.
the same clock is re-used for UART debug to generate the 921600
bps baud rate.

Change-Id: Id3a3dee15c3986536b0623d0f39ca62e94acd1fd
---
M sysmoOCTSIM/atmel_start_config.atstart
M sysmoOCTSIM/atmel_start_pins.h
M sysmoOCTSIM/config/hpl_gclk_config.h
M sysmoOCTSIM/config/peripheral_clk_config.h
M sysmoOCTSIM/driver_init.c
5 files changed, 63 insertions(+), 5 deletions(-)



  git pull ssh://gerrit.osmocom.org:29418/osmo-ccid-firmware 
refs/changes/80/13780/1

diff --git a/sysmoOCTSIM/atmel_start_config.atstart 
b/sysmoOCTSIM/atmel_start_config.atstart
index 4fda2f8..6357a74 100644
--- a/sysmoOCTSIM/atmel_start_config.atstart
+++ b/sysmoOCTSIM/atmel_start_config.atstart
@@ -702,7 +702,7 @@
   gclk_arch_gen_3_runstdby: false
   gclk_arch_gen_4_enable: true
   gclk_arch_gen_4_idc: false
-  gclk_arch_gen_4_oe: false
+  gclk_arch_gen_4_oe: true
   gclk_arch_gen_4_oov: false
   gclk_arch_gen_4_runstdby: false
   gclk_arch_gen_5_enable: true
@@ -748,7 +748,7 @@
   gclk_gen_3_div: 1
   gclk_gen_3_div_sel: false
   gclk_gen_3_oscillator: 32kHz External Crystal Oscillator (XOSC32K)
-  gclk_gen_4_div: 1
+  gclk_gen_4_div: 2
   gclk_gen_4_div_sel: false
   gclk_gen_4_oscillator: Digital Phase Locked Loop (DPLL1)
   gclk_gen_5_div: 5
@@ -1462,6 +1462,16 @@
 mode: Peripheral IO
 user_label: SIM2_IO
 configuration: null
+  RMII_CLOCK:
+name: PA10
+definition: Atmel:SAME54_Drivers:0.0.1::SAME54N19A-AF::pad::PA10
+mode: Advanced
+user_label: RMII_CLOCK
+configuration:
+  pad_direction: Out
+  pad_function: M
+  pad_initial_level: Low
+  pad_pull_config: 'Off'
   SIMCLK_20MHZ:
 name: PA11
 definition: Atmel:SAME54_Drivers:0.0.1::SAME54N19A-AF::pad::PA11
diff --git a/sysmoOCTSIM/atmel_start_pins.h b/sysmoOCTSIM/atmel_start_pins.h
index 0264736..7cbaed5 100644
--- a/sysmoOCTSIM/atmel_start_pins.h
+++ b/sysmoOCTSIM/atmel_start_pins.h
@@ -31,6 +31,7 @@
 #define SIM5_INT GPIO(GPIO_PORTA, 3)
 #define SIM0_IO GPIO(GPIO_PORTA, 4)
 #define SIM2_IO GPIO(GPIO_PORTA, 9)
+#define RMII_CLOCK GPIO(GPIO_PORTA, 10)
 #define SIMCLK_20MHZ GPIO(GPIO_PORTA, 11)
 #define SIM1_IO GPIO(GPIO_PORTA, 16)
 #define VB0 GPIO(GPIO_PORTA, 20)
diff --git a/sysmoOCTSIM/config/hpl_gclk_config.h 
b/sysmoOCTSIM/config/hpl_gclk_config.h
index 71c26e1..81a1f03 100644
--- a/sysmoOCTSIM/config/hpl_gclk_config.h
+++ b/sysmoOCTSIM/config/hpl_gclk_config.h
@@ -349,7 +349,7 @@
 //  Indicates whether Output Enable is enabled or not
 //  gclk_arch_gen_4_oe
 #ifndef CONF_GCLK_GEN_4_OE
-#define CONF_GCLK_GEN_4_OE 0
+#define CONF_GCLK_GEN_4_OE 1
 #endif

 //  Output Off Value
@@ -378,7 +378,7 @@
 // Generic clock generator 4 division <0x-0x>
 //  gclk_gen_4_div
 #ifndef CONF_GCLK_GEN_4_DIV
-#define CONF_GCLK_GEN_4_DIV 1
+#define CONF_GCLK_GEN_4_DIV 2
 #endif
 // 
 // 
diff --git a/sysmoOCTSIM/config/peripheral_clk_config.h 
b/sysmoOCTSIM/config/peripheral_clk_config.h
index 4bff6ff..2ae1f63 100644
--- a/sysmoOCTSIM/config/peripheral_clk_config.h
+++ b/sysmoOCTSIM/config/peripheral_clk_config.h
@@ -641,7 +641,7 @@
  * \brief SERCOM7's Core Clock frequency
  */
 #ifndef CONF_GCLK_SERCOM7_CORE_FREQUENCY
-#define CONF_GCLK_SERCOM7_CORE_FREQUENCY 1
+#define CONF_GCLK_SERCOM7_CORE_FREQUENCY 5000
 #endif

 /**
diff --git a/sysmoOCTSIM/driver_init.c b/sysmoOCTSIM/driver_init.c
index 0b6b190..1233d02 100644
--- a/sysmoOCTSIM/driver_init.c
+++ b/sysmoOCTSIM/driver_init.c
@@ -503,6 +503,53 @@

gpio_set_pin_function(SIM5_INT, GPIO_PIN_FUNCTION_OFF);

+   // GPIO on PA10
+
+   gpio_set_pin_direction(RMII_CLOCK,
+  //  Pin direction
+  //  pad_direction
+  //  Off
+  //  In
+  //  Out
+  GPIO_DIRECTION_OUT);
+
+   gpio_set_pin_level(RMII_CLOCK,
+  //  Initial level
+  //  pad_initial_level
+  //  Low
+  //  High
+  false);
+
+   gpio_set_pin_pull_mode(RMII_CLOCK,
+  //  Pull configuration
+  //  pad_pull_config
+  //  Off
+  //  Pull-up
+  //  Pull-down
+  GPIO_PULL_OFF);
+
+   gpio_set_pin_function(RMII_CLOCK,
+ //  Pin function
+ //