WC1: Difference between revisions

From AsteroidOS
(Created page with "== Galaxy Gear S2 Classic ==")
 
(Add a bunch of hardware and flashing info)
Line 1: Line 1:
== Galaxy Gear S2 Classic ==
== Galaxy Gear S2 Classic ==
The Gear S2 classic is a Tizen-based smartwatch released in 2015. See [https://www.gsmarena.com/samsung_gear_s2_classic-7677.php gsmarena] for detailed specs. The codename used in Tizen and Recovery seems to be "WC1".
As the vendor kernel is very old (3.4) and there's no existing abstraction for the Tizen HAL, a mainline Linux port for this watch is being attempted instead.
Downstream sources available at https://github.com/casept/samsung-wc1-sources, as Samsung no longer hosts them.
=== Hardware docs ===
==== Recovery mode and flashing ====
Like other Samsung watches, the Gear S2 classic can either be flashed wirelessly via the NetOdin protocol, or using the regular Odin protocol by opening it up and soldering a USB cable to some internal pads. See e.g. [https://xdaforums.com/t/gear-s2-wireless-download-mode-error.3745724/ this XDA thread] for the pinout.
Note that flashing the BOOT partition with a bad kernel will result in a broken recovery and inability to use wireless download mode, so make sure you have USB connected before working on the watch.
==== List of peripherals and their kernel driver state ====
Most of the hardware in this watch seems to have drivers in the mainline kernel, especially the SoC and most of the regulators.
{| class="wikitable"
|+ Samsung Gear S2 Classic
|-
! Chip !! Function !! Driver state in mainline Linux !! Notes
|-
| Exynos 3250 || SoC || Supported || DTS for dev boards based on it exist
|-
| WM1831 || Microphone DAC || Supported
|-
| BCM4343W || WLAN and BT || Unsupported || Infineon still maintains this chip. There's a patch for recent kernels (5.15) available on [https://community.infineon.com/t5/Wi-Fi-Bluetooth-for-Linux/Cypress-Linux-WiFi-Driver-Release-FMAC-2023-09-01/td-p/492862 Infineon's support site]. A quite complete datasheet exists [https://www.infineon.com/dgdl/Infineon-CYW4334WKUBGT-DataSheet-v11_00-EN.pdf?fileId=8ac78c8c7d0d8da4017d0ee1f02f680f here].
|-
| SENN5DDPS2 || NFC || Possibly supported || There exists a kernel driver for 5th generation Samsung NFC chips, whether this chip is part of it is unknown.
|-
| BCM53950 || Wireless charge controller || Unsupported || No public datasheet, Samsung code seems readable enough and quite short (~1500LoC)
|-
| ISA1000A || vibrator motor controller || Unsupported || No datasheet, but probably only requires SoC PWM+GPIO, Samsung driver ca. 500LoC (''drivers/motor/isa1000a_vibrator.c'')
|-
| Unknown IC || hall effect sensor, crown || Unsupported || Connected via I2C, Samsung driver at ''drivers/input/misc/sec_rotary.c'', ~1300LoC
|-
| CYTMA525 || touchscreen controller || Supported
|-
| MAX77836 || MUIC || Supported || downstream kernel judges jig modes based on resistor connected to this via USB
|-
| ATSAMG55G19A || sensor hub || unknown || possibly supported via "Samsung sensor hub" driver. Sensor chips are connected to this and not the SoC directly.
|-
| Unknown (marked "OCTA") || LCD controller || unknown || unknown
|}
==== Debugging and Jigs ====
Judging by downstream kernel sources a Samsung UART Jig with a 619K resistor might work. This is currently untested.

Revision as of 12:33, 19 December 2023

Galaxy Gear S2 Classic

The Gear S2 classic is a Tizen-based smartwatch released in 2015. See gsmarena for detailed specs. The codename used in Tizen and Recovery seems to be "WC1".

As the vendor kernel is very old (3.4) and there's no existing abstraction for the Tizen HAL, a mainline Linux port for this watch is being attempted instead.

Downstream sources available at https://github.com/casept/samsung-wc1-sources, as Samsung no longer hosts them.

Hardware docs

Recovery mode and flashing

Like other Samsung watches, the Gear S2 classic can either be flashed wirelessly via the NetOdin protocol, or using the regular Odin protocol by opening it up and soldering a USB cable to some internal pads. See e.g. this XDA thread for the pinout.

Note that flashing the BOOT partition with a bad kernel will result in a broken recovery and inability to use wireless download mode, so make sure you have USB connected before working on the watch.

List of peripherals and their kernel driver state

Most of the hardware in this watch seems to have drivers in the mainline kernel, especially the SoC and most of the regulators.

Samsung Gear S2 Classic
Chip Function Driver state in mainline Linux Notes
Exynos 3250 SoC Supported DTS for dev boards based on it exist
WM1831 Microphone DAC Supported
BCM4343W WLAN and BT Unsupported Infineon still maintains this chip. There's a patch for recent kernels (5.15) available on Infineon's support site. A quite complete datasheet exists here.
SENN5DDPS2 NFC Possibly supported There exists a kernel driver for 5th generation Samsung NFC chips, whether this chip is part of it is unknown.
BCM53950 Wireless charge controller Unsupported No public datasheet, Samsung code seems readable enough and quite short (~1500LoC)
ISA1000A vibrator motor controller Unsupported No datasheet, but probably only requires SoC PWM+GPIO, Samsung driver ca. 500LoC (drivers/motor/isa1000a_vibrator.c)
Unknown IC hall effect sensor, crown Unsupported Connected via I2C, Samsung driver at drivers/input/misc/sec_rotary.c, ~1300LoC
CYTMA525 touchscreen controller Supported
MAX77836 MUIC Supported downstream kernel judges jig modes based on resistor connected to this via USB
ATSAMG55G19A sensor hub unknown possibly supported via "Samsung sensor hub" driver. Sensor chips are connected to this and not the SoC directly.
Unknown (marked "OCTA") LCD controller unknown unknown

Debugging and Jigs

Judging by downstream kernel sources a Samsung UART Jig with a 619K resistor might work. This is currently untested.