WC1

From AsteroidOS
Revision as of 12:33, 19 December 2023 by Casept (talk | contribs) (Add a bunch of hardware and flashing info)

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.