Skip to content

MIPI-Alliance/ccs-tools

Repository files navigation

Copyright (C) 2020 MIPI Alliance
Copyright (C) 2019--2020 Intel Corporation
SPDX-License-Identifier: BSD-3-Clause

Introduction
------------

This repository contains tools and reference libraries for converting, parsing
and otherwise working with the CCS static data format first defined in MIPI CCS
1.1 specification [1].


Noteworthy files in this repository
-----------------------------------

LICENSE

	The three-clause BSD license under which the CCS tools are licensed.

ccs-static-data-yaml-format.txt

	Specification of the CCS static data YAML-based format.

ccs-yaml-to-bin

	A Perl script for converting the YAML-based CCS static data to the
	binary format that can be parsed by the parser library.

ccs-data.c, ccs-data.h

	The CCS static data reference parser.

ccs-bin-to-yaml.c

	An example of a program that uses the ccs-data reference parser.
	Also a C program that converts binary CCS static data into
	YAML-based format.

ccs-regs.asc

	Definitions of CCS standard registers.

mk-ccs-regs, mk-licenses

	Scripts for producing C header and source code files from ccs-regs.asc
	and files in "licenses" directory. The script also produces a C array
	and header for reading the limit and capability information in drivers.

licenses

	The directory where the CCS static data licenses are maintained.

examples

	Examples of CCS static data files in YAML format.


Requirements
------------

- GCC 4.1 or later

- GNU make

- GNU binutils

- Perl 5.24.1 or later (older versions probably work as well) and Digest::CRC,
  Scalar::Util and YAML::Tiny Perl modules

- shunit2 (for tests)

In e.g. Debian GNU/Linux these can be installed using the following command as
root:

	# apt-get install make binutils gcc libyaml-tiny-perl \
	  libdigest-crc-perl shunit2


Compilation
-----------

Run

	$ make

in order to compile the CCS tools.


Usage
-----

Use "--help" option on ccs-bin-to-yaml and ccs-yaml-to-bin to see detailed
usage instructions.

Both programs are currently run from the workspace top directory.


Examples
--------

Convert YAML based CCS sensor specific static data for use as a sensor static
data file:

	$ ./ccs-yaml-to-bin -s -o ccs-sensor-VVVV-DDDD-RRRR.fw \
		ccs-sensor-VVVV-DDDD-vvvv.yaml

Convert YAML based CCS module specific static data for use as a module static
data file:

	$ ./ccs-yaml-to-bin -m -o ccs-module-VVVV-DDDD-RRRR.fw
		ccs-module-VVVV-DDDD-vvvv.yaml

In both of the above examples,

	VVVV		Vendor ID
	DDDD		Device ID
	vvvv		Version number


References
----------

[1] MIPI Camera Command Set.
    <URL:https://mipi.org/specifications/camera-command-set>